Panduan ini menjelaskan cara mengonfigurasi properti waktu untuk node DataWorks di lingkungan produksi, mencakup pengaturan penjadwalan dasar dan logika lanjutan untuk skenario bisnis kompleks. Properti waktu menentukan Ketepatan waktu data keluaran dan secara langsung memengaruhi stabilitas serta determinisme alur kerja produksi Anda. Dengan mengonfigurasi masa aktif instans, waktu terjadwal, kebijakan eksekusi, dan toleransi kesalahan, Anda dapat membangun sistem penjadwalan otomatis yang fleksibel dan andal yang memisahkan logika bisnis dari alur komputasi.
Prinsip dasar konfigurasi waktu
Sistem penjadwalan DataWorks menggunakan dua jenis logika: dependency-driven dan time-constrained. Sebuah node hanya berjalan ketika kedua kondisi tersebut terpenuhi. Memahami pola-pola ini merupakan dasar penting dalam mengonfigurasi jadwal.
Untuk informasi lebih lanjut tentang dependensi penjadwalan, lihat Configure scheduling dependencies.
Pola 1: Eksekusi berbasis dependensi
Gunakan pola ini ketika tujuannya adalah menyelesaikan seluruh komputasi dalam alur kerja secepat mungkin. Semua node dalam alur kerja harus berjalan segera setelah data masukannya siap, sehingga seluruh rantai komputasi selesai dengan kecepatan maksimum.
Metode konfigurasi: Tetapkan waktu terjadwal tertentu, seperti
02:00, hanya untuk node pertama (atau node tanpa dependensi hulu) dalam alur kerja. Atur waktu terjadwal semua node turunan menjadi00:00.Logika eksekusi: Node turunan tetap dalam status menunggu hingga dependensi hulunya terpenuhi. Segera setelah node leluhur berhasil berjalan, node turunannya langsung dipicu.
Contoh konfigurasi dan waktu proses:
Node
Konfigurasi Waktu Terjadwal
Perkiraan Waktu Proses
Logika Pemicu
A (Node awal)
02:0002:00Berjalan saat waktu terjadwalnya tiba.
B (hilir)
00:00~02:10(Setelah A selesai)Node B langsung dipicu setelah dependensinya, Node A, berhasil berjalan.
C (hilir)
00:00~02:18(Setelah B selesai)Node C langsung dipicu setelah dependensinya, Node B, berhasil berjalan.
Pola 2: Eksekusi berbasis batasan waktu
Gunakan pola ini ketika sebuah node dalam alur kerja harus berjalan setelah titik waktu tertentu karena dependensi eksternal atau aturan bisnis. Misalnya, sebuah node harus memulai komputasinya setelah pukul 05:00 karena aturan bisnis eksternal atau jendela pemeliharaan sistem.
Metode konfigurasi: Tetapkan waktu terjadwal tertentu, seperti
05:00, untuk node yang dibatasi oleh waktu.Logika eksekusi: Node tersebut hanya berjalan setelah kedua kondisi terpenuhi: dependensi hulunya telah selesai, dan waktu terjadwalnya sendiri telah tiba. Bahkan jika node leluhur A selesai pada
02:00, node B akan menunggu hingga waktu terjadwalnya, yaitu05:00, untuk mulai berjalan.Contoh konfigurasi dan waktu proses:
Node
Konfigurasi Penjadwalan
Instance Runtime
Logika Pemicu
A (Node awal)
02:0002:00Berjalan saat waktu terjadwalnya tiba.
B (Dibatasi waktu)
05:0005:00Dependensi hulu, Node A, telah terpenuhi. Node ini menunggu hingga waktu terjadwalnya tiba.
C (Dibatasi waktu)
08:0008:00Dependensi hulu, Node B, telah terpenuhi. Node ini menunggu hingga waktu terjadwalnya tiba.
Perencanaan konfigurasi waktu penjadwalan
Memastikan Penyelesaian Tepat Waktu untuk Tugas Kritis
Ketika data keluaran memiliki persyaratan waktu pengiriman yang ketat (misalnya, node E harus selesai sebelum 09:00 setiap hari), Anda perlu merencanakan waktu terjadwal untuk seluruh proses bisnis secara mundur dari titik akhir.
Solusi 1: Atur waktu secara manual | Solusi 2: Gunakan penyesuaian otomatis berbasis dependensi (Direkomendasikan) |
|
|
Solusi 2 menggabungkan perencanaan statis dengan kemampuan penjadwalan dinamis. Pendekatan ini menjamin waktu pengiriman dengan biaya pemeliharaan lebih rendah dan fleksibilitas operasional lebih tinggi. Solusi ini meminimalkan konfigurasi manual dengan hanya memfokuskan pada titik awal dan akhir. Sistem secara cerdas mengelola proses antara. Solusi ini sangat direkomendasikan. | |
Waktu default 00:00 pada gambar hanyalah contoh. Dalam praktiknya, waktu terjadwal default untuk node harian dihasilkan secara acak dalam rentang waktu 00:00 hingga 00:30.
Node | Waktu Terjadwal (Solusi 1) | Waktu Terjadwal (Solusi 2) | Waktu Proses Aktual |
A |
|
|
|
B |
|
|
|
C |
|
|
|
D |
|
|
|
E |
|
|
|
Menggunakan prioritas garis dasar untuk penggeseran beban puncak sumber daya
Metode berbasis dependensi mudah dikonfigurasi, tetapi dapat menyebabkan banyak node mulai secara bersamaan, misalnya pada tengah malam 00:00. Hal ini menyebabkan persaingan sumber daya komputasi dan antrian node. Dalam kasus ini, gunakan pengaturan prioritas dalam manajemen garis dasar untuk memberikan prioritas lebih tinggi kepada node inti kritis agar dapat berjalan terlebih dahulu.
Identifikasi prioritas node: Bedakan antara node inti, seperti ekstraksi data lapisan Operational Data Store (ODS), dan node non-inti, seperti beberapa laporan internal.
Tetapkan prioritas penjadwalan untuk pekerjaan: Anda dapat menetapkan baseline untuk memprioritaskan alokasi sumber daya inti.
Diagram perbandingan optimasi:
Dengan menggabungkan waktu terjadwal dan garis dasar, Anda dapat mencapai alokasi sumber daya penjadwalan yang wajar dan penjadwalan cerdas berbasis prioritas. Hal ini mengurangi biaya O&M dan kesalahan manusia yang terkait dengan pengaturan waktu terjadwal individual untuk setiap node.
Skenario | Deskripsi |
Sebelum optimasi: Konflik sumber daya | Menjadwalkan semua pekerjaan (inti A/B, laporan C/D) untuk berjalan pada |
Setelah optimasi: Eksekusi bertahap | Node inti A dan B mendapatkan sumber daya segera dan berjalan pada |
Praktik skenario kompleks
Mengonfigurasi dependensi lintas siklus
Ketika eksekusi sebuah node bergantung pada instans node leluhurnya dari siklus sebelumnya, Anda perlu mengonfigurasi dependensi lintas siklus. Contohnya adalah node ringkasan harian T+1 yang harus menunggu semua node per jam dari hari T selesai.
Skenario: Node ringkasan harian B dijadwalkan berjalan pada
02:00setiap hari. Sumber datanya adalah node per jam A. Node B hanya dapat berjalan setelah semua instans per jam node A dari hari sebelumnya (hari T), dari00:00hingga23:00, berhasil berjalan.Metode konfigurasi: Untuk mengonfigurasi scheduling dependencies untuk node B, tetapkan dependensinya pada node leluhur A sebagai cross-cycle dependency. Untuk informasi lebih lanjut, lihat Configure a dependency on the previous cycle (cross-cycle dependency).

