Topik ini menjelaskan bagaimana kompatibilitas antara deployment dan data state terpengaruh setelah Anda memodifikasi klausa WHERE dalam pernyataan SQL untuk deployment tersebut.
Data state tidak terlibat dalam klausa WHERE. Oleh karena itu, jika Anda memodifikasi klausa WHERE, kompatibilitas data state dari operator klausa WHERE tidak terpengaruh, tetapi kompatibilitas state dari operator outputnya akan terpengaruh.
Jika Anda ingin memodifikasi kondisi dalam klausa WHERE untuk memperbaiki data deployment, seperti menyaring data kotor, Anda dapat menambahkan konfigurasi berikut ke dalam bidang Other Configuration di bagian Parameters pada tab Configuration untuk deployment tersebut. Untuk informasi lebih lanjut, lihat Bagaimana cara mengonfigurasi parameter untuk deployment yang sedang berjalan? Setelah Anda menambahkan konfigurasi berikut dan memodifikasi kondisi dalam klausa WHERE, sistem akan mengabaikan dampak dari modifikasi ini terhadap kompatibilitas data state dari operator hilir.
table.optimizer.state-compatibility.ignore-filter=trueNilai default dari table.optimizer.state-compatibility.ignore-filter adalah false.
-- Pernyataan SQL asli:
select a, sum(b), max(c) from MyTable group by a;
-- Tambahkan klausa WHERE dan atur table.optimizer.state-compatibility.ignore-filter ke false. Setelah modifikasi ini, deployment menjadi tidak kompatibel dengan data state.
select a, sum(b), max(c) from (select * from MyTable where a > 10) group by a;
-- Tambahkan klausa WHERE dan atur table.optimizer.state-compatibility.ignore-filter ke true. Setelah modifikasi ini, deployment tetap sepenuhnya kompatibel dengan data state.
select a, sum(b), max(c) from (select * from MyTable where a > 10) group by a;