All Products
Search
Document Center

DataWorks:Konfigurasi properti waktu lanjutan

Last Updated:Jun 22, 2026

Panduan ini menjelaskan standar konfigurasi properti waktu tugas DataWorks di lingkungan produksi, mencakup pengaturan penjadwalan dasar hingga logika lanjutan untuk skenario bisnis kompleks. Properti waktu menentukan Ketepatan waktu output data dan secara langsung memengaruhi stabilitas serta determinisme pipeline produksi Anda. Dengan mengonfigurasi masa aktif instans, waktu terjadwal, kebijakan eksekusi, dan toleransi kesalahan secara cermat, Anda dapat membangun sistem penjadwalan otomatis yang fleksibel dan tangguh, sekaligus memisahkan logika bisnis dari alur komputasi.

Prinsip dasar konfigurasi waktu

Sistem penjadwalan DataWorks didasarkan pada dua prinsip: bersifat dependency-driven dan time-constrained. Waktu proses suatu node ditentukan ketika kedua kondisi tersebut terpenuhi. Memahami kedua mode ini merupakan dasar penting dalam mengonfigurasi jadwal.

Catatan

Untuk informasi lebih lanjut tentang konfigurasi dependensi penjadwalan, lihat Panduan konfigurasi dependensi penjadwalan.

Mode satu: Eksekusi berbasis dependensi

Gunakan mode ini ketika tujuan bisnis adalah menyelesaikan seluruh alur bisnis secepat mungkin. Dalam mode ini, semua node dalam alur berjalan segera setelah data masukannya siap. Pendekatan ini menyelesaikan komputasi lintas jalur penuh dalam waktu sesingkat mungkin.

  • Metode konfigurasi: Tetapkan waktu terjadwal tertentu, seperti 02:00, hanya untuk node pertama (atau beberapa node yang tidak memiliki dependensi hulu). Atur waktu terjadwal untuk semua node turunan menjadi 00:00.

  • Logika eksekusi: Node turunan tetap dalam keadaan menunggu karena dependensi hulunya belum terpenuhi. Segera setelah node leluhur berhasil berjalan, node turunannya langsung dipicu untuk berjalan.

  • Contoh konfigurasi dan eksekusi:

    Node

    Konfigurasi waktu terjadwal

    Waktu proses aktual (perkiraan)

    Logika pemicu

    A (Node pertama)

    02:00

    02:00

    Dipicu untuk berjalan pada waktu yang ditentukan.

    B (Hilir)

    00:00

    ~02:10 (setelah A selesai)

    Node A, sebagai dependensi, berhasil berjalan dan langsung memicu Node B.

    C (Hilir)

    00:00

    ~02:18 (setelah B selesai)

    Node B, sebagai dependensi, berhasil berjalan dan langsung memicu Node C.

Mode dua: Eksekusi berbasis batasan waktu

Gunakan mode ini ketika suatu node dalam alur harus berjalan setelah waktu tertentu karena dependensi eksternal atau aturan bisnis. Misalnya, suatu node dalam alur, seperti Node B, mungkin perlu memulai komputasinya setelah pukul 05:00 pagi karena aturan bisnis eksternal atau batasan jendela sistem.

  • Metode konfigurasi: Tetapkan waktu terjadwal tertentu, seperti 05:00, untuk node yang dibatasi waktu tersebut.

  • Logika eksekusi: Node tersebut harus memenuhi dua kondisi agar dapat berjalan: dependensi hulu telah terpenuhi dan waktu terjadwalnya sendiri telah tiba. Meskipun node leluhur A selesai pada 02:00, Node B akan menunggu hingga waktu terjadwalnya yaitu 05:00 untuk mulai berjalan.

  • Contoh konfigurasi dan eksekusi:

    Node

    Konfigurasi Penjadwalan

    Waktu Proses Instance

    Logika pemicu

    A (Node pertama)

    02:00

    02:00

    Dipicu untuk berjalan pada waktu yang ditentukan.

    B (Dibatasi waktu)

    05:00

    05:00

    Dependensi hulu A telah terpenuhi. Node menunggu hingga waktu terjadwalnya tiba.

    C (Dibatasi waktu)

    08:00

    08:00

    Dependensi hulu B telah terpenuhi. Node menunggu hingga waktu terjadwalnya tiba.

Perencanaan konfigurasi waktu penjadwalan

