批次工作的 Dataflow Shuffle

批次工作預設會使用 Dataflow Shuffle。 Dataflow Shuffle 會將重組作業移出工作站 VM,並移入 Dataflow 服務後端。

本頁面資訊適用於批次作業。串流工作會使用不同的重組機制,稱為串流重組

關於 Dataflow Shuffle

  • Dataflow Shuffle 是 Dataflow 轉換 (例如 GroupByKeyCoGroupByKeyCombine) 背後的基礎作業。
  • Dataflow Shuffle 作業會以可擴充、高效率、能容錯的方式,按照鍵值將資料分區及分組。

Dataflow Shuffle 的優點

服務型 Dataflow Shuffle 具有以下優點:

  • 可縮短多數管道工作類型的批次管道執行時間。
  • 減少耗用工作站 VM 上的 CPU、記憶體和永久磁碟儲存空間資源。
  • 水平自動調度資源更有效率,因為 VM 不會保留任何資料重組資料,因此可以提早調降資源配置。
  • 容錯能力更好,因為保留 Dataflow 資料重組資料的 VM 健康狀態不良,不會導致整個工作失敗。

支援與限制

  • 這項功能適用於所有支援 Dataflow 的區域。如要查看適用的位置,請參閱 Dataflow 位置。不同區域的成效可能有所差異。
  • Worker 必須部署在與 Dataflow 工作相同的區域。
  • 請勿指定 zone 管道選項。請改為指定 region,並將值設為其中一個可用區域。Dataflow 會自動選取指定地區中的區域。

    如果您指定 zone 管道選項,並將其設定為可用地區以外的區域,Dataflow 工作會傳回錯誤。如果您設定不相容的 regionzone 組合,工作就無法使用 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 需要支付相關費用。執行時間因情況而異,每次都不同。如果您執行的管道有重要期限,建議在期限到期之前先為其配置足夠的緩衝時間。