All Products
Search
Document Center

DataWorks:Konfigurasi dependensi siklus yang sama

Last Updated:Jul 17, 2026

Dependensi siklus yang sama berarti node saat ini menunggu instans node hulu di siklus saat ini berhasil berjalan sebelum menjalankan dirinya sendiri. Konfigurasi ini berlaku untuk skenario di mana node saat ini mengonsumsi data yang dihasilkan oleh node hulu dalam siklus yang sama (misalnya, hari yang sama). DataWorks menyediakan beberapa cara untuk mengonfigurasi dependensi siklus yang sama dan mendukung fitur pratinjau dependensi, sehingga Anda dapat meninjau serta menyesuaikan dependensi yang salah secara tepat waktu guna memastikan penjadwalan tugas berjalan sesuai harapan.

Prinsip konfigurasi

Dependensi penjadwalan dibentuk melalui hubungan pencocokan antara output node dan input node: ketika nama output node hulu ditentukan sebagai input node hilir, maka terbentuklah sebuah dependensi. Setelah dikonfigurasi, node hilir hanya akan mulai berjalan setelah node hulu berhasil berjalan. Sebelum melakukan konfigurasi, kami menyarankan Anda mengonfirmasi target dan jenis dependensi berdasarkan lineage tabel dari operasi baca-tulis node tersebut. Untuk informasi lebih lanjut, lihat Menentukan dependensi berdasarkan lineage tabel.

Output node

Output node adalah nama output dari node saat ini. Output ini berfungsi sebagai pengenal (medium) bagi node lain untuk membangun dependensi terhadap node ini, bukan data aktual yang dihasilkan oleh node tersebut. Node lain menemukan node ini melalui nama output-nya, sehingga menetapkan node ini sebagai dependensi hulu.

DataWorks secara otomatis menghasilkan dua nama output untuk setiap node:

  • ID acak: Unik secara global dan tidak dapat dimodifikasi atau dihapus.

  • projectName.nodeName: Output yang mencakup nama node dan dapat dimodifikasi. Nama output ini tidak diperbarui secara otomatis ketika nama node berubah.

Selain itu, DataWorks mendukung penambahan output secara manual atau menggunakan fitur Parse Inputs and Outputs from Code. Untuk informasi tentang dukungan penguraian kode pada berbagai jenis node, lihat Jenis node yang didukung untuk penguraian kode otomatis.

Input Node

Input node mengacu pada node hulu yang menjadi dependensi node saat ini, yang dapat ditentukan melalui nama output node hulu (disarankan), nama node, atau ID node.

ID node hanya dihasilkan setelah node hulu dideploy ke lingkungan produksi.

Pedoman konfigurasi

Untuk meningkatkan efisiensi pengembangan, kami menyarankan Anda menggunakan fitur penguraian kode otomatis guna mengatur dependensi node dengan cepat selama pengembangan. Saat menggunakan penguraian kode otomatis, ikuti pedoman berikut:

  • Pembuatan node: Gunakan nama yang sama untuk node dan tabel output-nya.

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

  • Konfigurasi dependensi: Konfigurasikan tabel output node sebagai output node tersebut.

Langkah 1: Akses entri konfigurasi

Buka halaman pengeditan node Pengembangan Data. Di panel navigasi sebelah kanan, klik Schedule Settings. Di bagian Scheduling Dependency, konfigurasikan dependensi node tersebut.

  • Parent Nodes: Tentukan tugas hulu mana yang menjadi dependensi tugas saat ini.

  • Output Name of Current Node: Tentukan output yang digunakan oleh tugas lain untuk membangun dependensi terhadap node ini.

Langkah 2: Tambahkan node dependensi

Catatan

  • Secara default, DataWorks menggunakan lineage tabel dari kode Anda untuk mengatur dependensi dan secara otomatis memeriksa apakah dependensi tersebut sesuai dengan alur data saat diajukan. Anda dapat memilih apakah akan mengaktifkan fitur penguraian otomatis sebelum pengajuan. Untuk informasi lebih lanjut, lihat Mengonfigurasi penguraian otomatis sebelum pengajuan.

  • Jika node saat ini perlu bergantung pada data yang dihasilkan oleh node hulu pada hari sebelumnya, atau jika tugas tingkat jam/menit bergantung pada instans siklus sebelumnya miliknya sendiri, Anda dapat menggunakan dependensi lintas siklus untuk konfigurasi cepat, atau menggunakan interval tertentu atau himpunan tertentu untuk konfigurasi yang lebih tepat dan fleksibel.

  • Jika frekuensi penjadwalan node saat ini berbeda dari node hulu—misalnya, tugas harian bergantung pada tugas per jam, atau bergantung pada tugas per jam dengan frekuensi berbeda—lihat Prinsip dan contoh konfigurasi penjadwalan untuk skenario dependensi kompleks.

