Dependensi pada siklus sebelumnya berarti instans saat ini dari suatu node bergantung pada instans node tertentu dari siklus sebelumnya. Instans saat ini hanya dijalankan setelah instans dari siklus sebelumnya berhasil dijalankan. Anda dapat mengatur dependensi lintas siklus jika suatu node perlu menggunakan data yang dihasilkan oleh node hulu pada hari sebelumnya, atau jika task per jam atau per menit perlu bergantung pada instansnya sendiri dari jam atau menit sebelumnya. Topik ini menjelaskan cara mengonfigurasi dependensi lintas siklus beserta jenis-jenisnya.
Perhatian
Perhatikan hal-hal berikut saat mengonfigurasi dependensi pada siklus sebelumnya.
Kategori | Deskripsi | Informasi terkait |
Tampilan dependensi lintas siklus | Dependensi lintas siklus ditampilkan sebagai garis putus-putus dalam Directed Acyclic Graph (DAG) di DataWorks. | |
Konfirmasi apakah dependensi siklus yang sama diperlukan setelah mengatur dependensi lintas siklus | Setelah Anda mengonfigurasi dependensi, node hilir hanya dijalankan setelah semua node leluhurnya berhasil dijalankan. Fitur penguraian otomatis untuk dependensi siklus yang sama diaktifkan secara default. Jika Anda mengatur dependensi lintas siklus, pastikan apakah dependensi siklus yang sama juga diperlukan. Jika tidak, hapus dependensi siklus yang sama yang diurai secara otomatis agar node hilir berjalan sesuai harapan. | |
Kapan mengatur dependensi lintas siklus dalam skenario kompleks | Dalam beberapa skenario, jika dependensi siklus yang sama tidak memenuhi kebutuhan Anda, Anda dapat mengatur dependensi lintas siklus. Misalnya, jika suatu node harian bergantung pada node per jam, secara default node harian tersebut bergantung pada semua instans node per jam untuk hari tersebut. Anda dapat mengonfigurasi self-dependency untuk node per jam tersebut. Hal ini memungkinkan node harian bergantung pada instans node per jam dari siklus tertentu. | Wajib baca: Prinsip dan contoh konfigurasi penjadwalan untuk skenario dependensi kompleks |
Pratinjau dependensi node | Untuk mencegah keterlambatan penjadwalan di lingkungan produksi akibat dependensi yang tidak terduga, pratinjau dependensinya sebelum memublikasikan task. Hal ini memastikan hubungan instans untuk setiap siklus sudah benar. | |
Instruksi Penerbitan Tugas | Pastikan bahwa baik node hulu maupun node hilir yang memiliki dependensi lintas siklus telah dipublikasikan ke lingkungan produksi. Setelah dipublikasikan, Anda dapat melihat dependensinya di Operation Center untuk lingkungan tersebut. |
Titik masuk
Buka halaman pengeditan node di Data Studio. Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di bagian , Anda dapat mengonfigurasi dependensi node tersebut.
Jenis dependensi
Tabel berikut menjelaskan jenis dependensi pada siklus sebelumnya yang didukung.
Jenis dependensi | Dependensi node | Skenario bisnis |
Dependensi pada siklus sebelumnya: Node saat ini (self-dependency) | Instans saat ini dari suatu node bergantung pada hasil instansnya sendiri dari siklus sebelumnya. Instans saat ini hanya dijalankan jika instans dari siklus sebelumnya berhasil dijalankan. | Instans saat ini dari suatu node bergantung pada data bisnis yang dihasilkan oleh instansnya sendiri dari siklus sebelumnya. |
Dependensi pada siklus sebelumnya: Node turunan tingkat pertama | Instans saat ini dari suatu node bergantung pada status instans node hilirnya dari siklus sebelumnya. Instans saat ini hanya dijalankan jika instans node hilir dari siklus sebelumnya berhasil dijalankan. | Instans saat ini dari suatu node bergantung pada apakah node hilirnya berhasil memproses data di tabel sink-nya (tabel output) dari siklus sebelumnya. |
Instans saat ini dari suatu node bergantung pada hasil instans node lain dari siklus sebelumnya. Instans saat ini hanya dijalankan jika instans node lain dari siklus sebelumnya berhasil dijalankan. | Instans saat ini dari suatu node secara logis bergantung pada data dari proses bisnis lain, meskipun node tersebut tidak melakukan operasi apa pun terhadap data tersebut. |
Dependensi pada siklus sebelumnya: Node saat ini (self-dependency)
Instans saat ini dari suatu node bergantung pada data bisnis yang dihasilkan oleh instansnya sendiri dari siklus sebelumnya. Gambar berikut menunjukkan contoh pengaturan dependensi dan hubungan yang dihasilkan.
Jika suatu task harian bergantung pada task per jam atau per menit, waktu eksekusi task harian tersebut dipengaruhi oleh apakah self-dependency diatur untuk task per jam atau per menit tersebut:
Task per jam atau per menit tanpa self-dependency
Secara default, task harian bergantung pada semua instans task per jam atau per menit untuk hari tersebut. Task harian kemudian mengagregasi dan memproses seluruh data tabel yang dihasilkan oleh task per jam atau per menit untuk hari tersebut.
Task per jam atau per menit dengan self-dependency
Task harian menempel pada instans per jam atau per menit dengan waktu penjadwalan terdekat, berdasarkan prinsip kedekatan waktu penjadwalan. Task tersebut tidak bergantung pada semua instans per jam atau per menit untuk hari tersebut.
Untuk informasi lebih lanjut tentang dependensi spesifik, lihat Lampiran: Ringkasan skenario dependensi kompleks.
Saat Anda melakukan backfill data untuk task dengan self-dependency, instans datanya mungkin dijalankan secara berurutan berdasarkan urutan kronologis. Untuk informasi lebih lanjut, lihat Backfill data untuk task dengan self-dependency.
Dependensi pada siklus sebelumnya: Node turunan tingkat pertama
Instans saat ini dari suatu node bergantung pada apakah node hilirnya berhasil memproses data tabelnya dari siklus sebelumnya.
Misalnya, Node C memiliki dua node hilir: Node A dan Node B. Dependensi pada node turunan tingkat pertama berarti Node C bergantung pada hasil Node A dan Node B dari siklus sebelumnya. Dalam gambar, siklus saat ini adalah T dan siklus sebelumnya adalah T-1. Instans saat ini dari Node C hanya dijalankan setelah instans Node A dan Node B dari siklus sebelumnya berhasil dijalankan.
Dependensi pada siklus sebelumnya: Node lain
Instans node saat ini hanya dijalankan jika instans node lain dari siklus sebelumnya berhasil dijalankan.
Misalnya, Node A dan Node B adalah dua node hilir dari Node C. Dependensi pada node lain berarti Node B bergantung pada hasil Node D dari siklus sebelumnya. Dalam gambar, siklus saat ini adalah T dan siklus sebelumnya adalah T-1. Instans saat ini dari Node B hanya dijalankan setelah instans Node D dari siklus sebelumnya berhasil dijalankan.
Warisi properti dry-run dari node hulu
Konfigurasi ini biasanya digunakan bersama branch node.
Titik Masuk
Di bagian Scheduling Dependency, Anda dapat mengatur Skip Dry-Run Property of Upstream Node ke Yes. Pengaturan ini mencegah node hilir terpengaruh oleh properti dry-run node ini dari siklus sebelumnya.

