All Products
Search
Document Center

DataWorks:Konfigurasikan dependensi penjadwalan siklus yang sama

Last Updated:May 05, 2026

Dependensi siklus yang sama mengharuskan sebuah node menunggu instans leluhurnya dari siklus yang sama selesai dengan sukses sebelum dapat dijalankan. Gunakan dependensi ini ketika sebuah node mengonsumsi data yang dihasilkan oleh node leluhur pada hari yang sama. DataWorks menyediakan beberapa cara untuk mengonfigurasi dependensi ini, termasuk fitur pratinjau yang membantu Anda meninjau dan memperbaikinya agar tugas dijadwalkan sesuai harapan.

Cara kerja

Anda membuat dependensi penjadwalan dengan mencocokkan output node dengan input node. Hal ini menghubungkan output node leluhur ke input node turunan. Setelah Anda mengonfigurasi dependensi tersebut, node turunan hanya akan mulai berjalan setelah node leluhur berhasil dijalankan. Sebelum memulai, kami menyarankan Anda mengidentifikasi target dan jenis dependensi berdasarkan lineage tabel Anda. Untuk informasi lebih lanjut, lihat Panduan konfigurasi dependensi penjadwalan.

Output node

Output node, juga dikenal sebagai nama output node saat ini, mengidentifikasi node tersebut agar node lain dapat bergantung padanya. Output ini tidak merepresentasikan data aktual yang dihasilkan oleh node tersebut. Node lain menggunakan nama output ini untuk menentukannya sebagai dependensi leluhur.

DataWorks secara otomatis menghasilkan dua nama output untuk setiap node:

  • projectName.randomNumber_out: Output ini bersifat unik secara global dan tidak dapat dimodifikasi atau dihapus.

  • projectName.nodeName: Output ini mencakup nama node dan dapat dimodifikasi. Nama output ini tetap tidak berubah meskipun node tersebut diganti namanya.

DataWorks juga memungkinkan Anda menambahkan output secara manual atau melalui penguraian otomatis input dan output dari kode Anda. Dukungan untuk penguraian otomatis bervariasi tergantung jenis node. Untuk detailnya, lihat Perbandingan hasil penguraian otomatis.

Input node

Input node menentukan node leluhur yang menjadi dependensi node saat ini. Anda dapat menentukan dependensi dengan menggunakan nama output leluhur (disarankan), nama node, atau ID node.

ID node hanya dihasilkan setelah node leluhur dikomit ke lingkungan produksi.

Pedoman konfigurasi

Untuk meningkatkan efisiensi pengembangan, kami menyarankan menggunakan fitur penguraian otomatis guna mengonfigurasi dependensi node secara cepat. Saat menggunakan penguraian otomatis, ikuti pedoman berikut:

  • Pembuatan node: Kami menyarankan memberi nama setiap node sesuai dengan tabel output-nya.

  • Pengembangan kode: Hindari memiliki beberapa node yang menulis data ke tabel yang sama.

  • Konfigurasi dependensi: Kami menyarankan menetapkan tabel yang dihasilkan oleh sebuah node sebagai output node tersebut.

Titik masuk dan metode

Buka halaman edit node DataStudio, klik Scheduling configuration di panel navigasi sisi kanan, lalu konfigurasikan dependensi penjadwalan untuk node tersebut di bagian Scheduling Dependency.

  • Parent Nodes: Menentukan node leluhur yang menjadi dependensi tugas saat ini.

  • Output Name of Current Node: Menentukan output mana dari node ini yang dapat digunakan oleh tugas lain untuk membuat dependensi.

Catatan
  • Saat Anda mengedit kode, DataWorks secara default menetapkan dependensi berdasarkan lineage tabel. Saat Anda mengomit node tersebut, DataWorks secara otomatis memeriksa apakah dependensi konsisten dengan alur data. Anda dapat memilih apakah akan mengaktifkan penguraian otomatis sebelum mengomit. Untuk informasi lebih lanjut, lihat Konfigurasikan pengaturan penjadwalan.

  • Jika node Anda perlu bergantung pada data dari eksekusi leluhur pada hari sebelumnya, atau jika node per jam/per menit bergantung pada instansnya sendiri dari siklus sebelumnya, Anda harus mengonfigurasi dependensi lintas siklus.

  • Untuk skenario kompleks di mana node dan leluhurnya memiliki frekuensi penjadwalan berbeda, seperti tugas harian yang bergantung pada tugas per jam, lihat Wajib baca: Prinsip dan contoh konfigurasi penjadwalan untuk skenario dependensi kompleks.

Anda dapat menggunakan salah satu dari tiga metode berikut untuk mengonfigurasi dependensi. Prinsip dasarnya sama untuk semua metode.

Uraikan dependensi dari kode

