如要將 Dataflow 的資料寫入 Bigtable,請使用 Apache Beam Bigtable I/O 連接器。
平行處理工作數量
平行處理工作數量由 Bigtable 叢集中的節點數控管。每個節點會管理一或多個鍵值範圍,但鍵值範圍可能會在節點之間移動,以進行負載平衡。詳情請參閱 Bigtable 說明文件中的「瞭解效能」。
系統會根據執行個體叢集中的節點數量計費。請參閱「Bigtable 定價」。
效能
下表列出 Bigtable I/O 寫入作業的效能指標。這些工作負載是在一個 e2-standard2 worker 上執行,使用 Java 適用的 Apache Beam SDK 2.48.0。他們沒有使用 Runner v2。
| 1 億筆記錄 | 1 KB | 1 個資料欄 | 處理量 (位元組) | 處理量 (元素) |
|---|---|---|
| 寫入 | 65 MB/秒 | 每秒 60,000 個元素 |
這些指標是以簡單的批次管道為依據。這些基準旨在比較 I/O 連接器之間的效能,不一定代表實際的管道。Dataflow 管道效能相當複雜,取決於 VM 類型、處理的資料、外部來源和接收器的效能,以及使用者程式碼。這些指標是以執行 Java SDK 為基礎,無法代表其他語言 SDK 的效能特徵。詳情請參閱「Beam IO 效能」。
最佳做法
一般來說,請避免使用交易。交易不保證是冪等,且 Dataflow 可能會因重試而多次叫用交易,導致出現非預期的值。
單一 Dataflow worker 可能會處理多個鍵值範圍的資料,導致寫入 Bigtable 的效率不彰。使用
GroupByKey依 Bigtable 鍵將資料分組,可大幅提升寫入效能。如果將大型資料集寫入 Bigtable,請考慮呼叫
withFlowControl。這項設定會自動限制 Bigtable 的流量,確保 Bigtable 伺服器有足夠的可用資源來提供資料。
後續步驟
- 請參閱 Bigtable I/O 連接器說明文件。
- 請參閱 Google 提供的範本清單。