Dependensi penjadwalan menentukan node leluhur mana yang harus berhasil diselesaikan sebelum node turunan dapat dijalankan. Konfigurasikan dengan benar agar setiap node menerima data valid dari tabel hulunya.
Cara kerja
DataWorks menjalankan node auto triggered berdasarkan directed acyclic graph (DAG). Saat Anda menetapkan dependensi penjadwalan antara dua node, node turunan akan menunggu hingga semua node leluhurnya berhasil diselesaikan sebelum mulai dijalankan. Hal ini memastikan node hilir selalu beroperasi pada data yang dihasilkan dalam siklus penjadwalan saat ini atau sebelumnya.
Waktu penjadwalan suatu node menetapkan waktu mulai paling awal yang mungkin. Jika node leluhur belum selesai, node turunan akan tetap menunggu—meskipun waktu mulai terjadwalnya telah lewat. Untuk detail tentang mendiagnosis status tunggu, lihat Gunakan fitur Intelligent Diagnosis.
Pilih metode dependensi
Tersedia dua metode. Pemilihan metode tergantung pada apakah terdapat alur data yang kuat antara tabel output node saat ini dan tabel output node leluhurnya.
Alur data kuat berarti node saat ini membaca data yang ditulis oleh node leluhur. Jika node leluhur gagal menghasilkan data, node saat ini juga tidak dapat memperoleh data valid.
| Metode | Kapan digunakan |
|---|---|
| Konfigurasi berdasarkan alur data tabel | Terdapat alur data kuat antara tabel node saat ini dan tabel node leluhurnya, serta node leluhur merupakan node auto triggered |
| Konfigurasi dependensi kustom | Tidak terdapat alur data kuat, atau sumber data hulu bukan node auto triggered |
Konfigurasi dependensi penjadwalan berdasarkan alur data tabel
Saat terdapat alur data kuat dan tabel hulu dihasilkan oleh node auto triggered, konfigurasikan dependensi berbasis alur data tabel. DataWorks melacak status penyelesaian node untuk menentukan kapan data hulu siap.
DataWorks mendukung dependensi antar node yang dijadwalkan berdasarkan menit, jam, hari, minggu, bulan, atau tahun. Jumlah instans per node bergantung pada frekuensi penjadwalan dan jumlah siklusnya, sehingga pemetaan dependensi antara instans leluhur dan turunan dapat bervariasi. Pratinjau dependensi sebelum penerapan jika node leluhur dan turunan memiliki frekuensi penjadwalan atau waktu penjadwalan yang berbeda. Untuk detailnya, lihat Prinsip dan contoh konfigurasi penjadwalan dalam skenario dependensi kompleks.
Langkah 1: Konfirmasi alur data tabel
Periksa apakah output node saat ini bergantung pada output node leluhur. Tanyakan: jika node leluhur gagal menghasilkan data hari ini, apakah node saat ini tetap dapat menghasilkan hasil yang valid? Jika tidak, berarti terdapat alur data kuat.
Untuk dependensi lintas ruang kerja atau kasus di mana Anda tidak dapat melihat konfigurasi parameter penjadwalan node leluhur, lihat Konfirmasi alur data suatu tabel.
Langkah 2: Pilih jenis dependensi
Parameter penjadwalan dalam kode node menentukan instans leluhur spesifik mana yang menjadi ketergantungan instans saat ini. DataWorks mengganti nilai parameter pada waktu penjadwalan berdasarkan waktu data dan waktu penjadwalan node. Diagram berikut menunjukkan cara kerja logika pemilihan tersebut.
Pilih jenis dependensi berdasarkan data yang dibutuhkan node saat ini:
| Jenis dependensi | Kapan digunakan | Contoh |
|---|---|---|
| Same-cycle | Node saat ini membutuhkan data yang dihasilkan oleh node leluhur pada hari yang sama | Node laporan harian (berjalan pukul 06.00) bergantung pada node agregasi harian (berjalan pukul 05.00) — instans pukul 06.00 bergantung pada instans pukul 05.00 pada hari yang sama |
| Cross-cycle | Node saat ini membutuhkan data yang dihasilkan oleh node leluhur pada hari sebelumnya, atau instans yang dijadwalkan per jam/menit bergantung pada instans siklus sebelumnya | Node laporan harian (berjalan pukul 01.00) bergantung pada agregasi akhir hari kemarin — instans 15 Januari bergantung pada instans leluhur 14 Januari |
Kasus khusus — penjadwalan per jam dan per menit:
-
Node yang dijadwalkan per jam atau per menit dapat bergantung pada instans siklus sebelumnya miliknya sendiri. Misalnya, instans yang dihasilkan untuk node per jam dalam siklus saat ini bergantung pada instans yang dihasilkan untuk node yang sama dalam siklus sebelumnya. Untuk detailnya, lihat Dependensi pada instans yang dihasilkan untuk node saat ini dalam siklus sebelumnya.
-
Jika Node A (per jam) dan Node B (per jam) memiliki waktu penjadwalan yang sama, konfigurasikan dependensi cross-cycle pada A. Hal ini membuat instans pukul 02.00 Node A bergantung pada instans pukul 01.00 Node B, bukan menunggu instans pada jam yang sama. Logika yang sama berlaku untuk node yang dijadwalkan per menit.
Langkah 3: Verifikasi dependensi
Setelah dikonfigurasi, verifikasi bahwa dependensi bekerja sesuai harapan sebelum dan setelah penerapan.
| Metode | Apa yang diperiksa | Kapan digunakan |
|---|---|---|
| Pratinjau dependensi penjadwalan | Menampilkan instans leluhur mana yang menjadi ketergantungan setiap instans turunan — menangkap kesalahan pemetaan lintas frekuensi sebelum penerapan | Mengonfigurasi dependensi antar node dengan frekuensi penjadwalan berbeda (misalnya, node harian yang bergantung pada node per jam), atau mengonfigurasi dependensi cross-cycle |
| Bandingkan hasil penguraian kode | Menampilkan perbedaan antara dependensi saat ini dan baru — memastikan perubahan Anda tidak merusak data di lingkungan produksi | Mengubah dependensi pada node yang menggunakan penguraian kode otomatis |
| Lihat halaman Auto Triggered Nodes setelah penerapan | Menampilkan grafik dependensi aktual di lingkungan produksi — menangkap ketidaksesuaian antara konfigurasi pengembangan dan status produksi | Setelah menerapkan node untuk memverifikasi bahwa lingkungan produksi mencerminkan dependensi yang dimaksudkan |
Verifikasi di lingkungan produksi:
Dalam ruang kerja yang berjalan dalam mode standar, konfigurasi dependensi di lingkungan pengembangan dan produksi dapat berbeda. Setelah menerapkan node di DataStudio, buka halaman Auto Triggered Nodes di Operation Center dan perluas tampilan leluhur/turunan untuk mengonfirmasi dependensi produksi.
Periksa juga apakah data partisi yang dihasilkan oleh node leluhur sesuai dengan yang diharapkan node saat ini. Dependensi yang dikonfigurasi dengan benar tidak menjamin penyelarasan partisi.
Halaman Auto Triggered Nodes menampilkan status node terbaru di produksi. Apakah instans ditambahkan atau dihapus bergantung pada Instance Generation Mode. Untuk detailnya, lihat bagian Instance generation mode.
Jika prosedur penerapan diblokir oleh persetujuan kontrol proses, buka halaman Cycle Task di Operation Center untuk memeriksa konfigurasi dependensi dan status penerapan. Lihat Deploy nodes.
Konfigurasi dependensi kustom
Gunakan dependensi kustom saat tidak terdapat alur data kuat antar node, atau saat data hulu tidak dihasilkan oleh node auto triggered.
Aturan: DataWorks hanya dapat melacak tabel yang dihasilkan oleh node auto triggered-nya sendiri. Tabel apa pun yang dihasilkan di luar mekanisme ini—terlepas dari frekuensi pembaruannya—tidak dapat berpartisipasi dalam pemeriksaan dependensi penjadwalan.
Contoh umum tabel yang berada di luar penjadwalan DataWorks:
-
Tabel yang dihasilkan oleh node sinkronisasi real-time
-
Tabel yang diunggah dari mesin on-premises
-
Tabel dimensi
-
Tabel yang dihasilkan oleh node yang dipicu secara manual
-
Tabel yang diperbarui secara berkala oleh sistem eksternal, bukan oleh node auto triggered di DataWorks
Untuk kasus-kasus ini, gunakan salah satu opsi berikut:
Tentukan node root ruang kerja sebagai leluhur
Gunakan ini saat node sinkronisasi data bergantung pada database bisnis lain, atau node SQL memproses data dari node sinkronisasi real-time. Menetapkan node root sebagai leluhur memungkinkan node turunan berjalan pada waktu terjadwalnya tanpa menunggu pemeriksaan kesiapan data hulu.
Tentukan node beban nol sebagai leluhur
Gunakan node beban nol saat alur kerja memiliki banyak node atau hubungan kompleks. Node beban nol berfungsi sebagai titik koordinasi—Anda dapat menggunakannya untuk menetapkan waktu penjadwalan, membekukan node secara batch, atau memusatkan manajemen dependensi. Hal ini mempermudah pelacakan jalur penerusan data di ruang kerja.
Catatan penggunaan
Keunikan node
Sebuah node dapat memiliki konfigurasi dependensi berbeda di lingkungan pengembangan dan produksi, tetapi node itu sendiri harus unik di kedua lingkungan tersebut. Sebelum melakukan undeploy node:
-
Hapus semua node turunan dari lingkungan pengembangan maupun produksi.
-
Konfigurasi ulang node leluhur pengganti untuk turunan-turunan tersebut.
-
Komit dan terapkan semua perubahan.
Hal ini memastikan node turunan tetap mendapatkan data valid setelah undeploy.
Mode pembuatan instans
Tetapkan parameter Instance Generation Mode ke nilai yang sama untuk sebuah node dan semua node leluhurnya.
Jika node leluhur diatur ke Immediately After Deployment tetapi node turunan diatur ke Next Day, node turunan dapat menjadi isolated node.
Jika Anda mengubah frekuensi penjadwalan node yang sudah ada dan menetapkan Instance Generation Mode ke Immediately After Deployment, instans yang telah dihasilkan sebelumnya tidak dihapus secara otomatis. Hal ini dapat menciptakan status dependensi kompleks untuk instans yang dihasilkan pada hari ini. Lihat Dampak pada dependensi penjadwalan saat Instance Generation Mode diatur ke Immediately After Deployment.
Batas 200 hulu
Jika Anda mendapatkan error 'One file could not have more than 200 inputs' saat memanggil API untuk memperbarui pekerjaan, artinya node tersebut telah melebihi 200 dependensi hulu langsung.
Untuk mengatasinya, gunakan DataStudio untuk menyisipkan node beban nol di antara node leluhur dan turunan, sehingga mengurangi jumlah dependensi langsung pada node saat ini.