Anda dapat mengonfigurasi dependensi dengan tiga cara berikut. Terlepas dari metode yang digunakan, prinsip dasarnya tetap sama.

1. Atur dependensi node dengan mengurai lineage tabel dari kode

Penguraian kode secara otomatis menetapkan nama output node dan dependensi hulu dengan menganalisis lineage tabel dalam kode node tersebut. Setelah penguraian, tabel yang ditulis oleh node secara otomatis ditambahkan sebagai output node dalam format projectname.tablename, sedangkan tabel yang di-query oleh node secara otomatis ditambahkan sebagai input node.

Sebagai contoh, ketika Anda melakukan SELECT pada suatu tabel, tabel tersebut secara otomatis diurai sebagai dependensi hulu dari node saat ini; ketika Anda melakukan INSERT ke dalam suatu tabel, tabel tersebut secara otomatis diurai sebagai output dari node saat ini. Untuk kata kunci yang didukung oleh penguraian otomatis pada setiap jenis node, lihat Kata kunci yang didukung oleh penguraian kode otomatis untuk setiap jenis node.
  • Mengonfigurasi dependensi

    Penguraian kode mendukung dua metode: mengklik secara manual tombol Parse Inputs and Outputs from Code dan fitur Automatic Parsing Before Committing. Kedua metode ini bekerja dengan prinsip yang sama. Metode penguraian otomatis sebelum pengajuan akan secara otomatis mengurai input dan output saat Anda mengajukan kode dan memberi prompt untuk mengatur dependensi.

    Sebagai contoh, di ruang kerja yunwan_lingyi, terdapat node MaxCompute mc2 yang bergantung pada tabel output dws_user_info_all_di dari node MaxCompute mc1. Kode node 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;

    Setelah Anda mengklik Parse Inputs and Outputs from Code, sistem mengurai input node saat ini sebagai tabel dws_user_info_all_di dan secara otomatis mencocokkan nama tabel output node hulu serta nama node hulu:

    Upstream node output name

    Upstream node output table name

    Upstream node name

    Node ID

    Workspace

    Owner

    Scheduling cycle

    Method

    Recent run status

    Action

    yunwan_lingyi.dws_user_info_all_di

    yunwan_lingyi.dws_user_info_all_di

    mc1

    -

    Test Workspace

    lingyi01_testcloud_com

    Day

    Code parsing

    No data

    Delete

    Sistem juga mengurai output node ini sebagai tabel ads_user_info_1d. Hasil penguraiannya adalah sebagai berikut:

    Output name

    Output table name

    Downstream node name

    Owner

    Method

    Baseline affected by downstream node

    Action

    ide.505487297_out

    -

    -

    -

    Added by system by default

    -

    Delete

    ide.mc2

    -

    -

    -

    Manually added

    -

    Delete

    yunwan_lingyi.ads_user_info_1d

    yunwan_lingyi.ads_user_info_1d

    -

    -

    Code parsing

    -

    Delete

    Pada titik ini, node mc2 telah menyelesaikan konfigurasi dependensi dengan node mc1.

  • Memodifikasi dependensi hasil penguraian kode

    Jika dependensi hasil penguraian kode tidak sesuai harapan, atau terdapat skenario yang tidak mendukung dependensi penjadwalan (tabel dengan produksi data non-periodik) yang mengharuskan Anda menghapus dependensi secara manual, Anda dapat merujuk pada konten berikut untuk memodifikasi dependensi yang diurai secara otomatis.

    Operation

    Description

    Manually delete parsing results

    Di daftar dependensi node hulu, hapus input yang tidak diinginkan, lakukan operasi penghapusan, lalu lakukan penguraian ulang. Setelah dihapus, komentar yang sesuai akan secara otomatis ditambahkan ke dalam kode untuk mencegah dependensi tersebut ditambahkan kembali saat penguraian berikutnya:

    --@exclude_input=Remove input
    --@exclude_output=Remove output

    Manually add inputs and outputs

    Di editor kode, klik kanan nama tabel dan pilih Add Input atau Add Output. Setelah penambahan, komentar yang sesuai akan secara otomatis ditambahkan ke dalam kode.

    --@extra_output=Add output
    --@extra_input=Add input

    Atau, Anda dapat menambahkan dependensi dengan merujuk pada menambahkan dependensi node hulu secara manual melalui panel konfigurasi penjadwalan atau mengatur dependensi node dengan menggambar garis di panel alur kerja.

    Penting

    DataWorks tidak mengizinkan Anda menghapus langsung output node yang memiliki dependensi hilir. Melakukannya akan menyebabkan kegagalan eksekusi tugas hilir atau pengambilan data. Kami menyarankan Anda terlebih dahulu menyesuaikan tugas hilir dengan menghapus dependensi hulu dari node hilir, lalu menghapus output node dari node hulu.

  • Skema yang dikecualikan dari penguraian otomatis

    Tabel sementara di DataWorks (tabel dalam format tetap yang didefinisikan di manajemen tabel ruang kerja, seperti tabel yang namanya diawali dengan t_) tidak diurai secara otomatis sebagai output node saat ini atau dependensi node hulu.

  • Catatan penggunaan penguraian otomatis

    Saat menggunakan penguraian otomatis untuk mengatur dependensi, pastikan bahwa output node bersifat unik dalam wilayah saat ini. Saat menggunakan penguraian otomatis dalam skenario pengembangan DataWorks, perhatikan hal-hal berikut:

    • Pembuatan node: Setiap node memiliki output node default dengan nama yang sama seperti node tersebut. Jika terdapat node dengan nama yang sama dalam ruang kerja yang sama, Anda harus memodifikasi secara manual output node salah satu node tersebut.

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

    • Konfigurasi dependensi: Jika Anda menggunakan tugas SQL untuk memproses tabel output dari tugas sinkronisasi batch, agar tugas SQL dapat dengan cepat bergantung pada tugas sinkronisasi batch melalui penguraian otomatis berbasis lineage, Anda harus mengonfigurasi secara manual tabel output node sinkronisasi batch sebagai output node, atau menggunakan nama tabel output tugas sinkronisasi batch sebagai nama node tugas sinkronisasi batch tersebut (platform secara otomatis membuat output node dengan nama yang sama seperti node). Jika tidak, saat node SQL hilir diajukan, error berikut mungkin terjadi: Nama output node hulu ${projectname.tablename} yang menjadi dependensi node saat ini tidak ada. Node saat ini tidak dapat diajukan. Pastikan node hulu dengan nama output ini telah diajukan.