Penguraian otomatis menganalisis lineage tabel dalam kode Anda untuk menetapkan output node dan dependensi leluhurnya. Setelah penguraian, tabel yang ditulis oleh node Anda secara otomatis ditambahkan sebagai output node dalam format projectname.tablename. DataWorks secara otomatis menambahkan tabel yang dibaca oleh node Anda sebagai input node.

Sebagai contoh, tabel dalam pernyataan SELECT diuraikan sebagai dependensi leluhur untuk node saat ini. Tabel dalam pernyataan INSERT diuraikan sebagai output dari node saat ini. Untuk daftar kata kunci yang didukung oleh penguraian otomatis untuk berbagai jenis node, lihat Skenario penguraian otomatis pada berbagai jenis node.
  • Konfigurasikan dependensi

    Penguraian otomatis mendukung dua metode: secara manual parsing inputs and outputs from code dan Automatic Parsing Before Committing. Kedua metode ini didasarkan pada prinsip yang sama. Penguraian otomatis sebelum commit secara otomatis mengurai input dan output saat Anda melakukan commit kode dan meminta Anda untuk memasang dependensi.

    Sebagai contoh, asumsikan node ODPS bernama mc2 perlu bergantung pada tabel output dws_user_info_all_di dari node mc1. Kode untuk mc2 adalah sebagai berikut:

    INSERT OVERWRITE TABLE ads_user_info_1d PARTITION (dt='${workflow.var}')
    SELECT uid
      , MAX(region)
      , MAX(device)
      , COUNT(0) AS pv
      , MAX(gender)
      , MAX(age_range)
      , MAX(zodiac)
    FROM dws_user_info_all_di
    WHERE dt = '${workflow.var}'
    GROUP BY uid;

    Mengklik Parse Input and Output from Code mengurai input untuk node saat ini sebagai tabel dws_user_info_all_di dan secara otomatis mencocokkan nama tabel output dengan nama node leluhur.

    Ancestor output name

    Ancestor output table

    Ancestor name

    Node ID

    Workspace

    Owner

    Scheduling cycle

    Method

    Last run status

    Actions

    yunwan_lingyi.dws_user_info_all_di

    yunwan_lingyi.dws_user_info_all_di

    mc1

    -

    Test Workspace

    lingyi01_testcloud_com

    Daily

    Automatic parsing

    No data available

    Delete

    Pada saat yang sama, DataWorks mengidentifikasi tabel ads_user_info_1d sebagai output node tersebut. Hasil penguraiannya adalah sebagai berikut:

    Output name

    Output table

    Descendant name

    Owner

    Method

    Affected baseline

    Actions

    old_ide.505487297_out

    -

    -

    -

    System default

    -

    Delete

    old_ide.mc2

    -

    -

    -

    Manually added

    -

    Delete

    yunwan_lingyi.ads_user_info_1d

    yunwan_lingyi.ads_user_info_1d

    -

    -

    Automatic parsing

    -

    Delete

    Dependensi node mc2 terhadap node mc1 kini telah dikonfigurasi.

  • Modifikasi dependensi yang dibuat oleh penguraian otomatis

    Jika penguraian otomatis membuat dependensi yang salah, atau jika Anda perlu menghapus dependensi untuk skenario yang tidak didukung (seperti tabel yang tidak dihasilkan oleh tugas periodik), Anda dapat memodifikasi hasilnya.

    Actions

    Description

    Manually remove a parsed result

    Dalam daftar node leluhur, hapus input yang salah dan uraikan ulang kode tersebut. DataWorks secara otomatis menambahkan komentar ke kode Anda untuk mencegah input atau output tersebut ditambahkan kembali saat penguraian berikutnya:

    --@exclude_input=projectname.tablename
    --@exclude_output=projectname.tablename

    Manually add an input or output

    Di editor kode, klik kanan nama tabel dan pilih untuk menambahkannya sebagai input atau output. DataWorks secara otomatis menambahkan komentar yang sesuai ke kode Anda:

    --@extra_output=projectname.tablename
    --@extra_input=projectname.tablename

    Atau, Anda dapat menambahkan dependensi node leluhur secara manual di UI konfigurasi penjadwalan atau mengonfigurasi dependensi node dengan menggambar garis pada kanvas alur kerja.

    Penting

    Anda tidak dapat langsung menghapus output node yang menjadi dependensi bagi node turunan. Melakukannya akan menyebabkan node turunan gagal saat eksekusi atau pengambilan data. Kami menyarankan Anda terlebih dahulu memodifikasi logika bisnis node turunan untuk menghapus dependensi tersebut, lalu menghapus output dari node leluhur.

  • Skenario yang dikecualikan dari penguraian otomatis

    DataWorks tidak mengurai tabel temporary sebagai output node atau dependensi leluhur. Tabel temporary didefinisikan dengan format tertentu di Workspace Table Management, seperti tabel dengan nama yang diawali dengan t_.

  • Catatan penggunaan untuk penguraian otomatis

    Saat menggunakan penguraian otomatis untuk menetapkan dependensi, pastikan setiap output node bersifat unik dalam Wilayah saat ini. Pertimbangkan hal berikut saat mengembangkan di DataWorks:

    • Pembuatan node: Secara default, setiap node memiliki output dengan nama yang sama seperti node tersebut. Jika Anda memiliki dua node dengan nama yang sama dalam ruang kerja yang sama, Anda harus mengubah secara manual output node salah satunya.

    • Pengembangan kode: Penguraian otomatis menggunakan tabel output node sebagai output node. Jika dua node terjadwal dalam ruang kerja yang sama menulis data ke tabel yang sama, penguraian otomatis akan menyebabkan salah satu node melaporkan error. Untuk informasi lebih lanjut, lihat Penguraian otomatis melaporkan error karena beberapa node menulis data ke tabel yang sama dan memiliki nama output yang sama.

    • Jika Anda menggunakan node SQL untuk memproses output dari node sinkronisasi Batch, Anda dapat menggunakan penguraian otomatis untuk membuat dependensi tersebut. Untuk melakukannya, Anda harus terlebih dahulu mengonfigurasi output dengan menambahkan secara manual tabel output node tersebut atau memberi nama node sesuai dengan tabel output-nya. Jika tidak, node SQL downstream mungkin gagal dikomit dan melaporkan error berikut: Output dari node leluhur yang menjadi dependensi node saat ini, ${projectname.tablename}, tidak ada. Anda tidak dapat mengomit node saat ini. Pastikan node leluhur dengan output ini telah dikomit.

