Sebelum mengonfigurasi scheduling dependencies untuk suatu node, pastikan lineage tabel yang dihasilkan oleh node tersebut. Lineage tabel menunjukkan partisi mana yang ditulis oleh node leluhur pada hari tertentu, sehingga Anda dapat memverifikasi bahwa partisi yang diharapkan oleh node turunan tersedia pada waktu proses.
Topik ini mencakup:
Cara mengonfirmasi lineage tabel ketika kedua node berada dalam ruang kerja yang sama atau berbeda
Masalah yang muncul akibat konfigurasi scheduling dependencies yang tidak tepat
Cara kerja scheduling dependencies
Scheduling dependencies DataWorks beroperasi pada dua sumbu berbeda. Memisahkan keduanya membantu menghindari kebingungan umum:
| Sumbu | Hubungan | Contoh |
|---|---|---|
| Struktur DAG | Hulu vs. hilir dalam satu siklus penjadwalan | Node A bergantung pada Node B |
| Siklus waktu | Siklus saat ini vs. siklus sebelumnya | Instans hari ini bergantung pada output kemarin |
Scheduling dependency mengkodekan hubungan struktur DAG. Cross-cycle scheduling dependency mengkodekan hubungan antar siklus waktu. Keduanya merupakan konfigurasi terpisah dan berdampak berbeda terhadap partisi data yang dibaca oleh suatu node.
Catatan penggunaan
Di DataWorks, partisi yang dibaca atau ditulis oleh suatu node ditentukan oleh parameter penjadwalan yang dikonfigurasi untuk node tersebut. Jika partisi yang ditulis oleh node leluhur tidak sesuai dengan partisi yang diharapkan oleh node turunan, Anda memiliki dua opsi berdasarkan kebutuhan bisnis:
Ubah konfigurasi parameter penjadwalan node turunan agar selaras dengan partisi output node leluhur.
Konfigurasikan cross-cycle scheduling dependencies untuk node turunan.
Cross-cycle scheduling dependencies: Jika instans Node A dalam siklus saat ini harus bergantung pada data partisi yang dihasilkan oleh Node B dalam siklus sebelumnya, konfigurasikan cross-cycle scheduling dependencies untuk Node A. Hal ini menyebabkan instans Node A dalam siklus saat ini bergantung pada instans Node B dalam siklus sebelumnya, bukan pada instans Node B dalam siklus yang sama.
Dalam skenario tabel partisi, pastikan partisi dalam tabel yang dihasilkan oleh suatu node sesuai dengan partisi yang diharapkan oleh node tersebut untuk dibaca.
Konfirmasi lineage tabel
Konfirmasi lineage ketika kedua node berada dalam ruang kerja yang sama
Node secara berkala menulis data ke partisi tertentu berdasarkan parameter penjadwalannya. Untuk detail tentang cara parameter penjadwalan diganti secara dinamis, lihat Parameter penjadwalan.
Jika Node A bergantung pada Node B dalam ruang kerja yang sama, periksa konfigurasi parameter penjadwalan Node B untuk menentukan partisi yang ditulisnya setiap hari:
Lingkungan pengembangan: Buka tab konfigurasi node leluhur (Node B). Tinjau konfigurasi parameter penjadwalan dan kode node untuk menentukan output partisi.
Lingkungan produksi: Konfirmasi output data tabel leluhur dan turunan di lingkungan produksi.
Bandingkan hasil substitusi parameter penjadwalan Node A dan B untuk memverifikasi bahwa partisi yang ditulis oleh Node B setiap hari sesuai dengan partisi yang diharapkan oleh Node A untuk dibaca.
Konfirmasi lineage ketika node berada dalam ruang kerja berbeda
Jika Node A bergantung pada Node B di ruang kerja berbeda, gunakan DataWorks Data Map (DataMap) untuk mengonfirmasi partisi data yang dihasilkan oleh Node B setiap hari.
Di DataMap, tinjau informasi output tabel Node B untuk mengonfirmasi Waktu data partisi harian—khususnya, apakah partisi yang ditulis setiap hari sesuai dengan tanggal hari sebelumnya atau tanggal hari ini.

Skenario kegagalan
Konfigurasi scheduling dependencies yang salah menghasilkan dua pola kegagalan berbeda.
Skema 1: Lineage ada tetapi dependency tidak dikonfigurasi
Jika Job_B membaca dari Tabel A dalam pernyataan SELECT-nya, tetapi Job_A—yang menghasilkan Tabel A—tidak dikonfigurasi sebagai node leluhur dari Job_B, maka Job_B mungkin mulai sebelum Tabel A tersedia. Dalam kasus ini, Job_B gagal dijalankan atau menghasilkan output yang tidak valid.
Meskipun waktu mulai terjadwal Job_A lebih awal daripada Job_B, jika Job_A tidak berhasil menghasilkan data sebelum pukul 02.00, terjadi error saat Job_B mengambil data. Job_A mungkin gagal menghasilkan data pada pukul 01.00 seperti yang diharapkan karena salah satu alasan berikut:
Node leluhur
Job_Agagal atau berjalan lambat.Job_Aatau salah satu node leluhurnya sedang menunggu sumber daya.Node leluhur
Job_Adibekukan pada hari tersebut.
Perbaikan: Konfigurasikan Job_A sebagai node leluhur dari Job_B sehingga Job_B hanya mulai setelah Job_A berhasil selesai.
Skema 2: Dependency dikonfigurasi tetapi partisi tidak sesuai
Jika scheduling dependencies dalam siklus yang sama telah dikonfigurasi tetapi partisi yang ditulis oleh node leluhur tidak sesuai dengan partisi yang diharapkan oleh node turunan, masalah kualitas data dapat terjadi atau node turunan mungkin mengembalikan error saat membaca dari tabel node leluhur.
Ketika node MaxCompute menggunakan fungsi max_pt, data partisi yang dihasilkan oleh node leluhur setiap hari harus valid.Perbaikan: Verifikasi keselarasan partisi antara node leluhur dan turunan sebagaimana dijelaskan dalam Konfirmasi lineage tabel. Jika partisi tidak selaras, sesuaikan konfigurasi parameter penjadwalan node turunan atau konfigurasikan cross-cycle scheduling dependencies.