Topik ini menjelaskan kompatibilitas antara pekerjaan dan data state yang digunakan untuk memulai pekerjaan setelah Anda memodifikasi query regular join, interval join, temporal join, atau lookup join untuk pekerjaan tersebut.
Regular join
Data state dari operator yang terkait dengan regular join tidak dapat dimigrasi. Jika Anda memodifikasi atribut regular join untuk sebuah pekerjaan, seperti tipe join, kondisi join, atau skema input, pekerjaan tersebut menjadi tidak kompatibel dengan data state. Namun, jika Anda hanya memodifikasi kondisi kesetaraan atau non-kesetaraan dan perubahan tersebut dapat didorong ke aliran input dari query join untuk menghasilkan node Calc dengan kondisi tertentu, Anda dapat menentukan konfigurasi table.optimizer.state-compatibility.ignore-filter: true di bagian Parameters untuk memastikan bahwa pekerjaan tetap sepenuhnya kompatibel dengan data state.
Interval join
Data state dari operator yang terkait dengan interval join tidak dapat dimigrasi. Jika Anda memodifikasi atribut interval join untuk sebuah pekerjaan, seperti tipe join, kondisi join, interval, atau skema input, pekerjaan tersebut menjadi tidak kompatibel dengan data state. Namun, pekerjaan tetap sepenuhnya kompatibel dengan data state jika Anda melakukan modifikasi berikut:
Memodifikasi unit waktu tanpa memengaruhi nilai akhir dari interval.
Memodifikasi kondisi kesetaraan atau non-kesetaraan dan perubahan tersebut dapat didorong ke aliran input dari query join untuk menghasilkan node Calc dengan kondisi tertentu. Selain itu, tentukan konfigurasi
table.optimizer.state-compatibility.ignore-filter: truedi bagian Parameters.
Temporal join
Data state dari operator yang terkait dengan temporal join tidak dapat dimigrasi. Jika Anda memodifikasi atribut temporal join untuk sebuah pekerjaan, seperti tipe join, kondisi join, atau skema input, pekerjaan tersebut menjadi tidak kompatibel dengan data state.
Lookup join
Secara default, lookup join dilakukan oleh operator non-stateful. Memodifikasi lookup join tidak memengaruhi kompatibilitas state dari operator yang sesuai. Namun, jika output dari lookup join diubah, kompatibilitas state dari operator hilir dapat terpengaruh. Selain itu, jika salah satu kondisi berikut terpenuhi, lookup join mungkin dilakukan oleh operator stateful dan masalah kompatibilitas dapat terjadi. Dalam hal ini, sistem mungkin gagal mendeteksi masalah dan salah menampilkan bahwa modifikasi sepenuhnya kompatibel. Akibatnya, terjadi kesalahan saat Anda memulai pekerjaan karena data state tidak dapat dipulihkan.
Anda menentukan konfigurasi
table.optimizer.non-deterministic-update.strategy: TRY_RESOLVEuntuk sebuah pekerjaan dan sistem mendeteksi pembaruan non-deterministik dari lookup join.Anda mengonfigurasi pencarian asinkron untuk lookup join.