從 Dataflow 寫入 Bigtable

如要將 Dataflow 的資料寫入 Bigtable,請使用 Apache Beam Bigtable I/O 連接器

平行處理工作數量

平行處理數由 Bigtable 叢集中的節點數控管。每個節點會管理一或多個鍵值範圍,但鍵值範圍可能會在節點之間移動,以進行負載平衡。詳情請參閱 Bigtable 說明文件中的「瞭解效能」。

系統會根據執行個體叢集中的節點數量計費。請參閱 Bigtable 定價

成效

下表列出 Bigtable I/O 寫入作業的效能指標。這些工作負載是在一個 e2-standard2 工作站上執行,使用 Java 適用的 Apache Beam SDK 2.48.0。他們沒有使用 Runner v2。

1 億筆記錄 | 1 KB | 1 個資料欄 處理量 (位元組) 處理量 (元素)
撰寫 65 MBps 每秒 60,000 個元素

這些指標是以簡單的批次管道為依據。這些基準旨在比較 I/O 連接器之間的效能,不一定代表實際的管道。Dataflow 管道效能相當複雜,取決於 VM 類型、處理的資料、外部來源和接收器的效能,以及使用者程式碼。這些指標是根據執行 Java SDK 取得,無法代表其他語言 SDK 的效能特徵。詳情請參閱「Beam IO 效能」。

最佳做法

  • 一般來說,請避免使用交易。交易不保證是冪等,且 Dataflow 可能會因重試而多次叫用交易,導致出現非預期的值。

  • 單一 Dataflow 工作站可能會處理多個鍵範圍的資料,導致寫入 Bigtable 的效率不彰。使用 GroupByKey 依 Bigtable 鍵將資料分組,可大幅提升寫入效能。

  • 如果將大型資料集寫入 Bigtable,請考慮呼叫 withFlowControl。這項設定會自動限制 Bigtable 的流量,確保 Bigtable 伺服器有足夠的資源可提供資料。

後續步驟