在这篇文章中,我们将讨论以下话题:
- SQL 查询执行顺序
- Netflix 技术栈 - 数据库
- 主导我们世界的 10 个算法
- “拉”和”推”支付
SQL 查询执行顺序
在这个视频中,我们将讨论:
- 解析 SQL 语句并检查其有效性
- 将 SQL 转换为内部表示,如关系代数
- 优化内部表示并创建利用索引信息的执行计划
- 执行计划并返回结果
Netflix 数据库技术栈
Netflix Engineering 团队选择各种数据库来支持大规模流媒体。
关系型数据库
Netflix 选择 MySQL 用于计费交易、订阅、税收和收入。他们还使用 CockroachDB 支持多区域主动 - 主动架构、全球交易和数据管道工作流。
列式数据库
Netflix 主要用于分析目的。他们利用 Redshift 和 Druid 进行结构化数据存储,Spark 和数据管道处理,Tableau 进行数据可视化。
键值数据库
Netflix 主要使用建立在 Memcached 之上的 EVCache。EVCache 已经在 Netflix 超过 10 年,用于大多数服务,缓存各种数据,如 Netflix 主页和个性化推荐。
宽列数据库
Cassandra 通常是 Netflix 的默认选择。他们几乎用它做所有事情,包括视频/演员信息、用户数据、设备信息和观看历史。
时间序列数据库
Netflix 构建了一个名为 Atlas 的开源内存数据库,用于指标存储和聚合。
非结构化数据
S3 是默认选择,存储几乎所有与图像/视频/指标/日志文件相关的内容。Apache Iceberg 也与 S3 一起用于大数据存储。
主导我们世界的 10 个算法
下图显示了我们日常生活中最常用的算法。它们用于互联网搜索引擎、社交网络、WiFi、手机甚至卫星。
- 排序
- 傅里叶变换和快速傅里叶变换
- Dijkstra 算法
- RSA 算法
- 安全哈希算法
- 整数分解
- 链接分析
- 比例积分微分算法
- 数据压缩算法
- 随机数生成
问题:还有其他常用算法吗?
“拉”和”推”支付
下图显示了拉支付和推支付如何工作。
拉支付
当我们在商家刷信用卡/借记卡时,这是拉支付,钱从持卡人发送到商家。商家从持卡人账户拉钱,持卡人批准交易。
推支付
使用 Visa Direct 或 Mastercard Send,推支付使商家、公司和政府能够进行支付。
步骤:
- 商家通过数字渠道(如手机或银行分行)发起推支付
- 收单行创建并向卡组织提交 OCT(原始信用交易)
- 交易路由到接收机构
- 发卡行将钱存入持卡人账户并通知持卡人。钱存入 Visa 账户,可以在 ATM 或 PoS 终端或数字钱包访问
注意,推支付适用于跨境交易。
推支付确实是一个有趣的创新,补充了 Visa 和 Mastercard 的数字钱包策略。“账户”的抽象掩盖了不同资金或消费渠道的复杂性。
问题:你最常用的支付方式是什么?它是基于拉还是基于推?
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP60: Netflix Tech Stack - Databases。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。