← 回總覽

Pinterest 基于 CDC 的摄取系统将数据库延迟从 24 小时缩短至 15 分钟

📅 2026/03/10 13:30 InfoQ 中文 软件编程 2 分鐘 1316 字 評分: 83
CDC Apache Iceberg 数据工程 数据架构 Spark
📌 一句话摘要 Pinterest 通过构建基于 CDC 和 Apache Iceberg 的统一摄取框架,将数据延迟从 24 小时缩短至 15 分钟,并显著降低了 PB 级规模下的计算成本。 📝 详细摘要 本文详细介绍了 Pinterest 如何通过架构演进解决传统全表批处理系统的高延迟和资源浪费问题。新架构利用 Debezium/TiCDC 捕获数据库变更,结合 Kafka、Flink 和 Spark 处理流批任务,并最终落地到 Apache Iceberg 数据湖。核心改进在于将 CDC 增量表与基表分离,并采用了 Iceberg 的“读时合并(MOR)”策略,有效平衡了写入放大与存

📌 一句话摘要

Pinterest 通过构建基于 CDC 和 Apache Iceberg 的统一摄取框架,将数据延迟从 24 小时缩短至 15 分钟,并显著降低了 PB 级规模下的计算成本。

📝 详细摘要

本文详细介绍了 Pinterest 如何通过架构演进解决传统全表批处理系统的高延迟和资源浪费问题。新架构利用 Debezium/TiCDC 捕获数据库变更,结合 Kafka、Flink 和 Spark 处理流批任务,并最终落地到 Apache Iceberg 数据湖。核心改进在于将 CDC 增量表与基表分离,并采用了 Iceberg 的“读时合并(MOR)”策略,有效平衡了写入放大与存储成本。此外,通过主键哈希分桶和分区分布写入等优化手段,解决了小文件和并行化挑战,实现了 PB 级数据的高效增量更新与删除。

💡 主要观点

- 从全表批处理转向基于 CDC 的增量处理模式。 传统系统每日重复处理 95% 未更改的记录,新框架仅处理变更数据,大幅提升了资源利用率并降低了基础设施成本。

在 Iceberg 存储层采用读时合并(MOR)更新策略。 经过对比评估,MOR 策略在处理高频增量更新时比写时复制(COW)更具成本优势,有效控制了 PB 级规模下的存储开销。
通过主键哈希分桶和分区分布写入优化 Spark 性能。 利用 Iceberg 分桶实现 upsert 操作的并行化,并指示 Spark 按分区分布写入,解决了大数据处理中常见的“小文件”性能瓶颈。
架构上实现 CDC 账本表与基表快照的逻辑分离。 CDC 表作为只追加账本提供分钟级变更追踪,基表通过定期 Merge 维护完整快照,兼顾了数据的实时性与查询的完整性。

💬 文章金句

- 基于 Change Data Capture 建立的统一框架仅处理有变化的记录,在几分钟内就可以提供对在线数据库更改的访问,显著节省了基础设施成本。

  • 经过评估,Pinterest 最终采用了读时合并策略,因为在多数工作负载中,写时复制产生的存储成本远超它所带来的收益。
  • 该架构将 CDC 表与基表分开。作为只追加账本,CDC 表记录每个变更事件的延迟通常低于五分钟。
  • 测量结果包括将数据可用性延迟从超过 24 小时降低到低至 15 分钟,避免不必要的全表操作,仅处理每天变化的 5% 的记录。

📊 文章信息

AI 评分:83

来源:InfoQ 中文

作者:InfoQ 中文

分类:软件编程

语言:中文

阅读时间:5 分钟

字数:1099

标签: CDC, Apache Iceberg, 数据工程, 数据架构, Spark

阅读完整文章

查看原文 → 發佈: 2026-03-10 05:30:00 收錄: 2026-03-10 20:50:25

🤖 問 AI

針對這篇文章提問,AI 會根據文章內容回答。按 Ctrl+Enter 送出。