Agar sebuah node menghasilkan dan menjalankan instans segera setelah diterapkan ke lingkungan produksi, atur mode pembuatan instans-nya menjadi Immediately After Deployment.
Latar Belakang
Setelah Anda menerapkan sebuah node, konfigurasi terbarunya akan tersedia di Operation Center. Setiap malam, DataWorks menghasilkan scheduled instances untuk jadwal hari berikutnya berdasarkan konfigurasi setiap scheduled task. Saat Anda menerapkan node baru atau yang telah diperbarui ke lingkungan produksi, mode pembuatan instans yang dipilih menentukan kapan perubahan tersebut memengaruhi scheduled instances dan dependensinya.
Di DataWorks, mode pembuatan instans menyediakan dua opsi yang mengatur kapan perubahan Anda berlaku: Next Day dan Immediately After Deployment.
-
Next Day: Operasi pembuatan dan pembaruan node hanya memengaruhi scheduled instances pada hari berikutnya. Jika suatu task harus dijalankan segera setelah diterapkan ke lingkungan produksi, Anda dapat menjalankan operasi backfill data untuk task tersebut.
-
Immediately After Deployment: Operasi pembuatan dan pembaruan node langsung berlaku. Namun, terdapat selisih waktu antara penerapan dan saat instans yang dapat dijalankan dihasilkan. Selisih ini memiliki dampak berbeda tergantung skenarionya. Untuk informasi lebih lanjut, lihat Skenario umum untuk pembuatan instans segera.
Catatan
-
Jika Anda mengatur mode pembuatan instans menjadi Immediately After Deployment, perubahan pada properti rerun tidak berlaku untuk instans yang sudah kedaluwarsa.
-
Node dalam suatu workflow tidak dapat dikonfigurasi secara individual untuk pembuatan instans segera. Opsi ini harus dikonfigurasi untuk seluruh workflow pada halaman konfigurasi penjadwalannya.
-
Terlepas dari apakah Anda memilih Next Day atau Immediately After Deployment dalam konfigurasi penjadwalan, sistem tetap menghasilkan semua scheduled instances untuk hari berikutnya setiap hari antara pukul 22.00–24.00. Task yang diterapkan selama periode ini tidak akan menghasilkan instans hingga lusa.
-
Mode pembuatan instans yang tidak konsisten antara task hulu dan hilir dapat menghasilkan isolated nodes.
-
Selisih waktu untuk pembuatan instans segera: Untuk mencegah perilaku tak terduga, proses pembuatan instans segera memiliki selisih waktu bawaan selama 10 menit. Waktu terjadwal suatu task harus setidaknya 10 menit setelah waktu penerapan agar task tersebut dijalankan dengan konfigurasi terbaru.
-
Ruang lingkup pembuatan instans segera (perbedaan antara kode task dan pengaturan jadwal): Tidak semua perubahan langsung berlaku. Anda perlu membedakan antara perubahan kode task dan perubahan pengaturan jadwal, karena logika penerapannya berbeda.
-
Kode task (seperti logika SQL dan skrip Shell): Instans membaca kode terbaru task saat runtime. Oleh karena itu, jika kesalahan kode menyebabkan exception saat runtime, biasanya Anda hanya perlu memperbaiki kode tersebut, menerapkannya kembali, dan menjalankan ulang instans terkait untuk memulihkannya. Anda tidak perlu membuat ulang instans.
-
Pengaturan jadwal (seperti parameter penjadwalan dan kebijakan rerun): Properti-properti ini ditetapkan dalam instans pada saat pembuatan. Jika Anda mengubah pengaturan jadwal suatu task setelah instans dibuat, instans yang sudah ada tidak diperbarui secara otomatis dan tetap dijalankan dengan konfigurasi lama dari saat instans tersebut dibuat.
Contoh: Jika Anda mengubah parameter penjadwalan dari
${bizdate}menjadi${datehour}lalu menerapkan perubahan tersebut, referensi ke${datehour}dalam kode langsung berlaku. Namun, konteks parameter lama yang sudah ditetapkan dalam instans yang telah dibuat tidak diperbarui. Ketidaksesuaian ini dapat menyebabkan kegagalan parsing parameter saat runtime. Hal yang sama berlaku pada skenario seperti mengubah sumber data yang terkait dengan suatu node. Instans yang sudah dibuat untuk hari ini tetap dijalankan dengan konfigurasi sebelum perubahan.
Untuk menerapkan perubahan pengaturan jadwal ke instans yang sudah dibuat, Anda dapat:
-
Di Operation Center, temukan task yang telah diperbarui dan gunakan operasi Refresh Instances untuk memperbarui secara batch pengaturan jadwal instans yang sudah dibuat.
-
Atau jalankan operasi backfill data untuk task tersebut. Operasi backfill menghasilkan dan menjalankan instans berdasarkan konfigurasi task terbaru.
-
Cara kerja pembuatan instans segera
Pembuatan instans segera setelah penerapan hanya berlaku untuk waktu terjadwal di masa depan. Secara spesifik, instans hanya dieksekusi ketika waktu terjadwal task lebih lambat daripada waktu penerapan.
-
Pada hari pembuatan task baru, scheduled instances dihasilkan, tetapi hanya instans yang waktu terjadwalnya berada di masa depan yang akan dieksekusi.
-
Jika Anda memperbarui waktu terjadwal suatu node dan waktu terjadwal barunya berada di masa lalu, tidak ada instans yang dihasilkan. Jika waktu terjadwal barunya berada di masa depan, instans baru dihasilkan berdasarkan konfigurasi baru dan menggantikan instans sebelumnya.
CatatanWaktu terjadwal harus setidaknya 10 menit setelah waktu penerapan node agar instans dapat dihasilkan dengan benar secara langsung.
Waktu terjadwal berada dalam rentang eksekusi normal
-
Skenario 1: Pada hari pembuatan node baru, scheduled instances nyata dihasilkan. Ketika waktu terjadwal berada di masa depan relatif terhadap waktu pembuatan instans, dan selisih antara kedua titik waktu tersebut lebih dari 10 menit, instans dijadwalkan dan dieksekusi secara normal. Untuk detailnya, lihat Pembuatan instans segera setelah menerapkan node baru.
-
Skenario 2: Setelah Anda memperbarui konfigurasi node, jika waktu terjadwal berada di masa depan relatif terhadap waktu pembuatan instans, dan selisih antara kedua titik waktu tersebut lebih dari 10 menit, instans dijadwalkan dan dieksekusi secara normal. Instans yang dieksekusi mencerminkan konfigurasi yang telah diperbarui. Untuk detailnya, lihat Memperbarui jadwal task yang telah diterapkan.
-
Skenario 4: Dampak perubahan waktu terjadwal terhadap dependensi hilir.
-
Jika waktu terjadwal baru instans berada di masa depan relatif terhadap waktu pembuatan instans, dan selisih antara kedua titik waktu tersebut lebih dari 10 menit, instans dijadwalkan dan dieksekusi secara normal. Instans hilir yang belum dijalankan akan bergantung pada instans baru setelah perubahan. Untuk detailnya, lihat Dampak perubahan waktu jadwal terhadap dependensi hilir.
-
Jika waktu terjadwal baru instans berada di masa lalu relatif terhadap waktu pembuatan instans, instans dry-run dihasilkan, dan instans hilir yang belum dijalankan menjadi isolated nodes. Untuk detailnya, lihat Mode pembuatan instans yang tidak konsisten antara task hulu dan hilir.
-
Kami menyarankan agar Anda tidak menggunakan fitur ini saat memodifikasi pengaturan jadwal node produksi. Fitur ini dapat menyebabkan perubahan dependensi, ketidakkonsistenan dependensi, penggantian instans, atau penghapusan instans, yang dapat memperumit dependensi pada hari tersebut. Namun, dependensi task akan kembali normal pada hari berikutnya.
Waktu terjadwal berada dalam rentang dry-run
Jika waktu terjadwal berada di masa lalu relatif terhadap waktu penerapan node, scheduled instances tetap dihasilkan, tetapi instans tersebut dry run. Status instans adalah Expired instance generated in real time, dan logika kode aktual tidak dieksekusi. Untuk detailnya, lihat Pembuatan instans segera setelah menerapkan node baru.
-
Skenario 1: Waktu terjadwal berada di masa depan relatif terhadap waktu pembuatan instans, tetapi selisih antara kedua titik waktu tersebut kurang dari 10 menit. Status instans adalah Expired Instance Generated in Real Time.
Contoh: Node A memiliki waktu terjadwal
09:05, dan node tersebut diterapkan pada09:00. Jika waktu terjadwal instans berada di masa depan relatif terhadap waktu pembuatan instans, tetapi selisih antara kedua titik waktu tersebut kurang dari 10 menit, node A menghasilkan instans dry-run dengan status Expired Instance Generated in Real Time. -
Skenario 2: Waktu terjadwal berada di masa lalu relatif terhadap waktu pembuatan instans. Instans Expired Instance Generated in Real Time segera dihasilkan.
Contoh: Node A memiliki waktu terjadwal
09:00dan diterapkan pada10:00. Waktu pembuatan instans sebelum waktu penerapan. Node A segera menghasilkan instans dry-run dengan status Expired Instance Generated in Real Time.
Skenario umum untuk pembuatan instans segera
Saat Anda menggunakan mode Instant generation after publishing untuk menghasilkan instans, perilaku eksekusi instans dan dependensi hulu/hilir dalam skenario terkait adalah sebagai berikut: