在这篇文章中,我们将讨论以下话题:

  • 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、手机甚至卫星。

  1. 排序
  2. 傅里叶变换和快速傅里叶变换
  3. Dijkstra 算法
  4. RSA 算法
  5. 安全哈希算法
  6. 整数分解
  7. 链接分析
  8. 比例积分微分算法
  9. 数据压缩算法
  10. 随机数生成

问题:还有其他常用算法吗?

“拉”和”推”支付

下图显示了拉支付和推支付如何工作。

拉支付

当我们在商家刷信用卡/借记卡时,这是拉支付,钱从持卡人发送到商家。商家从持卡人账户拉钱,持卡人批准交易。

推支付

使用 Visa Direct 或 Mastercard Send,推支付使商家、公司和政府能够进行支付。

步骤

  1. 商家通过数字渠道(如手机或银行分行)发起推支付
  2. 收单行创建并向卡组织提交 OCT(原始信用交易)
  3. 交易路由到接收机构
  4. 发卡行将钱存入持卡人账户并通知持卡人。钱存入 Visa 账户,可以在 ATM 或 PoS 终端或数字钱包访问

注意,推支付适用于跨境交易。

推支付确实是一个有趣的创新,补充了 Visa 和 Mastercard 的数字钱包策略。“账户”的抽象掩盖了不同资金或消费渠道的复杂性。

问题:你最常用的支付方式是什么?它是基于拉还是基于推?

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP60: Netflix Tech Stack - Databases

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。