Netflix 利用 Maestro 和 Apache Iceberg 创建增量处理解决方案

Netflix推出增量处理新方案

Netflix在其数据平台上创建了一种新的增量处理解决方案,旨在显著降低计算资源成本和执行时间。该方案通过避免处理完整数据集,提高了数据的时效性和准确性。Netflix使用了其自研的Maestro工作流引擎和Apache Iceberg技术,并计划提供托管回填功能。

Maestro平台的全面迁移

Netflix已将所有的数据处理迁移到Maestro平台,这是其最新一代自研的工作流编排平台,适用于ETL管道、ML模型训练、批处理作业等多种用例。同时,公司正在解决数据管道执行中的一些常见挑战。

数据管道执行中的挑战

  1. 低延迟批处理用例支持不足:这导致了一些内部解决方案的出现,如Psyberg,但这些方案仅适用于特定用例,并且与业务逻辑紧密耦合。
  2. 迟到数据问题:迟到数据迫使工作流使用回溯窗口,增加了执行时间和成本。
  3. 数据集回填的复杂性:回填数据集需要大量的工程工作,因为必须创建、执行和验证专用的回填工作流。

增量处理解决方案

该解决方案通过增量处理新增/更新的记录,并利用了Apache Iceberg的丰富功能。Apache Iceberg是一种用于大规模分析表的高性能格式,支持表达性SQL查询、模式演进、时间旅行和回滚等功能。

IPS解决方案的实现

IPS解决方案采用了一种轻量级方法,创建了一个额外的Iceberg表(称为ICDC表),该表仅存储原始表的引用而不复制任何数据文件,既高效又经济。新表还捕获了指定数据字段的变化范围。数据工程师可以通过使用新的工作流步骤类型或/和新的增量触发机制,将增量处理方法集成到现有的Maestro工作流中。

增量处理带来的新模式

引入增量处理能力后,出现了新的处理模式。最基本的模式是在工作流管道中仅使用ICDC表,如果不需要其他数据源,这大大简化了工作流执行,并完全消除了回溯窗口的需求。其他模式涉及使用增量变化数据或捕获的变化范围信息来优化数据转换逻辑,以限制在使用多个源表时重新处理的范围。

未来计划

Netflix的资深软件工程师Jun He分享了团队接下来计划开发的功能,包括支持更复杂的用例(不仅仅是追加)、跟踪表变化的进度、支持多种Iceberg表变化类型(如追加、覆盖等),以及将托管回填支持集成到IPS中,帮助用户构建、监控和验证回填。

阅读 49
0 条评论