Tambahkan dependensi secara manual

Pada halaman konfigurasi Scheduling Configuration > Scheduling Dependency > Parent Nodes, Anda dapat menambahkan node leluhur secara manual dengan memasukkan output node, nama node, atau ID node-nya. Kami menyarankan menggunakan output node untuk membuat dependensi karena nama node dapat diduplikasi.

Gambar dependensi di kanvas

Di panel grafik asiklik terarah (DAG) sebuah alur kerja, Anda dapat menggambar garis dari node leluhur ke node turunan untuk membuat dependensi. DataWorks secara otomatis menambahkan output node leluhur, diformat dengan akhiran _out, sebagai input untuk node turunan.

Catatan

Jika Anda menghapus garis koneksi dari kanvas alur kerja, dependensi penjadwalan yang sesuai juga akan dihapus dari konfigurasi node tersebut.

Dampak perubahan output node

Mengubah output node, baik dengan memodifikasi data yang dihasilkannya maupun dengan mengedit namanya, memiliki efek berikut:

  • Menghapus output node tidak secara langsung memengaruhi data tabel yang dihasilkan oleh node tersebut.

  • Jika output node merupakan dependensi bagi node turunan, mengubah atau menghapusnya dapat menyebabkan masalah serius bagi tugas downstream.

    • Mengubah tabel output: Jika tabel output node diubah sehingga menyebabkan output node yang diuraikan berubah, node turunan dapat menjadi node terisolasi yang tidak dijadwalkan. Hal ini juga dapat menyebabkan korupsi data pada tugas downstream akibat dependensi data yang hilang.

    • Memindahkan tabel output: Jika Anda perlu memindahkan tabel output node ke node lain, lihat Dampak penghapusan atau perubahan output node untuk instruksinya.

    Jika output node memiliki dependensi turunan, komunikasikan terlebih dahulu dengan pemilik tugas downstream sebelum menghapus output tersebut. Memberi tahu mereka tentang perubahan tersebut memungkinkan mereka menyesuaikan konfigurasi dan mencegah tugas mereka menjadi terisolasi.

Verifikasi dependensi

Setelah mengonfigurasi dependensi, verifikasi dependensi tersebut untuk memastikan tugas dijadwalkan sesuai harapan:

  • Pratinjau dependensi: Ini membantu Anda menghindari keterlambatan penjadwalan akibat konfigurasi dependensi yang salah.

  • Periksa saat commit: Saat melakukan commit node, pastikan perubahan dependensi sesuai dengan harapan Anda.

  • Konfirmasi dependensi tugas periodik: Setelah node dideploy, buka Pusat Operasi untuk memastikan dependensi untuk tugas produksi sudah benar. Tugas periodik merepresentasikan status node yang telah dikomit di lingkungan produksi. Dependensi antar instans periodiknya bergantung pada cara instans tersebut dihasilkan.

Untuk informasi lebih lanjut, lihat Konfirmasi dependensi penjadwalan.

FAQ

Untuk pertanyaan umum lainnya, lihat Dependensi penjadwalan.

Praktik terbaik

Untuk mengonfigurasi dependensi lintas ruang kerja atau alur kerja, lihat Skenario 3: Bagaimana cara mengonfigurasi dependensi penjadwalan untuk node di alur kerja atau ruang kerja yang berbeda?.