Skenario aplikasi
Suatu node memiliki beberapa node hilir. Saat eksekusi task, beberapa node hilir diatur ke status dry-run. Jika node hilir dry-run dikonfigurasi dengan self-dependency pada siklus sebelumnya, properti dry-run-nya diwariskan ke node anaknya. Hal ini menyebabkan node tersebut terus-menerus berada dalam status dry-run. Jika Anda tidak ingin node anak mewarisi properti dry-run dari node hulu, atur Skip Dry-Run Property of Upstream Node ke Yes di bagian Scheduling Dependency.
Example scenario
Asumsikan Assign_Node adalah assignment node, Branch_Node adalah branch node, dan Shell_Node1 serta Shell_Node2 adalah node hilir dari Branch_Node. Semua node ini dijadwalkan berjalan setiap hari.
Saat runtime, Shell_Node1 diatur ke dry-run, sedangkan Shell_Node2 berjalan normal.
Node Shell_Node1 dikonfigurasi dengan self-dependency pada siklus sebelumnya.
Pada siklus saat ini (T), instans berulang yang dihasilkan untuk node Shell_Node1 diberi nama
Shell_Node1'.Pada siklus sebelumnya (T-1), instans berulang yang dihasilkan untuk node Shell_Node1 diberi nama
Shell_Node1.
Instans berulang Shell_Node1pada epoch saat ini (T) bergantung pada instans berulangShell_Node1dari epoch sebelumnya (T-1) untuk dijalankan. Node `Shell_Node1` selalu melakukan dry-run karena merupakan node turunan dan mewarisi properti `dry-run` dari node leluhurnya.
Pratinjau dependensi
Setelah menyelesaikan konfigurasi, Anda dapat mempratinjau dependensi node tersebut. Untuk informasi lebih lanjut, lihat Selanjutnya: Konfirmasi bahwa dependensi sesuai harapan Anda.