Komponen Dataflow

Dengan komponen Dataflow, Anda dapat mengirimkan tugas Apache Beam ke Dataflow untuk dijalankan. Di Dataflow, resource Job merepresentasikan tugas Dataflow.

Google Cloud Pipeline Components SDK menyertakan operator berikut untuk membuat resource Job dan memantau eksekusinya:

Selain itu, Google Cloud Pipeline Components SDK menyertakan komponen WaitGcpResourcesOp, yang dapat Anda gunakan untuk mengurangi biaya saat menjalankan tugas Dataflow.

DataflowFlexTemplateJobOp

Operator DataflowFlexTemplateJobOp memungkinkan Anda membuat komponen Vertex AI Pipelines untuk meluncurkan Template Flex Dataflow.

Di Dataflow, resource LaunchFlexTemplateParameter merepresentasikan Template Flex yang akan diluncurkan. Komponen ini membuat resource LaunchFlexTemplateParameter, lalu meminta Dataflow untuk membuat tugas dengan meluncurkan template. Jika template berhasil diluncurkan, Dataflow akan menampilkan resource Job.

Komponen Template Flex Dataflow dihentikan setelah menerima resource Job dari Dataflow. Komponen ini menghasilkan job_id sebagai proto gcp_resources serial. Anda dapat meneruskan parameter ini ke komponen WaitGcpResourcesOp, untuk menunggu tugas Dataflow selesai.

DataflowPythonJobOp

Operator DataflowPythonJobOp memungkinkan Anda membuat komponen Vertex AI Pipelines yang menyiapkan data dengan mengirimkan tugas Apache Beam berbasis Python ke Dataflow untuk dijalankan.

Kode Python dari tugas Apache Beam berjalan dengan Dataflow Runner. Saat Anda menjalankan pipeline dengan layanan Dataflow, runner akan mengupload kode yang dapat dieksekusi ke lokasi yang ditentukan oleh parameter dan dependensi python_module_path ke bucket Cloud Storage (ditentukan oleh temp_location), dan kemudian membuat tugas Dataflow yang menjalankan pipeline Apache Beam Anda pada resource terkelola di Google Cloud.

Untuk mempelajari Runner Dataflow lebih lanjut, lihat Menggunakan Runner Dataflow.

Komponen Dataflow Python menerima daftar argumen yang diteruskan menggunakan Beam Runner ke kode Apache Beam Anda. Argumen ini ditentukan oleh args. Misalnya, Anda dapat menggunakan argumen ini guna menetapkan apache_beam.options.pipeline_options untuk menentukan jaringan, subnetwork, kunci enkripsi yang dikelola pelanggan (CMEK), dan opsi lainnya saat Anda menjalankan tugas Dataflow.

WaitGcpResourcesOp

Tugas Dataflow sering kali memerlukan waktu lama untuk diselesaikan. Biaya container busy-wait (container yang meluncurkan tugas Dataflow dan menunggu hasilnya) dapat menjadi mahal.

Setelah mengirimkan tugas Dataflow menggunakan runner Beam, komponen DataflowPythonJobOp akan segera dihentikan dan menampilkan parameter output job_id sebagai proto gcp_resources yang diserialisasi. Anda dapat meneruskan parameter ini ke komponen WaitGcpResourcesOp, untuk menunggu tugas Dataflow selesai.

    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 mengoptimalkan WaitGcpResourcesOp untuk menjalankannya secara serverless, dan tanpa biaya.

Jika DataflowPythonJobOp dan DataflowFlexTemplateJobOp tidak memenuhi persyaratan Anda, Anda juga dapat membuat komponen sendiri yang menghasilkan parameter gcp_resources dan meneruskannya ke komponen WaitGcpResourcesOp.

Untuk mengetahui informasi selengkapnya tentang cara membuat parameter output gcp_resources, lihat Menulis komponen untuk menampilkan link konsol Google Cloud.

Referensi API

Tutorial

Histori versi dan catatan rilis

Untuk mempelajari lebih lanjut histori versi dan perubahan pada Google Cloud Pipeline Components SDK, lihat Catatan Rilis Google Cloud Pipeline Components SDK.

Kontak dukungan teknis

Jika ada pertanyaan, hubungi kubeflow-pipelines-components@google.com.