DAG yang bergantung pada tugas
Halaman ini menguraikan langkah-langkah untuk mengaktifkan Directed Acyclic Graph (DAG) yang bergantung pada tugas untuk menentukan dependensi tugas antara node tabel SQL dalam satu DAG, bukan mengandalkan penjadwalan cron di beberapa DAG. Setelan yang dapat disesuaikan digunakan untuk membuat DAG Cloud Composer dengan beberapa node pembaruan tabel yang saling bergantung. Cortex Framework menyediakan setelan yang direkomendasikan untuk DAG SAP (ECC dan S/4HANA) yang bergantung pada tugas. Namun, Anda dapat menyesuaikannya lebih lanjut atau menentukan DAG yang bergantung pada tugas untuk sumber data apa pun.
Mengaktifkan DAG yang bergantung pada tugas
- Ubah file config.json dengan menetapkan kolom
enableTaskDependencies
keTrue
. Setelan ini mengaktifkan penelusuran Cortex Framework untuk file setelan pelaporan yang bergantung pada tugas dengan akhiran_task_dep.yaml
. - Buat file setelan pelaporan khusus dengan akhiran
_task_dep.yaml
untuk setiap sumber data yang memerlukan dependensi tugas. Untuk mengetahui detail selengkapnya, lihat Menentukan setelan pelaporan yang bergantung pada tugas. - Sesuaikan dependensi tugas dengan menambahkan
table_setting.dag_setting
sebagai bagian baru ke node jenistable
. Untuk mengetahui detail selengkapnya, lihat Menentukan dan menyesuaikan dependensi tugas. - Build Cortex Framework menggunakan proses build standar.
- Periksa file yang dihasilkan yang berada di bucket target di bagian
dags/data_source/reporting/task_dep_dags/dag_name
. Folder ini akan berisi file Python yang menentukan DAG Cloud Composer dan file SQL dengan kueri refresh untuk setiap node tabel dalam DAG. - Salin file ke bucket DAG Cloud Composer untuk men-deploy Cortex Framework menggunakan proses build standar.
Menentukan setelan pelaporan yang bergantung pada tugas
Untuk setiap sumber data yang memerlukan dependensi tugas, Cortex Framework
menghendaki file setelan pelaporan yang bergantung pada tugas dengan akhiran _task_dep.yaml
.
Saat membuat dan memperbarui file ini, pertimbangkan hal-hal berikut:
- Untuk SAP, Anda dapat menyesuaikan dan menggunakan file setelan yang disediakan
reporting_settings_ecc_task_dep.yaml
danreporting_settings_s4_task_dep.yaml
. - Untuk sumber data lainnya, buat setelan pelaporan dependen tugas Anda sendiri bersama dengan setelan asli, misalnya:
reporting_settings_task_dep.yaml.
Untuk mengetahui informasi selengkapnya tentang kolom yang tersedia dalam file setelan pelaporan, lihat dag_types.py.
Menentukan dan menyesuaikan dependensi tugas
Sesuaikan dependensi tugas dengan menambahkan
table_setting.dag_setting
sebagai bagian baru ke node jenis table
:
- sql_file: dependent_table2.sql
type: table
table_setting:
dag_setting:
name: "dag1"
parents: ["dependent_table1.sql"]
Setelan DAG mencakup dua kolom:
name
: String yang diperlukan untuk semua node dalam DAG yang bergantung pada tugas yang menentukan nama DAG tempat node tabel berada. Hal ini termasuk node tingkat atas yang direferensikan sebagai induk oleh node lain dalam DAG.parents
: Daftar string opsional yang berisi jalursql_file
dari node tabel lain dalam DAG yang sama. Induk ini harus berhasil berjalan sebelum node dipicu.
Pertimbangan tambahan:
- Node tanpa induk yang ditentukan dianggap sebagai node tingkat teratas dan akan berjalan di awal DAG.
- Setidaknya satu node tingkat teratas harus memiliki
table_setting.load_frequency
yang ditentukan, yang akan digunakan sebagai jadwal DAG. - Jika beberapa node level teratas telah menentukan
load_frequency
, node tersebut harus sama. - Node turunan yang telah menentukan
parents
tidak dapat menentukanload_frequency
. - Node yang tidak memiliki
dag_setting
yang ditentukan akan dibuat sama seperti sebelumnya sebagai DAG dengan satu node pembaruan tabel dan tidak ada dependensi tugas. - Jenis node lain seperti tampilan dan skrip tidak dapat disertakan dalam DAG yang bergantung pada tugas, yang hanya menghasilkan node dengan DML untuk memuat ulang tabel.