如要將 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 伺服器有足夠的資源可提供資料。
後續步驟
- 參閱 Bigtable I/O 連接器說明文件。
- 請參閱Google 提供的範本清單。