全部产品
Search
文档中心

Realtime Compute for Apache Flink:Join

更新时间:Jun 19, 2025

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: true di 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_RESOLVE untuk sebuah pekerjaan dan sistem mendeteksi pembaruan non-deterministik dari lookup join.

  • Anda mengonfigurasi pencarian asinkron untuk lookup join.