Secara default, konfigurasi untuk task yang dipicu otomatis DataWorks berlaku dalam mode T+1. Artinya, instans yang dihasilkan pada hari setelah task diterapkan didasarkan pada konten yang baru diterapkan. Jika Anda memerlukan agar task yang baru diterapkan atau dimodifikasi langsung berlaku dan berjalan pada hari yang sama, gunakan mode Immediately After Deployment.
Cara kerja
Di DataWorks, setelah Anda memodifikasi dan Submit sebuah task, konfigurasi baru menentukan kapan perubahan tersebut diterapkan: apakah pada hari yang sama atau keesokan harinya.
Hari berikutnya (default)
Opsi default yang direkomendasikan ini memaksimalkan stabilitas lingkungan produksi dengan mengisolasi perubahan dari instans yang sedang berjalan pada hari tersebut.
-
Prinsip operasi:
Penyebaran pada Hari T hanya memperbarui definisi task dan tidak mengganggu eksekusi instans apa pun pada hari tersebut. -
Dampak pada Hari T (Hari Penyebaran):
-
Perilaku: Sistem hanya memperbarui kode dan definisi properti task. Hal ini tidak memengaruhi instans yang telah dihasilkan atau dijadwalkan untuk berjalan pada Hari T. Semua instans pada Hari T berjalan berdasarkan konfigurasi yang berlaku sebelum penyebaran.
-
Rekomendasi: Jika Anda ingin logika baru diterapkan pada data hari ini, lakukan operasi backfill data secara manual untuk instans Hari T setelah penyebaran.
-
-
Dampak pada Hari T+1 (Hari Berikutnya):
Semua perubahan mulai berlaku sejak instans pertama yang dipicu otomatis pada hari setelah penyebaran (Hari T+1). Instans-instans ini dihasilkan dan dijalankan berdasarkan konfigurasi baru.
Segera setelah penyebaran
Mode ini menerapkan perubahan task pada hari penyebaran. Mode ini membandingkan waktu penyebaran task dengan waktu penjadwalan instansnya untuk menentukan cara instans tersebut dijalankan pada hari yang sama (Hari T).
-
Prinsip operasi:
Sistem membandingkan waktu penjadwalan setiap instans yang dipicu otomatis pada Hari T dengan waktu penyebaran task ditambah buffer sistem selama 10 menit. -
Waktu penjadwalan < Waktu penyebaran + 10 menit
-
Hasil: Task baru melakukan dry run; task yang dimodifikasi tidak menghasilkan instans.
-
Perilaku: Untuk task baru yang belum pernah diterapkan, instans kedaluwarsa, melakukan dry run, dan tidak menjalankan logika bisnisnya. Hal ini mencegah kode baru berjalan pada instans pra-penyebaran. Untuk task yang dimodifikasi dan diterapkan ulang, instans yang kedaluwarsa tidak dihasilkan.
-
-
Waktu penjadwalan > Waktu penyebaran + 10 menit
-
Hasil: Eksekusi normal.
-
Perilaku: Sistem segera menghasilkan dan menjalankan instans berdasarkan konfigurasi baru.
-
-
Dampak pada Hari T+1 (Hari Berikutnya):
Semua instans yang dipicu otomatis pada hari berikutnya (Hari T+1) dihasilkan berdasarkan konfigurasi baru.
Untuk memastikan penjadwalan yang konsisten antar hari, terdapat jendela khusus lintas hari dari pukul 22:00 hingga 24:00. Untuk penyebaran apa pun yang dikirim dalam jendela ini, perubahan berlaku pada Hari T+2, terlepas dari mode generasi yang dipilih.
Batasan
-
Waktu Efektif Perubahan: Sistem menghasilkan instans secara batch dari
22:00hingga24:00setiap hari. Untuk operasi penyebaran yang dikirim selama periode ini, perubahan berlaku pada instans yang dipicu otomatis yang dihasilkan pada T+2. -
Batasan pada perubahan sumber data: Jika Anda hanya memodifikasi sumber data yang terkait dengan suatu node, instans yang dipicu otomatis yang telah dihasilkan untuk hari tersebut tidak diperbarui, bahkan jika Anda memilih
Immediately After Deployment. Instans tersebut akan terus berjalan menggunakan sumber data yang dikonfigurasi sebelum perubahan. Untuk menerapkan perubahan segera, gunakan fitur backfill data.
Skema penyebaran segera
Mode Immediately After Deployment memiliki risiko lebih tinggi. Penggunaan yang tidak tepat dapat menyebabkan ketergantungan penjadwalan menjadi kacau, penghapusan atau penggantian instans yang tidak terduga, serta mengganggu stabilitas task pada hari yang sama.
Kasus penggunaan yang direkomendasikan
Gunakan mode ini dengan hati-hati dan hanya dalam skenario berikut:
-
Task baru yang harus berjalan pada hari yang sama: Gunakan untuk task baru tanpa ketergantungan ancestor atau descendant yang kompleks yang perlu berjalan pada hari penyebaran.
-
Mengganti instans yang sudah ada: Gunakan mode ini untuk mengganti instans yang dipicu otomatis yang telah dihasilkan untuk hari ini tetapi belum dijalankan.
Skema berisiko tinggi (tidak direkomendasikan)
Hindari penggunaan mode ini dalam skenario berikut karena dapat memperumit ketergantungan penjadwalan pada hari yang sama dan menyebabkan kegagalan penjadwalan:
-
Memodifikasi jadwal task yang telah diterapkan: Ini sangat berisiko untuk task dengan ketergantungan ancestor dan descendant yang kompleks. Mengubah siklus penjadwalan (misalnya, dari harian menjadi per jam) dan menerapkannya segera dapat mengakibatkan campuran instans lama yang tetap ada dan instans baru yang dibuat, sehingga menyebabkan ketergantungan menjadi kacau.
-
Mode Generasi Instans yang Tidak Konsisten untuk Task Ancestor dan Descendant: Misalnya, task ancestor menggunakan mode
T+1, sedangkan task descendant menggunakanImmediately After Deployment. Konfigurasi ini menyebabkan instans task descendant yang dihasilkan pada hari yang sama tidak dapat menemukan ketergantungan ancestor-nya, sehingga berubah menjadiisolated tasksyang tidak dapat berjalan secara otomatis.
Solusi alternatif
Untuk skenario yang melibatkan modifikasi task yang telah diterapkan, pendekatan yang lebih aman adalah:
-
Gunakan mode default
T+1untuk menerapkan task. -
Setelah penyebaran berhasil, lakukan operasi backfill data pada task untuk memicu instans secara manual untuk hari ini.
Skenario
Skema 1: Task baru
Setelah task baru diterapkan, eksekusi instansnya bergantung pada apakah waktu penjadwalannya sebelum atau sesudah waktu penyebaran, termasuk buffer 10 menit.
|
Waktu penjadwalan |
Perilaku |
|
Lebih lambat dari (waktu penyebaran + 10 menit) |
Sistem menghasilkan instans yang dipicu otomatis normal yang berjalan pada waktu yang dijadwalkan. |
|
Lebih awal dari atau sama dengan (waktu penyebaran + 10 menit) |
Sistem menghasilkan instans kedaluwarsa yang dihasilkan secara real time. Instans ini berada dalam status dry-run dan tidak benar-benar dieksekusi. Jika Anda perlu memproses data untuk hari ini, Anda dapat melakukan backfill data untuk waktu data hari tersebut. Operasi ini juga memiliki penundaan 10 menit sebelum instans dihasilkan. Untuk informasi lebih lanjut, lihat Cara kerja. |
Contohnya: Jika sebuah task diterapkan ke lingkungan produksi pada pukul 12:00, instans real-time mulai berlaku pada pukul 12:10.
-
Jika waktu penjadwalan task berada setelah pukul
12:10, task tersebut akan dijadwalkan untuk dieksekusi. -
Jika waktu penjadwalan task berada sebelum pukul
12:10, task tersebut melakukan dry-run dan status instansnya adalah instans kedaluwarsa yang dihasilkan secara real time.
Skema 2: Memperbarui siklus penjadwalan
Jika Anda memperbarui properti penjadwalan (seperti frekuensi dan waktu) task produksi dan menerapkan perubahannya, instans sebelum dan sesudah perubahan dapat berdampingan pada hari yang sama. Hal ini dapat menyebabkan ketergantungan penjadwalan yang kompleks untuk hari tersebut.
Skema ini hanya terjadi pada hari task diterapkan dengan generasi instans segera. Pada hari berikutnya, task menghasilkan instans yang dipicu otomatis secara normal berdasarkan konfigurasi baru.
Perilaku spesifiknya adalah sebagai berikut:
-
Jika waktu penjadwalan baru berada di masa depan:
DataWorks mengganti instans yang telah dihasilkan untuk slot waktu mendatang dengan instans baru berdasarkan konfigurasi penjadwalan terbaru.
-
Jika waktu penjadwalan baru berada di masa lalu:
DataWorks mempertahankan instans yang dijadwalkan sebelum waktu baru tersebut dan mengganti atau menghapus instans yang dijadwalkan setelahnya.
Skema 3: Mode tidak konsisten
Jika task ancestor dan task descendant-nya sama-sama baru tetapi memiliki mode generasi instans yang berbeda, hal ini dapat menciptakan task terisolasi. Misalnya, jika task ancestor diatur ke Next Day dan task descendant diatur ke Immediately After Deployment, task descendant tersebut dapat menjadi isolated task. Task terisolasi tidak berjalan secara otomatis. Jika task ini memiliki banyak ketergantungan descendant, hal ini dapat menyebabkan gangguan serius pada proses bisnis downstream.
Skema 4: Mengubah jadwal ancestor
Jika Anda memodifikasi jadwal task ancestor yang memiliki task descendant dengan frekuensi penjadwalan berbeda, ketergantungan untuk task descendant disesuaikan berdasarkan konfigurasi penjadwalan terbaru ancestor (misalnya, harian, bulanan, atau per jam).
Saat Anda mengubah jadwal task produksi, instans descendant-nya akan menetapkan ulang ketergantungannya berdasarkan jadwal baru. Hal ini memengaruhi baik instans yang baru dihasilkan maupun instans lama yang belum diganti. Untuk detail skema ketergantungan per jam dan per menit, lihat Prinsip dan contoh konfigurasi penjadwalan dalam skema ketergantungan kompleks. Skema ini hanya terjadi ketika versi task yang siap diterapkan memiliki Mode Generasi Instans diatur ke Immediately After Deployment dan juga mencakup perubahan waktu penjadwalannya.
Berikut adalah contoh skenario:
-
Skema 1: Jadwal task ancestor diubah dari setiap 6 jam menjadi setiap 8 jam (00:00, 08:00, 16:00), dan mode Immediately After Deployment dipilih.

-
Skenario 2: Jadwal tugas pendahulu diubah dari setiap 6 jam menjadi pukul 16.00 setiap hari, dan mode Immediately After Deployment dipilih.
