All Products
Search
Document Center

DataWorks:Kasus penggunaan 2: Konfigurasikan dependensi lintas siklus

Last Updated:Jul 30, 2026

Dependensi lintas siklus menghubungkan instans node pada siklus saat ini dengan keberhasilan penyelesaian instans dari siklus sebelumnya.

DataWorks mendukung tiga jenis dependensi lintas siklus berikut:

  • Instans Node Anak

    • Dengan dependensi ini, sebuah node bergantung pada node downstream langsungnya. Misalnya, jika node A memiliki tiga node downstream (B, C, dan D), instans saat ini hanya dijalankan setelah instans siklus sebelumnya dari node B, C, dan D semuanya berhasil.

    • Dependensi ini umum digunakan ketika eksekusi saat ini dari suatu node bergantung pada keberhasilan node downstream dalam membersihkan data pada tabel output-nya dari siklus sebelumnya. Untuk memverifikasi bahwa node downstream telah membersihkan data sesuai harapan, Anda dapat mengonfigurasi aturan kualitas data untuk tabel output tersebut.

  • Instans Node Saat Ini

    • Ini adalah dependensi diri lintas siklus. Instans saat ini dari suatu node bergantung pada keberhasilan penyelesaian instansnya sendiri dari siklus sebelumnya.

    • Dependensi ini umum digunakan ketika eksekusi saat ini dari suatu node bergantung pada data bisnis yang dihasilkan oleh eksekusi sebelumnya. Untuk memverifikasi bahwa hasil pembersihan data sesuai harapan, Anda dapat mengonfigurasi aturan pemantauan kualitas data untuk tabel output node tersebut.

  • Instans Node Kustom: Tentukan dependensi pada node lain dengan memasukkan ID-nya secara manual. Jika Anda menentukan beberapa node, pisahkan ID-nya dengan koma (,), misalnya 12345,23456.

    • Dengan dependensi ini, instans node saat ini hanya dijalankan setelah instans siklus sebelumnya dari semua node kustom yang ditentukan berhasil.

    • Kasus penggunaan umum terjadi ketika logika bisnis mengharuskan adanya dependensi pada data yang dihasilkan oleh proses lain, tetapi kode node saat ini tidak secara langsung mengoperasikan data tersebut.

Saat Anda melihat dependensi node di Pusat Operasi, dependensi lintas siklus ditampilkan sebagai garis putus-putus untuk membedakannya dari dependensi dalam satu siklus.

Saat Anda menonaktifkan suatu node, Anda harus menghapus dependensi penjadwalannya, termasuk dependensi lintas siklus maupun dependensi dalam satu siklus.

Pilih siklus dependensi untuk node upstream berdasarkan kebutuhan bisnis Anda. Biasanya, Anda cukup mengonfigurasi salah satu—dependensi dalam satu siklus atau dependensi lintas siklus—namun tidak keduanya. Fitur parsing otomatis membuat dependensi dalam satu siklus secara default. Untuk mengubahnya, Anda harus terlebih dahulu menghapus dependensi dalam satu siklus tersebut, lalu menambahkan yang baru. Untuk informasi selengkapnya, lihat Logika dependensi penjadwalan.

Gambar berikut menunjukkan dependensi antar node dalam suatu alur kerja.依赖关系

Laman Pusat Operasi menampilkan dependensi dalam alur kerja tersebut.依赖关系

Menggunakan node xc_create sebagai contoh, setelah menulis pernyataan DDL CREATE TABLE xc_1 dan CREATE TABLE xc_2 di editor kode, klik Parse Input and Output from Code di panel konfigurasi penjadwalan. Sistem secara otomatis menghasilkan dua catatan output (test.xc_1 dan test.xc_2) di bagian Node Output Name, dengan metode yang tercantum sebagai Code Parsing. Di bagian Cross-Cycle Dependencies, Anda dapat memilih Instances of Current Node, Instances of Child Nodes, atau Instances of Custom Nodes.

Editor kode node xc_select berisi dua pernyataan SQL: SELECT * FROM xc_1; dan SELECT * FROM xc_2;. Melalui fitur Parse Input and Output from Code, sistem secara otomatis mengidentifikasi test.xc_1 dan test.xc_2 sebagai dependensi upstream untuk node ini, artinya xc_select bergantung pada dua tabel yang dihasilkan oleh node xc_create.

Dependensi lintas siklus: Node anak

Anda dapat membuat suatu node bergantung pada keberhasilan penyelesaian node downstream-nya dari siklus sebelumnya. Misalnya, jika node A memiliki node downstream B, C, dan D, instans siklus saat ini hanya akan dijalankan setelah instans siklus sebelumnya dari B, C, dan D semuanya berhasil diselesaikan.

Gunakan dependensi ini ketika eksekusi saat ini dari suatu node bergantung pada pembersihan data yang dilakukan oleh node downstream-nya dalam siklus sebelumnya. Node downstream tersebut membersihkan data output yang dihasilkan oleh node induk dalam eksekusi sebelumnya. Instans siklus saat ini dari node induk hanya dimulai jika instans siklus sebelumnya dari node downstream-nya berhasil dijalankan.

Node xc_create dikonfigurasi agar bergantung pada node anaknya dari siklus sebelumnya. Di bagian Cross-Cycle Dependencies (formerly Previous Cycle) di bagian bawah panel Scheduling Configuration, centang kotak pilihan Instances of Child Nodes.

Laman Pusat Operasi menampilkan dependensi antar node tersebut.依赖关系

Dependensi lintas siklus: Node saat ini

Eksekusi siklus saat ini dari suatu node dapat bergantung pada keberhasilan penyelesaian instans siklus sebelumnya dari node tersebut sendiri. Instans siklus sebelumnya yang gagal atau belum selesai akan menghalangi instans siklus saat ini untuk dijalankan.

Gunakan dependensi ini ketika tugas pembersihan data dalam siklus saat ini bergantung pada hasil tugas yang sama dari siklus sebelumnya. Dalam contoh ini, node dijadwalkan sebagai tugas per jam agar dependensinya lebih mudah diamati.

Lihat dependensi node tersebut di laman Operation Center > Auto Triggered Task O&M > Auto Triggered Instances.

Catatan

Jika suatu node per jam dikonfigurasi dengan dependensi diri (Cross-Cycle Dependencies: Current Node), instans per jam berikutnya dari node tersebut tidak akan dijalankan jika instans dari siklus sebelumnya tidak berhasil dijalankan.

Misalnya, jika instans pertama dari tugas per jam gagal atau tidak dijalankan pada hari tertentu, semua instans per jam berikutnya untuk tugas tersebut pada hari itu juga tidak akan dijalankan.

Dependensi lintas siklus: Node kustom

Dalam skenario ini, node xc_create bergantung pada instans siklus sebelumnya dari node 1000374815 karena logika bisnis, meskipun kodenya tidak menggunakan tabel output yang dihasilkan oleh node 1000374815.

Gunakan dependensi ini ketika logika bisnis Anda memerlukan data yang dihasilkan oleh node lain (dalam hal ini, node 1000374815), tetapi node saat ini (xc_create) tidak secara langsung mengoperasikan data tersebut, misalnya dengan melakukan SELECT dari tabel hasil node 1000374815.

Node xc_create dikonfigurasi agar memiliki dependensi upstream pada node kustom 1000374815. Di bagian Cross-Cycle Dependencies pada panel Scheduling Configuration, pilih Instances of Custom Nodes, masukkan ID node 1000374815 di bidang input, lalu klik Add.

Lihat dependensi node tersebut di laman Operation Center > Auto Triggered Task O&M > Auto Triggered Instances.周期实例

Pengaturan lanjutan untuk dependensi lintas siklus