Cara kerja: Setelah dikonfigurasi, instans node B untuk Waktu data
2025-12-02akan menunggu hingga semua instans node A untuk Waktu data2025-12-01berhasil berjalan sebelum dipicu.
Dalam skenario ini, jika node B tidak memiliki node leluhur lain, Anda dapat mengonfigurasi vertex root ruang kerja sebagai node leluhurnya.
Untuk informasi lebih lanjut tentang skenario dengan granularitas berbeda dan dependensi lintas siklus, lihat Principles and examples for configuring scheduling in complex dependency scenarios.
Menerapkan jadwal berulang kompleks
Untuk node dengan pola berulang khusus, seperti tugas triwulanan atau semesteran seperti node penutupan triwulanan, Anda dapat menggabungkan siklus penjadwalan dengan scheduling parameters.
Skenario: Node penutupan keuangan perlu berjalan pada hari penutupan terakhir setiap kuartal dan bergantung pada data dari seluruh kuartal sebelumnya.
Saat menetapkan hari penutupan, biasanya disediakan periode buffer untuk menangani item khusus akhir bulan seperti pesanan tambahan lintas bulan, pembatalan pengembalian dana, dan audit manual.
Metode konfigurasi:
Tetapkan siklus penjadwalan: Di properti waktu node, pilih jadwal tahunan, tentukan bulan sebagai
1, 4, 7, 10, dan pilihLast day of the monthuntuk tanggalnya. DataWorks secara otomatis menangani bulan dengan jumlah hari berbeda (30 atau 31) dan tahun kabisat.Gunakan parameter penjadwalan: Dalam kode Anda, gunakan parameter penjadwalan atau user-defined function untuk menghitung secara dinamis rentang tanggal data yang diperlukan. Misalnya, Anda dapat menentukan tanggal mulai dan akhir kuartal berdasarkan waktu data saat ini. Untuk informasi lebih lanjut, lihat Supported formats of scheduling parameters.
Logika eksekusi: DataWorks secara otomatis mengidentifikasi apakah tanggal 30 atau 31 (atau bahkan 29 Februari pada tahun kabisat) merupakan "hari terakhir". Selama periode ini, instans pada hari-hari lain dalam bulan tersebut secara otomatis melakukan dry-run. Hal ini memastikan kelangsungan dependensi logis sekaligus eksekusi tepat untuk perhitungan keuangan.
Menggunakan kalender penjadwalan untuk jadwal hari perdagangan
Waktu terjadwal (ekspresi cron) menentukan kapan sebuah node berjalan dalam siklus penjadwalannya, sedangkan kalender penjadwalan bertindak sebagai filter untuk tanggal eksekusi. Dengan menggabungkan keduanya, Anda dapat mengontrol secara tepat agar node hanya berjalan pada hari bisnis tertentu, seperti hari perdagangan atau hari promosi.
Skenario: Node penyelesaian sekuritas untuk perusahaan pialang harus berjalan pada pukul 22:00 setiap hari perdagangan (bukan hari libur). Jika hari terjadwal jatuh pada akhir pekan atau hari libur nasional, node tersebut harus secara otomatis berhenti berjalan untuk menghindari pembuatan instans tidak valid atau pemborosan sumber daya pada dry-run.
Solusi: Kalender penjadwalan + Waktu terjadwal
Buat kalender kustom: Di pusat sumber daya DataWorks, Anda dapat memelihara "Kalender Perdagangan" dengan menyinkronkan secara manual atau otomatis semua tanggal perdagangan untuk tahun tersebut. Untuk informasi lebih lanjut, lihat Configure a scheduling calendar.
Konfigurasi properti penjadwalan: Atur node untuk dipicu setiap hari pada
22:00dan pilih "Kalender Perdagangan" kustom.
Logika eksekusi:
Pada hari perdagangan: Sistem mendeteksi bahwa tanggal saat ini ada dalam kalender, dan node mulai tepat waktu pada pukul 22:00.
Pada hari non-perdagangan (seperti Tahun Baru Imlek): Sistem secara otomatis melewati pembuatan instans untuk node tersebut, atau instans yang dihasilkan melakukan dry-run tanpa mengonsumsi sumber daya komputasi aktual.
Kalender penjadwalan dapat dianggap sebagai filter untuk tanggal eksekusi. Dengan menggabungkannya dengan jadwal tingkat jam atau menit, Anda dapat mencapai penyaringan ganda untuk tanggal dan waktu.
Sebagai contoh, node per jam yang dikonfigurasi untuk berjalan setiap hari pada 08:00 dan 18:00, jika dikaitkan dengan kalender penjadwalan yang hanya mencakup Senin dan Jumat, pada akhirnya hanya akan berjalan pada waktu yang ditentukan tersebut pada hari Senin dan Jumat.
Praktik terbaik
1. Perencanaan dan konfigurasi penjadwalan statis
Tujuan: Memisahkan logika penjadwalan dari logika bisnis menggunakan strategi berlapis.
Strategi inti:
Alur kerja linier
Konfigurasikan waktu terjadwal hanya untuk node pertama, misalnya, atur waktu terjadwal node pertama menjadi
07:00. Node turunan secara otomatis dipicu melalui dependensi untuk memaksimalkan efisiensi eksekusi.Tugas berbasis waktu
Tetapkan waktu terjadwal yang tepat dan independen untuk node tertentu. Saat menetapkan waktu, hindari menjadwalkan node leluhur lebih lambat daripada node turunannya, karena hal ini akan mencegah node turunan berjalan tepat waktu.
Gunakan kalender penjadwalan dan tanggal efektif untuk mengontrol periode aktif node. Misalnya, Anda dapat mengontrol agar node hanya berjalan pada hari kerja antara 1 Januari 2026 dan 31 Desember 2026.
Parameter penjadwalan dinamis
Gabungkan dengan parameter penjadwalan seperti
${yyyymmdd}untuk mengganti parameter waktu secara dinamis.
2. Kontrol dinamis cerdas dengan garis dasar
Tujuan: Menjamin waktu pengiriman untuk node inti dan mengurangi biaya intervensi manual.
Prasyarat: Anda telah membuat baseline dan menetapkan prioritas node.
Mekanisme inti:
Waktu komitmen dan definisi prioritas:
Tentukan waktu penyelesaian yang dijanjikan untuk node inti, misalnya 09:00, dan kaitkan dengan garis dasar prioritas tinggi. Sistem secara otomatis mengidentifikasi jalur kritis berdasarkan prioritas dan memastikan node prioritas tinggi, seperti ekstraksi lapisan ODS, mendapatkan sumber daya komputasi terlebih dahulu.
"Penggeseran beban puncak" sumber daya otomatis:
Anda tidak perlu menetapkan waktu mulai bertahap secara manual untuk setiap node non-inti. Mesin penjadwalan secara otomatis mengantrikan node laporan non-inti untuk menghindari persaingan sumber daya pada waktu puncak, dengan memprioritaskan pasokan sumber daya untuk jalur kritis.
Prediksi dinamis dan peringatan real-time:
Berdasarkan waktu proses historis, sistem dapat memprediksi secara dinamis di pagi hari apakah alur kerja hari tersebut akan melewatkan waktu pengirimannya. Jika pada pukul 07:00 sistem memprediksi keterlambatan hingga 09:15, sistem segera memicu peringatan dan menyoroti node bottleneck pada jalur kritis. Hal ini mengubah pendekatan dari "pemulihan pasca-kejadian" menjadi "intervensi proaktif".
Praktik terbaik adalah menggabungkan waktu mulai terakhir—yang diperoleh dengan bekerja mundur dari node akhir—dengan garis dasar cerdas. Metode ini menetapkan titik awal melalui perencanaan statis, lalu menggunakan garis dasar untuk penjadwalan dinamis berbasis prioritas di seluruh alur kerja. Pendekatan ini mengurangi biaya pemeliharaan manual dan membangun sistem jaminan komprehensif dari perencanaan hingga prediksi, sehingga menjamin tingkat kepastian tinggi untuk data keluaran inti.