Tugas yang dipicu otomatis DataWorks menggunakan mode T+1 secara default: instans yang dihasilkan sehari setelah penerapan mencerminkan konten yang baru diterapkan. Untuk menerapkan tugas yang baru diterapkan atau dimodifikasi pada hari yang sama, gunakan mode Immediately After Deployment.
Cara kerja
Setelah Anda memodifikasi dan Submit suatu tugas, konfigurasi baru akan berlaku pada hari yang sama atau keesokan harinya, tergantung pada mode generasi instans.
Keesokan hari (default)
Opsi default yang direkomendasikan ini memaksimalkan stabilitas lingkungan produksi Anda dengan mengisolasi perubahan dari instans yang sedang berjalan pada hari tersebut.
-
Prinsip operasi:
Penerapan pada Hari T hanya mengubah definisi tugas dan tidak mengganggu eksekusi instans apa pun pada hari tersebut. -
Dampak pada Hari T (Hari Penerapan):
-
Sistem hanya memperbarui definisi kode dan properti tugas. Instans yang sudah dihasilkan atau dijadwalkan pada Hari T tidak terpengaruh dan tetap berjalan berdasarkan konfigurasi sebelum penerapan.
-
Jika Anda ingin logika baru diterapkan pada data hari ini, lakukan operasi backfill data secara manual untuk instans Hari T setelah penerapan.
-
-
Dampak pada Hari T+1 (Keesokan Hari):
Semua perubahan mulai berlaku sejak instans pertama yang dipicu otomatis pada hari setelah penerapan (Hari T+1). Instans tersebut dihasilkan dan dijalankan berdasarkan konfigurasi baru.
Segera setelah penerapan
Mode ini menerapkan perubahan tugas pada hari penerapan. Sistem membandingkan waktu penerapan tugas dengan waktu penjadwalan masing-masing instans untuk menentukan cara instans dijalankan pada Hari T.
-
Prinsip operasi:
Sistem membandingkan waktu penjadwalan setiap instans yang dipicu otomatis pada Hari T dengan waktu penerapan tugas ditambah buffer sistem selama 10 menit. -
Waktu penjadwalan < Waktu penerapan + 10 menit
-
Hasil: Tugas baru melakukan dry run; tugas yang dimodifikasi tidak menghasilkan instans.
-
Untuk tugas baru yang belum pernah diterapkan, instans kedaluwarsa dan melakukan dry run tanpa mengeksekusi logika bisnis. Untuk tugas yang dimodifikasi dan diterapkan ulang, instans yang kedaluwarsa tidak dihasilkan.
-
-
Waktu penjadwalan > Waktu penerapan + 10 menit
-
Hasil: Eksekusi normal.
-
Sistem menghasilkan dan menjalankan instans berdasarkan konfigurasi baru.
-
-
Dampak pada Hari T+1 (Keesokan Hari):
Semua instans yang dipicu otomatis pada keesokan hari (Hari T+1) dihasilkan berdasarkan konfigurasi baru.
Penerapan yang dikirim antara pukul 22.00 dan 24.00 berlaku pada Hari T+2, terlepas dari mode generasi yang dipilih.
Batasan
-
Waktu Berlaku Perubahan: Sistem menghasilkan instans dalam batch dari
22.00hingga24.00setiap hari. Untuk penerapan 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 suatu node, instans yang dipicu otomatis yang sudah dihasilkan untuk hari tersebut tidak diperbarui, bahkan jika Anda memilih
Immediately After Deployment. Instans tersebut tetap berjalan dengan sumber data yang dikonfigurasi sebelumnya. Untuk menerapkan perubahan segera, gunakan fitur backfill data.
Skema penerapan segera
Mode Immediately After Deployment membawa risiko lebih tinggi. Penggunaan yang tidak tepat dapat menyebabkan ketergantungan penjadwalan menjadi kacau, penghapusan atau penggantian instans yang tidak terduga, serta mengompromikan stabilitas tugas pada hari yang sama.
Kasus penggunaan yang direkomendasikan
Gunakan mode ini dengan hati-hati dan hanya dalam skenario berikut:
-
Tugas baru yang harus dijalankan pada hari yang sama: Gunakan untuk tugas baru tanpa ketergantungan ancestor atau descendant yang kompleks yang perlu dijalankan pada hari penerapan.
-
Mengganti instans yang sudah ada: Gunakan mode ini untuk mengganti instans yang dipicu otomatis yang telah dihasilkan untuk hari ini tetapi belum dijalankan.
Skenario 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 tugas yang telah diterapkan: Ini sangat berisiko untuk tugas dengan ketergantungan ancestor dan descendant yang kompleks. Mengubah siklus penjadwalan (misalnya, dari harian ke per jam) dan menerapkannya segera dapat mengakibatkan campuran instans lama yang tetap ada dan instans baru yang dibuat, sehingga menyebabkan ketergantungan menjadi kacau.
-
Kegagalan merefresh skema tabel: Setelah Anda mengubah siklus penjadwalan, skema atau partisi tabel output (seperti tabel MaxCompute) mungkin gagal direfresh untuk mencerminkan hasil terbaru. Dalam mode
Immediately After Deployment, perubahan siklus penjadwalan membuat instans baru tetapi tidak secara otomatis menghapus instans lama. Selama instans lama dan baru berdampingan, instans lama tetap berjalan dengan konfigurasi lama, sehingga skema atau partisi tabel output tidak diperbarui sesuai.Langkah pemecahan masalah:
-
Periksa apakah siklus penjadwalan diubah pada hari penerapan.
-
Di Operation Center, periksa apakah instans lama dan baru berdampingan untuk tugas tersebut.
-
Identifikasi instans mana yang masih berjalan dengan konfigurasi lama dan menyebabkan tabel output tetap usang.
Solusi:
-
Alihkan tugas ke mode
T+1dan terapkan kembali tugas tersebut. -
Lakukan operasi backfill data untuk instans hari ini.
-
-
Mode Generasi Instans yang Tidak Konsisten untuk Tugas Ancestor dan Descendant: Misalnya, tugas ancestor menggunakan mode
T+1, sedangkan tugas descendant menggunakanImmediately After Deployment. Konfigurasi ini menyebabkan instans tugas descendant yang dihasilkan pada hari yang sama tidak dapat menemukan ketergantungan ancestor-nya, sehingga berubah menjadiisolated tasksyang tidak dapat dijalankan secara otomatis.
Solusi alternatif
Untuk skenario yang melibatkan modifikasi tugas yang telah diterapkan, pendekatan yang lebih aman adalah:
-
Gunakan mode default
T+1untuk menerapkan tugas. -
Setelah penerapan berhasil, lakukan operasi backfill data pada tugas untuk memicu instans secara manual untuk hari ini.
Skenario
Skenario 1: Tugas baru
Setelah tugas baru diterapkan, eksekusi instans bergantung pada apakah waktu penjadwalannya jatuh sebelum atau sesudah waktu penerapan ditambah buffer 10 menit.
|
Waktu penjadwalan |
Perilaku |
|
Lebih lambat dari (waktu penerapan + 10 menit) |
Sistem menghasilkan instans terpicu otomatis yang berjalan pada waktu yang telah dijadwalkan. |
|
Lebih awal dari atau sama dengan (waktu penerapan + 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 suatu tugas diterapkan ke lingkungan produksi pada pukul 12.00, instans real-time mulai berlaku pada pukul 12.10.
-
Jika waktu penjadwalan tugas tersebut setelah pukul
12.10, tugas tersebut akan dijadwalkan untuk dieksekusi. -
Jika waktu penjadwalan tugas tersebut sebelum pukul
12.10, tugas tersebut melakukan dry-run dan status instansnya adalah instans kedaluwarsa yang dihasilkan secara real time.
Skenario 2: Memperbarui siklus penjadwalan
Jika Anda memperbarui properti penjadwalan (seperti frekuensi dan waktu) tugas produksi dan menerapkan perubahannya, instans sebelum dan sesudah perubahan dapat berdampingan pada hari yang sama, sehingga menyebabkan ketergantungan penjadwalan yang kompleks.
Skenario ini hanya terjadi pada hari tugas diterapkan dengan generasi instans segera. Pada keesokan harinya, tugas 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 sudah 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.
Skenario 3: Mode tidak konsisten
Jika tugas ancestor dan descendant-nya sama-sama baru tetapi menggunakan mode generasi instans yang berbeda, descendant dapat menjadi tugas terisolasi. Misalnya, jika ancestor menggunakan Next Day dan descendant menggunakan Immediately After Deployment, tugas descendant dapat menjadi isolated task. Tugas terisolasi tidak dijalankan secara otomatis. Jika tugas tersebut memiliki banyak ketergantungan descendant, hal ini dapat menyebabkan gangguan serius pada proses bisnis downstream.
Skenario 4: Mengubah jadwal induk
Jika Anda memodifikasi jadwal tugas ancestor yang memiliki tugas descendant dengan frekuensi penjadwalan berbeda, ketergantungan untuk tugas descendant disesuaikan berdasarkan konfigurasi penjadwalan terbaru ancestor (misalnya, harian, bulanan, atau per jam).
Saat Anda mengubah jadwal tugas 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 tentang skenario ketergantungan tingkat jam dan menit, lihat Prinsip dan contoh konfigurasi penjadwalan dalam skenario ketergantungan kompleks. Skenario ini hanya berlaku ketika versi tugas yang akan diterapkan memiliki Mode Generasi Instans diatur ke Immediately After Deployment dan juga mencakup perubahan waktu penjadwalan.
Berikut adalah contoh skenario:
-
Skenario 1: Jadwal tugas 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 ancestor diubah dari setiap 6 jam menjadi 16.00 harian, dan mode Immediately After Deployment dipilih.