Dalam alur kerja dengan node percabangan yang memiliki dua jalur downstream, biasanya hanya satu jalur yang dieksekusi sedangkan jalur lainnya diatur sebagai dry run. Status dry run ini diteruskan ke semua node downstream berikutnya. Untuk mengelola perilaku ini, DataWorks menyediakan opsi Upstream node air running attribute does not conduct cross-cycle.

Namun, jika suatu node dalam jalur percabangan memiliki dependensi diri, dan instans siklus sebelumnya diatur sebagai dry run karena cabangnya tidak dipilih, node tersebut dapat terjebak secara permanen dalam status dry run.

Misalnya, jika node di sebelah kiri diatur sebagai dry run, node downstream-nya juga akan diatur sebagai dry run.分支节点

Untuk memastikan bahwa eksekusi node pada siklus berikutnya ditentukan oleh logika percabangan pada siklus yang sama, bukan dipengaruhi oleh status dry run dari siklus sebelumnya, ikuti langkah-langkah berikut:

  1. Di laman konfigurasi node, klik Scheduling di panel sisi kanan.

  2. Di bagian Schedule, pilih Dependency on Last Cycle.

  3. Klik Advanced Settings.

  4. Pilih Upstream node air running attribute does not conduct cross-cycle. Tugas tersebut tidak lagi dipengaruhi oleh status dry run dari node percabangan pada siklus sebelumnya. Di bagian Cross-Cycle Dependencies (formerly Previous Cycle), pilih Instances of Current Node. Atur Skip Upstream Dry-Run Status ke Yes.

Catatan

Opsi ini hanya berlaku untuk status dry run yang diteruskan dari node percabangan yang tidak dipilih. Opsi ini tidak memengaruhi status dry run yang diwariskan dari instans siklus sebelumnya dari node biasa.

Kasus penggunaan khas untuk dependensi lintas siklus

  • Kasus Penggunaan 1:

    • Skenario: Tugas harian bergantung pada tugas per jam. Anda ingin tugas harian dijalankan pada waktu yang dijadwalkan, yaitu pukul 12.00, tanpa menunggu ke-24 instans per jam selesai.

    • Solusi: Konfigurasikan tugas per jam upstream agar bergantung pada instans sebelumnya dengan memilih Dependency on Last Cycle > This node. Atur tugas harian downstream agar dijalankan pukul 12.00 dan jangan konfigurasi dependensi lintas siklus apa pun untuknya.

      Setelah instans pukul 12.00 dari tugas per jam upstream berhasil dijalankan, tugas harian downstream akan dimulai.

  • Kasus Penggunaan 2:

    • Skenario: Tugas harian bergantung pada data yang dihasilkan oleh tugas per jam dari hari sebelumnya.

    • Solusi: Konfigurasikan tugas harian downstream dengan memilih Dependency on Last Cycle > Custom Rule. Lalu, masukkan ID node dari tugas per jam upstream.

  • Kasus Penggunaan 3:

    • Skenario: Tugas per jam bergantung pada tugas harian. Setelah tugas harian selesai, beberapa waktu jadwal eksekusi untuk tugas per jam mungkin telah lewat, sehingga menyebabkan beberapa instans dijalankan secara bersamaan. Bagaimana cara mencegah hal ini?

    • Solusi: Konfigurasikan tugas per jam downstream agar bergantung pada instans sebelumnya dengan memilih Dependency on Last Cycle > This node. Hal ini memastikan bahwa instans per jam dijalankan secara berurutan.

  • Kasus Penggunaan 4:

    • Skenario: Suatu node bergantung pada data yang dihasilkannya sendiri dalam siklus sebelumnya. Bagaimana cara memastikan data dari siklus sebelumnya sudah siap?

    • Solusi: Konfigurasikan node tersebut agar bergantung pada instans sebelumnya dengan memilih Dependency on Last Cycle > This node.