Beam 功能矩陣

Apache Beam 提供了一個可移植的 API 層,用於構建複雜的資料平行處理管線,這些管線可以在各種執行引擎或執行器上執行。這個核心概念層基於 Beam 模型(以前稱為 Dataflow 模型),並且在每個 Beam 執行器中的實作程度各不相同。為了幫助闡明各個執行器的功能,我們建立了以下的功能矩陣。

各項功能已根據其對應的 What / Where / When / How 問題進行分組

如需關於 What / Where / When / How 概念分類的更多詳細資訊,我們建議您閱讀 O’Reilly Radar 上的 Streaming 102 文章。

請注意,未來我們打算在目前集合之外新增其他表格,例如執行時間特性(例如至少一次與恰好一次)、效能等。

如何閱讀表格
我們正在比較的工具
屬性此工具是否具有此屬性?是/部分/否/未驗證
這些符號是什麼意思?
~
部分
?
未驗證

正在計算什麼?

ParDo
GroupByKey
Flatten
Combine
複合轉換
側輸入
來源 API
指標
有狀態處理
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
請在此處查看詳細資訊和完整版本。

有界可分割 DoFn 支援狀態

基本
側輸入
可分割 DoFn 啟動檢查點
動態分割
捆綁完成
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
~
~
~
~
~
~
~
請在此處查看詳細資訊和完整版本。

無界可分割 DoFn 支援狀態

基本
側輸入
可分割 DoFn 啟動檢查點
動態分割
捆綁完成
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
~
~
請在此處查看詳細資訊和完整版本。

在事件時間中的哪個位置?

全域視窗
固定視窗
滑動視窗
會話視窗
自訂視窗
自訂合併視窗
時間戳記控制
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
~
~
~
~
~
~
請在此處查看詳細資訊和完整版本。

在處理時間中的哪個時間點?

可設定觸發
事件時間觸發
處理時間觸發
計數觸發
複合觸發
允許延遲
計時器
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
~
~
~
~
~
~
~
~
~
~
~
~
請在此處查看詳細資訊和完整版本。

精煉版本如何相關?

捨棄
累積
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
請在此處查看詳細資訊和完整版本。

尚未納入 Beam 模型的其他常見功能

排空
檢查點
金鑰排序傳遞
Google Cloud DataflowApache FlinkApache Spark (基於 RDD/DStream)Apache Spark 結構化串流 (基於 Dataset)Apache SamzaApache NemoHazelcast JetTwister2Python Direct FnRunnerGo Direct Runner
~
~
~
~
~
~
~
?
?
?
~
?
?
?
請在此處查看詳細資訊和完整版本。