批次工作預設會使用 Dataflow Shuffle。 Dataflow Shuffle 會將重組作業移出工作站 VM,並移入 Dataflow 服務後端。
本頁面資訊適用於批次作業。串流工作會使用不同的重組機制,稱為串流重組。
關於 Dataflow Shuffle
- Dataflow Shuffle 是 Dataflow 轉換 (例如
GroupByKey
、CoGroupByKey
和Combine
) 背後的基礎作業。 - Dataflow Shuffle 作業會以可擴充、高效率、能容錯的方式,按照鍵值將資料分區及分組。
Dataflow Shuffle 的優點
服務型 Dataflow Shuffle 具有以下優點:
- 可縮短多數管道工作類型的批次管道執行時間。
- 減少耗用工作站 VM 上的 CPU、記憶體和永久磁碟儲存空間資源。
- 水平自動調度資源更有效率,因為 VM 不會保留任何資料重組資料,因此可以提早調降資源配置。
- 容錯能力更好,因為保留 Dataflow 資料重組資料的 VM 健康狀態不良,不會導致整個工作失敗。
支援與限制
- 這項功能適用於所有支援 Dataflow 的區域。如要查看適用的位置,請參閱 Dataflow 位置。不同區域的成效可能有所差異。
- Worker 必須部署在與 Dataflow 工作相同的區域。
請勿指定
zone
管道選項。請改為指定region
,並將值設為其中一個可用區域。Dataflow 會自動選取指定地區中的區域。如果您指定
zone
管道選項,並將其設定為可用地區以外的區域,Dataflow 工作會傳回錯誤。如果您設定不相容的region
和zone
組合,工作就無法使用 Dataflow Shuffle。如果是 Python,Dataflow Shuffle 需使用 Python 適用的 Apache Beam SDK 2.1.0 以上版本。
磁碟大小注意事項
每個批次作業的預設開機磁碟大小為 25 GB。部分批次工作可能需要修改磁碟大小。請考量下列事項:
- 工作站 VM 的作業系統、二進位檔、記錄檔和容器會佔用 25 GB 磁碟空間的一部分。當您使用 Dataflow Shuffle 時,需要耗用大量磁碟空間且超過剩餘磁碟容量的工作可能會失敗。
- 受限於小型磁碟的效能,使用大量磁碟 I/O 的工作速度可能會比較慢。如要進一步瞭解不同大小磁碟的效能差異,請參閱「Compute Engine 永久磁碟效能」一文。
如要為 Dataflow Shuffle 工作指定較大的磁碟大小,可以使用 --disk_size_gb
參數。
定價
使用的工作站資源量之所以能減少,多數情況是因為資料重組工作負載移到了 Dataflow 服務;因此,使用 Dataflow Shuffle 需要支付相關費用。執行時間因情況而異,每次都不同。如果您執行的管道有重要期限,建議在期限到期之前先為其配置足夠的緩衝時間。