2. Menambahkan dependensi node hulu secara manual melalui panel konfigurasi penjadwalan

Di panel konfigurasi Scheduling Settings -> Scheduling Dependency -> Same cycle dependence, tambahkan secara manual dependensi node hulu dengan memasukkan output node, nama node, atau ID node. Karena nama node dapat diduplikasi, kami menyarankan Anda menggunakan output node untuk membangun dependensi.

3. Mengatur dependensi node dengan menggambar garis di panel alur kerja

Saat Anda mengatur dependensi dengan menggambar garis di panel DAG suatu alur kerja, DataWorks secara otomatis menambahkan output dalam format _out dari node hulu ke node hilir untuk membangun dependensi node tersebut.

Catatan

Saat garis dependensi dihapus dari panel alur kerja, dependensi yang sesuai juga akan dihapus dari konfigurasi penjadwalan node.

Langkah 3: Atur jenis dependensi

Setelah dependensi dasar hulu-hilir ditetapkan, Anda juga perlu menentukan cara dependensi tersebut dipasang—yaitu, bagaimana instans hilir secara spesifik bergantung pada instans hulu. DataWorks menyediakan tiga metode pemasangan dependensi siklus yang sama, dari yang paling sederhana hingga lanjutan.

Di daftar Scheduling Settings -> Scheduling Dependency -> Same cycle dependence, pilih Dependency Type untuk setiap item dependensi hulu.

