Beam 功能矩阵

Apache Beam 提供了一个可移植的 API 层,用于构建复杂的并行数据处理管道,这些管道可以在各种执行引擎(或称为运行器)上执行。此层的核心概念基于 Beam 模型(以前称为 Dataflow 模型),并在每个 Beam 运行器中以不同程度地实现。为了更清楚地说明各个运行器的功能,我们创建了以下功能矩阵。

各个功能已按其对应的“什么/哪里/何时/如何”问题进行分组。

有关“什么/哪里/何时/如何”概念分解的更多详细信息,建议阅读 O’Reilly Radar 上的 流式处理 102 文章。

请注意,将来我们打算在当前集合之外添加更多表格,用于诸如运行时特征(例如至少一次与恰好一次)、性能等。

如何阅读表格
我们正在比较的工具
属性此工具是否具有此属性?是/部分/否/未验证
这些符号意味着什么?
~
部分
?
未验证

正在计算什么?

ParDo
GroupByKey
Flatten
Combine
复合转换
侧输入
源 API
指标
有状态处理
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
在此处查看详细信息和完整版本。

有界可拆分 DoFn 支持状态

基本
侧输入
可拆分 DoFn 初始化的检查点
动态拆分
捆绑最终化
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
~
~
~
~
~
~
~
在此处查看详细信息和完整版本。

无界可拆分 DoFn 支持状态

基本
侧输入
可拆分 DoFn 初始化的检查点
动态拆分
捆绑最终化
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
~
~
在此处查看详细信息和完整版本。

事件时间在哪里?

全局窗口
固定窗口
滑动窗口
会话窗口
自定义窗口
自定义合并窗口
时间戳控制
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
~
~
~
~
~
~
在此处查看详细信息和完整版本。

处理时间何时?

可配置触发
事件时间触发器
处理时间触发器
计数触发器
复合触发器
允许的延迟
计时器
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
~
~
~
~
~
~
~
~
~
~
~
~
在此处查看详细信息和完整版本。

细化如何关联?

丢弃
累积
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
在此处查看详细信息和完整版本。

Beam 模型中尚未包含的其他常见功能

排水
检查点
按键排序的传递
Google Cloud DataflowApache FlinkApache Spark(基于 RDD/DStream)Apache Spark 结构化流式处理(基于数据集)Apache SamzaApache NemoHazelcast JetTwister2Python 直接 FnRunnerGo 直接运行器
~
~
~
~
~
~
~
?
?
?
~
?
?
?
在此处查看详细信息和完整版本。