Topik ini menjelaskan skenario, batasan, dan prosedur penyaringan data menggunakan kondisi SQL setelah Anda memilih objek migrasi atau sinkronisasi saat membuat tugas migrasi atau sinkronisasi data.
Skenario
Saat membuat tugas migrasi atau sinkronisasi data, Anda dapat menentukan kondisi SQL untuk menyaring data. Hanya data yang memenuhi kondisi filter yang akan dimigrasikan ke database target. Fitur ini mendukung berbagai skenario seperti sinkronisasi atau migrasi data terjadwal, sharding tabel data, serta penyaringan data historis dan kotor.
Layanan transmisi data memungkinkan Anda memodifikasi kondisi SQL untuk objek migrasi atau sinkronisasi selama tugas migrasi atau sinkronisasi berlangsung. Untuk informasi lebih lanjut, lihat Lihat dan Modifikasi Objek Migrasi dan Kondisi Filter Mereka dan Lihat dan Modifikasi Objek Sinkronisasi dan Kondisi Filter Mereka.
Batasan
Kondisi SQL hanya menyaring kolom dari tabel saat ini. Penyaringan lintas tabel tidak didukung.
Kondisi SQL didukung dalam migrasi penuh, sinkronisasi penuh, dan sinkronisasi tambahan.
Hindari melakukan operasi DDL pada kolom yang akan difilter oleh kondisi SQL. Jika tidak, mungkin terjadi pengecualian migrasi atau sinkronisasi.
Prosedur
Konfigurasikan tugas migrasi atau sinkronisasi data sesuai petunjuk hingga langkah Select Migration Objects atau Select Synchronization Objects.
Untuk informasi lebih lanjut, lihat topik tentang migrasi data atau tugas sinkronisasi data untuk jenis sumber data yang sesuai.

Setelah menentukan objek database yang akan dimigrasikan atau disinkronkan, arahkan pointer ke objek tabel yang ingin dikonfigurasi di panel Target Object(s) bagian Select Migration Scope/Select Synchronization Scope, lalu klik Settings.

Di kotak dialog Settings, tentukan klausa SQL WHERE standar untuk menyaring data berdasarkan baris.

Sintaks klausa SQL WHERE adalah sebagai berikut:
Sistem tidak melakukan konversi huruf besar/kecil pada nama kolom. Masukkan nama kolom yang benar dan apit nama kolom dengan karakter escape (`). Contoh:
`col`.Kondisi filter mendukung pernyataan SQL WHERE standar. Hanya operator
=,!=,<, dan>yang didukung, dan hanya data yang memenuhi kondisi WHERE yang akan disinkronkan ke database target. Contoh:`id` > 200.Kondisi filter mendukung penyaringan berdasarkan kondisi waktu. Namun, perhatikan persyaratan format waktu dalam pernyataan SQL WHERE, yaitu
yyyy-MM-dd HH:mm:ssatauyyyy-MM-dd.Sebagai contoh, jika Anda ingin menyaring data tambahan setelah 31 Desember 2022, masukkan
`date_now` > '2022-12-31'atau`date_now` > '2022-12-31 00:00:00'.Jika Anda ingin mengambil data dalam periode tertentu, gunakan operator AND atau OR. Sebagai contoh, untuk menyaring data antara 31 Desember 2021 dan 1 April 2022, masukkan
`init_date`>'2021-12-31' and `init_date`<'2022-04-01'.Gunakan tanda kutip tunggal (') dalam kriteria filter. Contoh:
`address` in ('BEIJING','HANGZHOU').
Klik Validate Syntax.

Klik OK.
Selesaikan pengaturan tugas berikutnya sesuai petunjuk.