1. Dependensi terdekat (dependensi siklus yang sama standar)

  • Makna: Ini adalah metode dependensi siklus yang sama paling umum dan mendasar. Metode ini mengikuti prinsip "pemasangan terdekat", di mana instans hilir secara otomatis mengaitkan dan menunggu instans terbaru yang dihasilkan dalam siklus bisnis yang sama dari node hulu, tanpa konfigurasi tambahan (terdapat beberapa pengecualian; untuk detailnya, lihat Prinsip dan contoh konfigurasi penjadwalan untuk skenario dependensi kompleks).

  • Skenario Penerapan:

    • Alur kerja ETL harian, mingguan, atau bulanan standar.

    • Hubungan dependensi satu-ke-satu antara tugas hulu dan hilir, misalnya satu tugas harian bergantung pada tugas harian lainnya.

2. Rentang tertentu (bergantung pada jendela waktu kontinu)

Ketika dependensi satu-ke-satu sederhana tidak memenuhi kebutuhan Anda—misalnya, saat tugas hilir perlu mengagregasi data dari tugas hulu dalam periode waktu—Anda dapat menggunakan Rentang Tertentu untuk konfigurasi yang lebih fleksibel.

Catatan

Fitur ini mengharuskan Anda terlebih dahulu mengaktifkan toggle Advanced Scheduling Dependency Configuration di pengaturan penjadwalan node.

  • Metode konfigurasi:

    1. Setelah memilih node dependensi, klik Configure di kolom Actions dan atur jenis dependensi menjadi Rentang Tertentu.

    2. Tentukan offset kiri dan kanan relatif terhadap waktu penjadwalan node saat ini. Rentang offset maksimum yang diizinkan adalah -1440 hingga 1440, dalam satuan menit.

  • Deskripsi: Fitur ini memungkinkan tugas hilir bergantung pada semua instans hulu dalam rentang waktu kontinu. Rentang tersebut merupakan "jendela geser" yang dihitung secara dinamis relatif terhadap waktu eksekusi terjadwal tugas hilir itu sendiri, dan hanya instans dari hari saat ini serta hari sebelumnya dalam rentang yang ditentukan yang diizinkan.

  • Contoh logika inti:
    Tugas hilir per jam bergantung pada tugas hulu per jam lainnya, dengan rentang dikonfigurasi sebagai [-2h, +2h].

    • Saat instans hilir pukul 12:00 berjalan, ia bergantung pada semua instans hulu dari pukul 10:00 hingga 14:00.

    • Saat instans hilir pukul 13:00 berjalan, jendela dependensi secara otomatis "bergeser" ke pukul 11:00 hingga 15:00.

  • Skema penerapan:

    • Agregasi data lintas zona waktu: Tugas harian di Tiongkok (UTC+8) perlu mengagregasi data dari semua 24 tugas per jam di India (UTC+5:30). Anda dapat mengonfigurasi rentang sebagai [-3h, 21h] untuk secara tepat mencakup jendela waktu fisik yang sesuai dengan hari bisnis lokal India.

    • Agregasi jendela lintas hari: Tugas harian yang berjalan pagi hari perlu memproses data dari sore hari sebelumnya hingga dini hari saat ini. Misalnya, Anda dapat mengonfigurasi rentang sebagai [-12h, 4h] untuk bergantung pada instans per jam hulu dari pukul 12:00 kemarin hingga pukul 04:00 hari ini.

3. Himpunan tertentu (bergantung pada kelompok instans diskrit tetap)

Ketika logika dependensi Anda terkait dengan instans output diskrit spesifik dari hulu, "himpunan tertentu" adalah pilihan terbaik.

Catatan

Untuk menggunakan fitur ini, aktifkan terlebih dahulu toggle Advanced Scheduling Dependency Configuration di pengaturan penjadwalan node.

  • Metode konfigurasi:

    1. Setelah memilih node dependensi, klik Configure di kolom Actions dan atur jenis dependensi menjadi Himpunan Tertentu.

    2. Tentukan offset kiri dan kanan relatif terhadap waktu penjadwalan node saat ini. Rentang offset maksimum yang diizinkan adalah -1440 hingga 1440, dalam satuan menit.

  • Deskripsi: Fitur ini memungkinkan tugas hilir bergantung pada himpunan instans hulu diskrit tetap. Berbeda dengan jendela geser pada "rentang tertentu", himpunan instans ini bersifat statis dan identik untuk semua instans hilir.

  • Contoh logika inti:
    Tugas hilir dikonfigurasi untuk bergantung pada instans hulu pada {02:00, 06:00, 10:00}. Baik instans hilir pukul 08:00 maupun instans pukul 12:00, keduanya menunggu hingga ketiga instans spesifik tersebut berhasil selesai sebelum menjalankan dirinya sendiri.

  • Skenario yang berlaku:

    Bergantung pada tonggak penting: Kondisi awal tugas hilir adalah data pada beberapa titik waktu kunci sepanjang hari (seperti snapshot pagi, siang, dan malam) dari hulu telah siap.

