Dataflow 元件

您可以使用 Dataflow 元件將 Apache Beam 工作提交至 Dataflow 執行。在 Dataflow 中,Job 資源代表 Dataflow 工作。

Google Cloud SDK 包含下列運算子,可用於建立 Job 資源並監控其執行情形:

此外, Google Cloud SDK 包含 WaitGcpResourcesOp 元件,可在執行 Dataflow 工作時降低成本。

DataflowFlexTemplateJobOp

DataflowFlexTemplateJobOp 運算子可讓您建立 Vertex AI Pipelines 元件,以便啟動 Dataflow Flex 範本

在 Dataflow 中,LaunchFlexTemplateParameter 資源代表要啟動的 Flex 範本。這個元件會建立 LaunchFlexTemplateParameter 資源,然後要求 Dataflow 透過啟動範本建立工作。如果範本啟動成功,Dataflow 會傳回 Job 資源。

Dataflow Flex 範本元件會在收到 Dataflow 的 Job 資源後終止。元件會將 job_id 輸出為序列化的 gcp_resources proto。您可以將這個參數傳遞至 WaitGcpResourcesOp 元件,等待 Dataflow 工作完成。

DataflowPythonJobOp

DataflowPythonJobOp 運算子可讓您建立 Vertex AI Pipelines 元件,藉由將以 Python 為基礎的 Apache Beam 工作提交至 Dataflow 執行,來準備資料。

Apache Beam 工作的 Python 程式碼會透過 Dataflow Runner 執行。當您使用 Dataflow 服務執行管道時,執行程式會將可執行的程式碼上傳至 python_module_path 參數指定的位置,並將依附元件上傳至 Cloud Storage 值區 (由 temp_location 指定),然後建立 Dataflow 工作,在 Google Cloud中的受管理資源上執行 Apache Beam 管道。

如要進一步瞭解 Dataflow Runner,請參閱「使用 Dataflow Runner」。

Dataflow Python 元件會接受使用 Beam 執行器傳遞至 Apache Beam 程式的引數清單。這些引數由 args 指定。舉例來說,您可以使用這些引數設定 apache_beam.options.pipeline_options,在執行 Dataflow 工作時指定網路、子網路、客戶管理加密金鑰 (CMEK) 和其他選項。

WaitGcpResourcesOp

Dataflow 工作通常需要很長的時間才能完成。busy-wait 容器 (用於啟動 Dataflow 工作並等待結果的容器) 的費用可能會變得昂貴。

使用 Beam 執行器提交 Dataflow 工作後,DataflowPythonJobOp 元件會立即終止,並以序列化的 gcp_resources proto 形式傳回 job_id 輸出參數。您可以將這個參數傳遞至 WaitGcpResourcesOp 元件,等待資料流程工作完成。

    dataflow_python_op = DataflowPythonJobOp(
        project=project_id,
        location=location,
        python_module_path=python_file_path,
        temp_location = staging_dir,
        requirements_file_path = requirements_file_path,
        args = ['--output', OUTPUT_FILE],
    )
  
    dataflow_wait_op =  WaitGcpResourcesOp(
        gcp_resources = dataflow_python_op.outputs["gcp_resources"]
    )

Vertex AI Pipelines 會將 WaitGcpResourcesOp 最佳化,以無伺服器方式執行,且不收取任何費用。

如果 DataflowPythonJobOpDataflowFlexTemplateJobOp 不符合您的需求,您也可以自行建立元件,輸出 gcp_resources 參數並傳遞至 WaitGcpResourcesOp 元件。

如要進一步瞭解如何建立 gcp_resources 輸出參數,請參閱「撰寫顯示 Google Cloud 控制台連結的元件」一文。

API 參考資料

教學課程

版本記錄和版本資訊

如要進一步瞭解 Google Cloud Pipeline Components SDK 的版本歷史記錄和變更,請參閱 Google Cloud Pipeline Components SDK 版本資訊

技術支援聯絡人

如有任何疑問,請來信至 kubeflow-pipelines-components@google.com