Pinterest 引入基于事件时间的分区最终确认机制

2026-11-02 14:03:01   来源:技王数据恢复

Pinterest 引入基于事件时间的分区最终确认机制(1)
Pinterest 引入基于事件时间的分区最终确认机制(1)

Pinterest 为下一代数据库摄取框架引入了基于事件时间的分区最终确认机制,通过 Apache Flink 统计 CDC 事件时间分布并写入 Iceberg 快照摘要,生成不可回退的安全水位线,以解决流式摄取中数据完整性判定难题。 技王数据恢复

机制原理与实现

该方案旨在解决持续变更数据捕获(CDC)摄取中,即使分区对应的自然时间区间已结束,数据仍可能延迟到达的问题。其核心运作流程如下:

技王数据恢复

  • 数据采集:系统从每条 CDC 记录中提取预先配置的事件时间。
  • Flink 统计:在 Flink 执行检查点(Checkpoint)时,收集事件时间的最小值、最大值和百分位数统计信息,并使用 t-digest 算法将分布压缩至数百字节,以兼顾精度与元数据开销。
  • Iceberg 持久化:Iceberg 完成提交后,根据近期检查点统计信息计算分区最终确认水位线。该水位线以 Iceberg 表属性的形式存储,Spark 在执行 CDC 更新插入提交时,会将这些元数据传播到基础表。

水位线策略

系统提供了两种计算分区最终确认水位线的策略: 技王数据恢复

  • 默认策略:取可配置数量的近期提交中的最小事件时间,并向下取整到对应小时。该水位线单调递增,可防止延迟到达的记录使已发布的值向后回退。
  • 基于百分位数的策略:牺牲一部分完整性,以换取更新鲜的数据。

性能指标与架构基础

该设计建立在 Flink 和 Iceberg 的现有能力之上,Flink 负责追踪乱序数据流中的事件时间进度,Iceberg 快照提供持久化的表元数据。Pinterest 表示,该平台支持 PB 级数据和数千条流水线,线上变更通常可以在 15 分钟到一小时内供分析使用。

技王数据恢复

Pinterest 引入基于事件时间的分区最终确认机制(2)
Pinterest 引入基于事件时间的分区最终确认机制(2)

外部观点

Google 架构师 Nitesh Singhal 在 LinkedIn 帖子中介绍了这一设计,指出其核心在于“不会回退的安全读取水位线”。Salesforce 工程师 Tharun Kumar Reddy Polu 在评论中指出,该设计准确呈现了流处理与批处理之间的权衡,既获得数据新鲜度,又保留了批处理曾提供的保证。 技王数据恢复

原文链接:https://www.infoq.com/news/2026/10/pinterest-event-time-partition/ 技王数据恢复

技术审核:邓严军|技王数据恢复实验室技术总监 技王数据恢复

上一篇:Grafana Labs 提出利用 SLO 与错误预算管控 AI 智能体幻觉 下一篇:极客邦科技霍太稳:模力工场拟构建AI供需协同平台
搜索