Dampak penghapusan atau perubahan output node

Saat perubahan pada data tabel output node menyebabkan perubahan pada output node, atau saat Anda memodifikasi output node secara manual, perhatikan hal-hal berikut:

  • Menghapus output node tidak berdampak langsung pada data tabel yang dihasilkan oleh node tersebut.

  • Jika output node sudah memiliki dependensi hilir, mengubah atau menghapusnya dapat berdampak serius pada tugas hilir.

    • Penghapusan tabel output: Saat output node yang diurai secara otomatis berubah karena perubahan tabel output, tugas hilir mungkin menjadi node yatim yang tidak dijadwalkan, atau data hilir mungkin tercemar akibat dependensi data yang hilang.

    • Perubahan tabel output: Jika tabel yang dihasilkan oleh node saat ini perlu dialihkan ke node lain, ikuti petunjuk di Mengalihkan output node ke node lain.

    Jika output node memiliki dependensi hilir, sebelum menghapus nama output tersebut, komunikasikan terlebih dahulu dengan pemilik tugas hilir, beri tahu mereka bahwa output spesifik dari tugas saat ini akan dihapus, dan minta mereka segera menyesuaikan dependensi tugas hilir guna mencegah tugas hilir menjadi node yatim.

Langkah selanjutnya: Verifikasi bahwa dependensi sesuai harapan

Setelah konfigurasi selesai, verifikasi bahwa konfigurasi tersebut benar untuk memastikan penjadwalan tugas berjalan sesuai harapan:

  • Pratinjau dependensi: Hindari keterlambatan penjadwalan akibat hubungan dependensi yang tidak diharapkan.

  • Pemeriksaan pengajuan: Konfirmasi bahwa perubahan dependensi sesuai harapan saat mengajukan node.

  • Konfirmasi dependensi node yang dipicu otomatis: Setelah node dideploy, konfirmasi di Pusat Operasi bahwa dependensi tugas penjadwalan produksi sesuai harapan. Node yang dipicu otomatis mencerminkan status terbaru tugas di lingkungan produksi, dan hubungan dependensi instans terkait dengan cara instans dihasilkan.

Untuk informasi lebih lanjut, lihat Mengonfirmasi dependensi penjadwalan.

FAQ

  • T: Setelah dependensi dikonfigurasi menggunakan metode rentang tertentu atau himpunan tertentu, jika waktu penjadwalan node hulu diubah dan tidak ada instans yang dapat dijadikan dependensi oleh node hilir, apa yang terjadi saat node hilir mencapai waktu eksekusinya?

    J: Saat instans node hilir mencapai waktu eksekusinya, node tersebut tidak berjalan karena instans hulu tidak ada. Statusnya di Pusat Operasi adalah Not Run.

  • T: Jika node saat ini dikonfigurasi dengan dependensi lintas siklus dan metode dependensi diatur ke node anak tingkat pertama atau node lain, dan node yang dipilih ternyata memiliki dependensi rentang tertentu atau himpunan tertentu terhadap node saat ini, apakah dependensi tersebut berlaku?

    J: Konfigurasi ini dapat membentuk dependensi melingkar, sehingga, meskipun dikonfigurasi, dependensi tersebut tidak berlaku.

  • T: Node A dan Node B keduanya dijadwalkan harian. Dapatkah saya mengonfigurasi Node A untuk bergantung pada instans siklus yang sama Node B (hari ini), sementara Node B bergantung pada instans hari sebelumnya Node A melalui dependensi rentang tertentu?

    J: Tidak. Dependensi rentang tidak mendukung dependensi melingkar lintas hari.

Untuk pertanyaan umum lainnya, lihat Dependensi penjadwalan.

Praktik terbaik

Untuk informasi tentang mengonfigurasi dependensi node lintas ruang kerja atau lintas alur kerja dalam ruang kerja yang sama, lihat Mengonfigurasi dependensi node lintas ruang kerja atau lintas alur kerja.