Menjamin penyelesaian tepat waktu tugas kritis

Ketika output data memiliki persyaratan waktu pengiriman yang ketat (misalnya, Node E harus selesai sebelum 09:00 setiap hari), Anda perlu merencanakan waktu terjadwal untuk seluruh alur bisnis dengan bekerja mundur dari titik akhir.

Solusi 1: Pengaturan waktu manual

Solusi 2: Penyesuaian cerdas menggunakan eksekusi berbasis dependensi (Direkomendasikan)

  1. Tentukan waktu pengiriman dan waktu buffer untuk node output akhir

    • Tujuan: Node E harus dikirimkan ke bisnis hilir sebelum 09:00.

    • Perkirakan waktu proses Node E sekitar 20 menit dan tambahkan waktu buffer 10 menit untuk menangani fluktuasi.

  2. Hitung dan tetapkan waktu terjadwal untuk node output akhir

    • Waktu mulai terakhir = Waktu pengiriman - (Perkiraan waktu proses + Waktu buffer).

    • Waktu terjadwal Node E = 09:00 - (20 menit + 10 menit) = 08:30.

  3. Hitung waktu terjadwal untuk setiap node leluhur secara bertahap

    Kerjakan mundur untuk menghitung dan menetapkan waktu mulai terakhir untuk semua node leluhur, seperti C, D, B, dan A.

  1. Tentukan Service Level Agreement (SLA) dan waktu buffer untuk node output akhir

    • Tujuan: Node E harus selesai sebelum 09:00.

    • Perkirakan waktu proses Node E sekitar 20 menit dan tambahkan waktu buffer 10 menit untuk menangani fluktuasi.

  2. Hitung dan tetapkan waktu terjadwal untuk node output akhir

    • Waktu mulai terakhir = Waktu SLA - (Perkiraan waktu proses + Waktu buffer).

    • Waktu terjadwal Node E = 09:00 - (20 menit + 10 menit) = 08:30.

  3. Hitung waktu terjadwal node awal

    Kerjakan mundur untuk menghitung dan menetapkan waktu terjadwal untuk node awal (Node A). Node turunan lainnya dapat diatur ke waktu default dan akan dipicu oleh dependensi penjadwalan.

Solusi 2 menggabungkan perencanaan statis dengan penjadwalan dinamis. Kombinasi ini menjamin waktu pengiriman dengan biaya pemeliharaan lebih rendah dan fleksibilitas operasional lebih tinggi. Solusi ini meminimalkan konfigurasi manual dengan hanya fokus pada titik awal dan akhir, sehingga memungkinkan sistem mengelola proses antara secara cerdas. Solusi ini sangat direkomendasikan.

Catatan

Waktu default 00:00 dalam diagram hanyalah contoh. Dalam praktiknya, waktu terjadwal default untuk tugas harian dihasilkan secara acak antara 00:00 dan 00:30.

Node

Waktu terjadwal (Solusi 1)

Waktu terjadwal (Solusi 2)

Waktu proses aktual

A

07:00

07:00

07:00:00

B

07:20

~00:00 (Pertahankan default, tidak perlu penyesuaian)

~07:20:00

C

07:45

~00:00 (Pertahankan default, tidak perlu penyesuaian)

~07:45:00

D

07:30

~00:00 (Pertahankan default, tidak perlu penyesuaian)

~07:30:00

E

08:30

~00:00 (Pertahankan default, tidak perlu penyesuaian)

~08:30:00

Menggunakan prioritas garis dasar untuk penggeseran beban puncak

Metode berbasis dependensi mudah dikonfigurasi. Namun, metode ini dapat menyebabkan banyak tugas dimulai secara bersamaan, misalnya pada 00:00. Hal ini menyebabkan persaingan sumber daya komputasi dan antrian tugas. Anda dapat menggunakan konfigurasi prioritas dalam manajemen garis dasar untuk memberikan prioritas lebih tinggi kepada tugas inti saat menjalankan.

  • Identifikasi prioritas tugas: Bedakan antara tugas inti, seperti ekstraksi data untuk lapisan Operational Data Store (ODS), dan tugas non-inti, seperti beberapa laporan internal.

  • Tetapkan prioritas penjadwalan untuk tugas: Gunakan garis dasar untuk meningkatkan prioritas tugas inti dalam memperoleh sumber daya.

  • Diagram perbandingan optimasi:

Dengan menggabungkan waktu terjadwal dan garis dasar, Anda dapat mencapai alokasi sumber daya penjadwalan yang wajar. Hal ini memungkinkan penjadwalan cerdas berbasis prioritas serta mengurangi biaya Operasi dan Pemeliharaan (O&M) dan kesalahan manusia yang terkait dengan pengaturan waktu terjadwal individual untuk setiap tugas.

Skenario

Deskripsi

Sebelum optimasi: Konflik sumber daya

Semua tugas (inti A/B, laporan C/D) menumpuk pada 00:00. Hal ini menyebabkan konkurensi tinggi, persaingan sumber daya intensif, dan antrian tugas yang meluas.

Setelah optimasi: Eksekusi bertahap

Tugas inti A/B, karena prioritasnya yang tinggi, mendapatkan sumber daya tepat waktu untuk berjalan pada 00:00.
Tugas laporan C/D menunggu hingga A/B selesai dan mulai berjalan pada 2:00. Hal ini menjamin eksekusi tugas yang stabil tanpa bersaing sumber daya dengan tugas penting.







Praktik skenario kompleks

Mengonfigurasi dependensi lintas siklus

Ketika eksekusi suatu tugas bergantung pada instans siklus sebelumnya dari tugas leluhurnya, Anda perlu mengonfigurasi dependensi lintas siklus. Misalnya, tugas ringkasan untuk hari T+1 perlu menunggu semua tugas per jam pada hari T selesai.

  • Skenario: Tugas ringkasan harian B perlu berjalan pada 02:00 setiap pagi. Sumber datanya adalah tugas per jam A. Tugas ini hanya boleh berjalan setelah semua instans per jam dari 00:00 hingga 23:00 hari sebelumnya (T) berhasil dijalankan.

  • Metode konfigurasi: Saat mengonfigurasi dependensi penjadwalan untuk Node B, atur dependensinya terhadap Node leluhur A sebagai dependensi lintas siklus. Untuk informasi lebih lanjut, lihat Konfigurasi dependensi pada siklus sebelumnya (dependensi lintas siklus).

    Atur Mode Dependensi ke Node Lain. Atur Lewati Properti Dry-run Tugas Hulu ke Tidak. Kemudian, tambahkan Node leluhur A ke daftar di bawah ini.

  • Hasil eksekusi: Setelah dikonfigurasi, instans Node B dengan Waktu data 2025-12-02 akan menunggu semua instans Node A dengan Waktu data 2025-12-01 berhasil dijalankan sebelum dipicu.

Catatan

Menerapkan jadwal berulang kompleks

Untuk tugas dengan pola periodik khusus, seperti tugas triwulanan atau semesteran untuk penutupan akun, Anda dapat menggunakan kombinasi siklus penjadwalan dan parameter penjadwalan.

  • Skenario: Tugas 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:

    1. Tetapkan siklus penjadwalan: Di properti waktu tugas, pilih "Tahun" untuk penjadwalan. Tentukan bulan sebagai 1, 4, 7, 10 dan pilih Hari terakhir bulan untuk tanggalnya. DataWorks secara otomatis menangani panjang bulan berbeda (30/31 hari) dan tahun kabisat.

    2. 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 memperoleh tanggal mulai dan akhir kuartal untuk timestamp data saat ini. Untuk informasi lebih lanjut, lihat Format yang didukung untuk parameter penjadwalan.

  • 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 bukan akhir bulan secara otomatis melakukan "dry-run". Hal ini menjamin kelangsungan logika dependensi sekaligus pemicuan presisi perhitungan keuangan.

Menggunakan kalender penjadwalan untuk jadwal hari perdagangan

Waktu terjadwal (ekspresi cron) menentukan kapan suatu tugas berjalan dalam siklus penjadwalannya. Kalender penjadwalan berfungsi sebagai filter untuk tanggal eksekusi. Menggabungkan fitur-fitur ini memungkinkan kontrol presisi untuk menjalankan tugas hanya pada tanggal bisnis tertentu, seperti hari perdagangan atau hari promosi.

  • Skenario: Tugas penyelesaian perdagangan perusahaan sekuritas harus berjalan pada pukul 22:00 pada setiap hari perdagangan (bukan hari libur). Jika hari tersebut adalah akhir pekan atau hari libur nasional, tugas 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, kelola "Kalender Perdagangan" dengan menyinkronkan secara manual atau otomatis semua tanggal perdagangan untuk tahun tersebut. Untuk informasi lebih lanjut, lihat Konfigurasi kalender penjadwalan.

    • Konfigurasi properti penjadwalan: Atur tugas untuk dipicu setiap hari pada 22:00 dan pilih "Kalender Perdagangan" kustom.

  • Logika eksekusi:

    • Hari perdagangan: Sistem mendeteksi bahwa tanggal saat ini ada dalam kalender. Tugas mulai berjalan tepat waktu pada pukul 22:00.

    • Hari non-perdagangan (seperti Festival Musim Semi): Sistem secara otomatis melewatkan pembuatan instans untuk tugas ini, atau instans yang dihasilkan berada dalam status "dry-run" dan tidak mengonsumsi sumber daya komputasi aktual.

Catatan

Kalender penjadwalan dapat dianggap sebagai filter untuk tanggal eksekusi. Dengan menggabungkannya dengan penjadwalan tingkat jam atau menit, Anda dapat mencapai penyaringan ganda baik tanggal maupun waktu.

Misalnya, tugas per jam yang dikonfigurasi untuk berjalan setiap hari pada 08:00 dan 18:00, jika dikaitkan dengan kalender penjadwalan yang hanya mencakup hari 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:

  1. Alur bisnis linier

    Konfigurasikan waktu terjadwal hanya untuk node pertama. Misalnya, atur waktu terjadwal node pertama menjadi 07:00. Tugas hilir secara otomatis dipicu melalui dependensi untuk memaksimalkan efisiensi eksekusi.

  2. Tugas yang bergantung waktu

    1. Tetapkan waktu terjadwal yang tepat untuk tugas tertentu secara independen. Saat menetapkan waktu, hindari mengatur waktu terjadwal node leluhur lebih lambat daripada node turunannya. Hal ini dapat menyebabkan node turunan gagal berjalan tepat waktu.

    2. Gunakan kalender penjadwalan dan rentang tanggal efektif untuk mengontrol periode aktif tugas. Misalnya, kendalikan tugas agar hanya berjalan pada hari kerja antara 1 Januari 2026 dan 31 Desember 2026.

  3. Parameter penjadwalan dinamis

    Gunakan parameter penjadwalan seperti ${yyyymmdd} untuk penggantian dinamis parameter waktu.

2. Kontrol dinamis dengan garis dasar cerdas

Tujuan: Menjamin waktu pengiriman tugas inti dan mengurangi biaya intervensi manual.

Prasyarat: Anda telah membuat garis dasar dan menyelesaikan klasifikasi prioritas tugas.

Mekanisme inti:

  1. Waktu komitmen dan definisi prioritas:

    Definisikan waktu penyelesaian yang dijanjikan untuk tugas inti, seperti 09:00, dan kaitkan dengan garis dasar prioritas tinggi. Sistem secara otomatis mengidentifikasi jalur kritis berdasarkan prioritas, memastikan tugas prioritas tinggi, seperti ekstraksi lapisan ODS, mendapatkan akses prioritas terhadap sumber daya komputasi.

  2. "Penggeseran beban puncak" sumber daya otomatis:

    Anda tidak perlu menetapkan waktu mulai bertahap secara manual untuk setiap tugas non-inti. Mesin penjadwalan secara otomatis mengantrikan tugas laporan non-inti untuk menghindari persaingan sumber daya selama waktu puncak, memprioritaskan pasokan sumber daya untuk jalur kritis.

  3. Prediksi dinamis dan peringatan real-time:

    Berdasarkan waktu proses historis, sistem dapat memprediksi secara dinamis di pagi hari apakah pipeline hari itu akan melewatkan waktu pengirimannya. Jika pada pukul 07:00 sistem memprediksi keterlambatan hingga 09:15, sistem akan 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 dari perencanaan mundur dengan garis dasar cerdas. Metode ini menetapkan titik awal melalui perencanaan statis, lalu menggunakan garis dasar untuk penjadwalan dinamis berbasis prioritas di seluruh jalur. Pendekatan ini mengurangi biaya pemeliharaan manual dan membangun sistem andal dari perencanaan hingga prediksi, menjamin determinisme tinggi untuk output data inti.

Referensi