Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan cara mengelompokkan tugas di pipeline Airflow Anda menggunakan pola desain berikut:
- Mengelompokkan tugas di grafik DAG.
- Memicu DAG anak dari DAG induk.
- Mengelompokkan tugas dengan operator
TaskGroup
(hanya dengan Airflow 2).
Mengelompokkan tugas di grafik DAG
Untuk mengelompokkan tugas dalam fase tertentu dari pipeline, Anda dapat menggunakan relasi di antara tugas di file DAG Anda.
Perhatikan contoh berikut:
Dalam alur kerja ini, tugas op-1
dan op-2
dijalankan bersama setelah
tugas start
.
Anda dapat melakukannya dengan mengelompokkan tugas bersama dengan pernyataan
start >> [task_1, task_2]
.
Kode berikut memberikan implementasi lengkap DAG di atas:
Aliran udara 2
Aliran udara 1
Memicu DAG anak dari DAG orang tua
Anda dapat memicu satu DAG dari DAG lain dengan
TriggerDagRunOperator
.
Bergantung pada versi Airflow, Anda dapat menemukan
operator TriggerDagRunOperator
di modul yang berbeda:
- Untuk Airflow 1.10.*, gunakan
airflow.operators.dagrun_operator
ruang lingkup modul ini. - Untuk Airflow 2, gunakan
airflow.operators.trigger_dagrun
ruang lingkup modul ini.
Perhatikan contoh berikut:
Dalam alur kerja ini, blok dag_1
dan dag_2
mewakili serangkaian tugas
yang dikelompokkan bersama dalam DAG terpisah di Cloud Composer
lingkungan fleksibel App Engine.
Implementasi alur kerja ini memerlukan dua file DAG terpisah. File DAG yang mengontrol terlihat seperti berikut:
Aliran udara 2
Aliran udara 1
Implementasi DAG turunan, yang dipicu oleh pengendali DAG, terlihat seperti berikut:
Aliran udara 2
Aliran udara 1
Anda harus mengupload kedua file DAG di lingkungan Cloud Composer agar alur kerja berfungsi.
Mengelompokkan tugas dengan operator TaskGroup
Di Airflow 2, Anda dapat menggunakan
Operator TaskGroup
untuk mengelompokkan tugas di DAG.
Tugas yang ditentukan dalam blok TaskGroup
masih menjadi bagian dari DAG utama.
Perhatikan contoh berikut:
Tugas op-1
dan op-2
dikelompokkan bersama dalam satu blok dengan ID
taskgroup_1
.
Implementasi alur kerja ini akan terlihat seperti kode berikut: