Pinterest 引入基于事件时间的分区最终确认机制
2026-11-02 14:03:01 来源:技王数据恢复

Pinterest 为下一代数据库摄取框架引入了基于事件时间的分区最终确认机制,通过 Apache Flink 统计 CDC 事件时间分布并写入 Iceberg 快照摘要,生成不可回退的安全水位线,以解决流式摄取中数据完整性判定难题。 技王数据恢复
机制原理与实现
该方案旨在解决持续变更数据捕获(CDC)摄取中,即使分区对应的自然时间区间已结束,数据仍可能延迟到达的问题。其核心运作流程如下:
技王数据恢复
- 数据采集:系统从每条 CDC 记录中提取预先配置的事件时间。
- Flink 统计:在 Flink 执行检查点(Checkpoint)时,收集事件时间的最小值、最大值和百分位数统计信息,并使用 t-digest 算法将分布压缩至数百字节,以兼顾精度与元数据开销。
- Iceberg 持久化:Iceberg 完成提交后,根据近期检查点统计信息计算分区最终确认水位线。该水位线以 Iceberg 表属性的形式存储,Spark 在执行 CDC 更新插入提交时,会将这些元数据传播到基础表。
水位线策略
系统提供了两种计算分区最终确认水位线的策略: 技王数据恢复
- 默认策略:取可配置数量的近期提交中的最小事件时间,并向下取整到对应小时。该水位线单调递增,可防止延迟到达的记录使已发布的值向后回退。
- 基于百分位数的策略:牺牲一部分完整性,以换取更新鲜的数据。
性能指标与架构基础
该设计建立在 Flink 和 Iceberg 的现有能力之上,Flink 负责追踪乱序数据流中的事件时间进度,Iceberg 快照提供持久化的表元数据。Pinterest 表示,该平台支持 PB 级数据和数千条流水线,线上变更通常可以在 15 分钟到一小时内供分析使用。
技王数据恢复

外部观点
Google 架构师 Nitesh Singhal 在 LinkedIn 帖子中介绍了这一设计,指出其核心在于“不会回退的安全读取水位线”。Salesforce 工程师 Tharun Kumar Reddy Polu 在评论中指出,该设计准确呈现了流处理与批处理之间的权衡,既获得数据新鲜度,又保留了批处理曾提供的保证。 技王数据恢复
原文链接:https://www.infoq.com/news/2026/10/pinterest-event-time-partition/ 技王数据恢复
技术审核:邓严军|技王数据恢复实验室技术总监 技王数据恢复