The Dataflow Model:A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing

论文主要内容:

这篇论文主要提出了一个统一的数据流模型,用于处理无界、无序、全球规模的数据集。该模型通过提供灵活的触发机制和集成增量处理支持,从追求数据完整性的角度转变为适应数据变化的角度。它将逻辑数据处理与底层物理实现分离,使得批量、微批量和流式执行引擎的选择成为对正确性、延迟和成本的简单选择。此外,该模型通过将管道实现分解为四个相关维度,提高了清晰度、可组合性和灵活性。该模型已经在MillWheel流式引擎和FlumeJava批量引擎上实现,并已用于Google Cloud Dataflow服务。

该论文主要内容如下:

  1. 数据处理模型概述

    • 提出了数据流模型,用于平衡大规模无界、无序数据处理的正确性、延迟和成本。

    • 介绍了流式处理、批处理、微批处理等概念,以及与无界数据相关的概念。

  2. 窗口模型

    • 解释了窗口划分数据集的意义,介绍了固定窗口、滑动窗口、会话窗口等不同类型的窗口。

    • 提出了窗口分配和窗口合并的概念,以支持无对齐的事件时间窗口。

  3. 触发器和增量处理

    • 解释了触发器的作用,以及其如何与窗口模型相结合来控制窗口结果的输出时间。

    • 提出了累积模式、丢弃模式、累积+撤销模式等触发器,以支持增量处理。

  4. 执行引擎

    • 提出了在流式引擎MillWheel和批量引擎FlumeJava上实现数据流模型的方法。

    • 解释了在批处理、微批处理和流式处理引擎上执行同一管道的不同效果。

  5. 设计原则

    • 强调了无界数据处理中不应依赖任何完整性的概念。

    • 提出了模型应灵活、有价值、清晰,并支持按事件时间分析数据等设计原则。

  6. 实际应用经验

    • 讨论了大规模回填、会话支持、账单处理等实际应用案例对模型设计的影响。

  7. 结论

    • 指出未来数据处理的方向是无界数据,并强调该模型是这一方向的重要一步。 这些知识点覆盖了无界数据处理的关键概念和模型,以及其在实际应用中的影响。

论文预览: