Secara default, perubahan konfigurasi untuk Task DataWorks yang dijadwalkan berlaku dalam mode Next Day. Artinya, instans yang dihasilkan pada hari setelah penerapan menggunakan konfigurasi baru. Jika Anda memerlukan agar perubahan pada task baru atau yang dimodifikasi berlaku pada hari yang sama, Anda dapat menggunakan mode Immediately After Deployment.
Cara kerja
Di DataWorks, setelah Anda memodifikasi sebuah task dan menekan Submit, konfigurasi baru tersebut memengaruhi pembuatan instans dengan salah satu dari dua cara berikut. Mode-mode ini menentukan apakah perubahan berlaku pada hari yang sama atau pada siklus penjadwalan berikutnya (hari berikutnya).
Mode A: Next Day (Default Sistem)
Ini adalah opsi default sistem dan direkomendasikan. Mode ini mengisolasi perubahan dari instans yang sedang berjalan pada hari ini untuk memastikan stabilitas produksi.
Cara kerja:
Penerapan pada hari saat ini (Hari T) hanya memperbarui definisi task dan tidak memengaruhi eksekusi instans pada hari tersebut.Dampak pada hari saat ini (Hari T):
Perilaku: Hanya kode dan properti task yang diperbarui. Hal ini tidak memengaruhi instans yang telah dihasilkan atau dijadwalkan untuk hari ini. Semua instans pada Hari T tetap berjalan berdasarkan konfigurasi sebelum penerapan.
Rekomendasi: Jika Anda ingin logika baru berlaku pada Hari T, kami merekomendasikan melakukan operasi Backfill Data untuk instans Hari T setelah penerapan.
Dampak pada hari berikutnya (Hari T+1):
Semua perubahan mulai berlaku sejak instans terjadwal pertama pada Hari T+1. Semua instans dihasilkan dan dijalankan menggunakan konfigurasi baru.
Mode B: Immediately After Deployment
Mode ini menerapkan perubahan task sesegera mungkin pada hari penerapan. Logika utamanya adalah menentukan cara menangani instans terjadwal untuk hari saat ini (Hari T) dengan menggunakan waktu penerapan sebagai garis dasar.
Cara kerja:
Sistem membandingkan waktu penjadwalan setiap instans terjadwal pada Hari T dengan "waktu penerapan + buffer sistem 10 menit".Waktu penjadwalan < Waktu penerapan + 10 menit
Hasil: Task baru melakukan Dry Run. Untuk task yang dimodifikasi, tidak ada instans baru yang dihasilkan.
Perilaku: Untuk task yang baru diterapkan, instans tersebut dianggap "kedaluwarsa" dan masuk ke status Dry Run, sehingga logika bisnisnya tidak dieksekusi. Hal ini mencegah kode baru dijalankan pada instans yang termasuk dalam konfigurasi sebelum penerapan. Untuk task yang dimodifikasi dan diterapkan ulang, instans kedaluwarsa tidak dihasilkan.
Waktu penjadwalan > Waktu penerapan + 10 menit
Hasil: Eksekusi normal.
Perilaku: Sistem segera menghasilkan dan menjalankan instans berdasarkan konfigurasi baru.
Dampak pada hari berikutnya (Hari T+1):
Semua instans terjadwal pada Hari T+1 akan dihasilkan berdasarkan konfigurasi baru.
Untuk memastikan penjadwalan lintas hari yang deterministik, sistem memiliki "jendela cutoff harian" khusus (misalnya, pukul 23.30 hingga 24.00). Untuk penerapan yang diajukan selama jendela ini, perubahan akan berlaku pada Hari T+2, terlepas dari mode yang dipilih.
Batasan
Waktu efektif perubahan: Periode dari
23:30hingga24:00setiap hari merupakan jendela pembuatan instans batch sistem. Untuk operasi penerapan yang diajukan selama periode ini, perubahan akan berlaku pada instans terjadwal yang dihasilkan pada Hari T+2.Batasan perubahan Data Source: Jika Anda hanya memodifikasi Data Source yang terkait dengan sebuah task, bahkan jika Anda memilih
Immediately After Deployment, instans terjadwal yang telah dihasilkan untuk hari ini tidak akan diperbarui. Instans tersebut tetap berjalan menggunakan Data Source sebelumnya. Untuk menerapkan perubahan segera, Anda harus menggunakan fungsi Backfill Data.
Skenario untuk Segera Setelah Penyebaran
Mode Immediately After Deployment membawa risiko yang lebih tinggi. Jika digunakan secara tidak tepat, mode ini dapat menyebabkan ketergantungan (Dependencies) menjadi rumit, penghapusan atau penggantian instans secara tidak sengaja, serta mengganggu stabilitas task hari ini.
Kasus penggunaan yang direkomendasikan
Gunakan mode ini dengan hati-hati dan hanya dalam skenario berikut:
Task baru yang harus berjalan pada hari yang sama: Untuk task baru tanpa ketergantungan Upstream atau Downstream yang kompleks dan perlu segera berjalan setelah penerapan.
Mengganti instans yang sudah ada: Untuk mengganti instans terjadwal yang telah dihasilkan untuk hari ini namun belum dijalankan dengan konfigurasi baru.
Skenario berisiko tinggi (tidak direkomendasikan)
Jangan gunakan mode ini dalam skenario berikut karena dapat memperumit ketergantungan harian dan menyebabkan anomali penjadwalan:
Memodifikasi Konfigurasi Penjadwalan Task yang telah diterapkan: Ini terutama berisiko untuk task dengan ketergantungan Upstream dan Downstream yang kompleks. Mengubah Pengulangan Penjadwalan (misalnya, dari harian menjadi per jam) dan menerapkannya segera dapat menyebabkan beberapa instans lama tetap ada sementara instans baru dibuat, sehingga menimbulkan konflik ketergantungan.
Mode pembuatan yang tidak konsisten antara task upstream dan downstream: Misalnya, jika task upstream menggunakan mode
Next Daysedangkan task downstream menggunakanImmediately After Deployment. Hal ini menyebabkan instans task downstream untuk hari ini tidak dapat menemukan ketergantungannya pada upstream, sehingga menjadiIsolated Taskyang tidak dapat dijalankan secara otomatis.
Solusi alternatif
Untuk task yang telah diterapkan dan perlu dimodifikasi, pendekatan yang lebih aman adalah:
Terapkan task menggunakan mode default
Next Day.Setelah penerapan berhasil, lakukan operasi Backfill Data untuk task tersebut guna memicu secara manual instans yang perlu dijalankan pada hari ini.
Skenario praktis
Skenario 1: Menerapkan task baru
Setelah task baru diterapkan, eksekusi instans-nya bergantung pada hubungan antara waktu penjadwalannya dan waktu penerapan (dengan mempertimbangkan penundaan 10 menit).
Waktu penjadwalan | Status dan perilaku |
Lebih lambat dari (Waktu penerapan + 10 menit) | Sistem menghasilkan Scheduled Instance normal, yang dijalankan pada waktu terjadwalnya. |
Lebih awal dari atau sama dengan (Waktu penerapan + 10 menit) | Sistem menghasilkan instans kedaluwarsa yang dihasilkan secara real time. Instans ini melakukan Dry Run dan tidak dieksekusi. Untuk memproses data hari ini, lakukan operasi Backfill Data untuk hari kerja sebelumnya. Operasi ini juga memiliki selisih waktu 10 menit saat menghasilkan instans. Untuk informasi lebih lanjut, lihat Cara kerja. |

Contoh: Asumsikan sebuah task diterapkan ke Production Environment pada pukul 12:00. Waktu efektif untuk pembuatan instans secara real time adalah pukul 12:10.
Jika waktu penjadwalan task tersebut setelah pukul
12:10, task tersebut akan dijadwalkan dan dijalankan.Jika waktu penjadwalan task tersebut sebelum pukul
12:10, task tersebut akan melakukan Dry Run, dan status instans-nya menjadi instans kedaluwarsa yang dihasilkan secara real time.
Skenario 2: Memperbarui pengulangan penjadwalan
Jika Anda memperbarui waktu penjadwalan (yaitu, Pengulangan Penjadwalan dan waktunya) sebuah task Produksi dan menerapkan perubahan tersebut ke Production Environment, instans sebelum dan sesudah perubahan dapat eksis bersamaan pada hari yang sama. Hal ini dapat memperumit ketergantungan hari tersebut.
Skenario ini hanya terjadi pada hari penerapan. Pada hari berikutnya, sistem menghasilkan Scheduled Instance secara normal berdasarkan konfigurasi baru.
Perilakunya sebagai berikut:
Jika waktu penjadwalan task berada di masa depan
DataWorks akan mengganti instans mendatang yang telah dihasilkan dengan instans baru berdasarkan Konfigurasi Penjadwalan terbaru.
Jika waktu penjadwalan task berada di masa lalu
DataWorks akan mempertahankan instans yang dijadwalkan sebelum waktu baru tersebut dan mengganti atau menghapus instans yang dijadwalkan setelahnya.
Skenario 3: Mode pembuatan tidak konsisten
Jika task Upstream dan Downstream keduanya baru dan mode pembuatannya tidak konsisten (misalnya, task Upstream menggunakan Next Day sedangkan task Downstream menggunakan Immediately After Deployment), hal ini akan menyebabkan skenario Isolated Task. Isolated Task tidak akan dijadwalkan untuk dijalankan secara otomatis. Jika Isolated Task ini memiliki banyak ketergantungan Downstream, hal ini dapat mencegah semua task berikutnya berjalan secara normal, sehingga berdampak serius pada bisnis downstream.
Skenario 4: Mengubah waktu penjadwalan upstream
Saat Anda memodifikasi waktu penjadwalan task Upstream dan Downstream yang saling bergantung dan memiliki Pengulangan Penjadwalan berbeda, ketergantungan downstream diatur berdasarkan Konfigurasi Penjadwalan terbaru (ketergantungan harian, bulanan, atau per jam) dari task Upstream.
Untuk task Produksi dengan waktu penjadwalan yang diubah, instans downstream-nya akan bergantung pada instans Upstream lama yang belum diganti dan instans Upstream baru sesuai Konfigurasi Penjadwalan terbaru. Untuk detail berbagai skenario ketergantungan per jam dan per menit, lihat Wajib baca: Prinsip dan contoh konfigurasi penjadwalan dalam skenario ketergantungan kompleks. Skenario ini hanya terjadi ketika versi task yang akan diterapkan diatur ke Immediately After Deployment dan waktu penjadwalannya telah diubah.
Contoh skenarionya sebagai berikut:
Skenario 1: Jadwal task Upstream diubah dari setiap 6 jam menjadi setiap 8 jam (00:00, 08:00, 16:00), dan mode Immediately After Deployment dipilih.

Skenario 2: Jadwal task Upstream diubah dari setiap 6 jam menjadi sekali sehari pukul 16:00, dan mode Immediately After Deployment dipilih.
