Pendahuluan
-
Jenis bidang yang didukung: TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, TIME, dan TIMESTAMP.
-
Operator perbandingan yang didukung: <, >, <=, >=, =, !=, <>. Catatan: Operator =, !=, dan <> dapat digunakan untuk memfilter bidang bertipe numerik maupun karakter.
-
Nilai yang didukung: NULL atau nilai lainnya.
Contoh
Filter berdasarkan tipe karakter
Misalnya, field_string='a' atau field_string!='b'.
Catatan: Anda dapat menggunakan tanda kutip tunggal ('), tanda kutip ganda ("), atau tanpa tanda kutip sama sekali untuk nilai karakter.
field = ''
field != ''
field <> ''
field = 'null'
field = 'NULL'
field != 'null'
field != 'NULL'
field <> 'null'
field <> 'NULL'
Filter berdasarkan nilai NULL
Catatan: Ini berlaku untuk bidang numerik maupun karakter.
# Semua sintaks berikut valid
field = null
field = NULL
field != null
field != NULL
field <> null
field <> NULL
Filter berdasarkan tipe tanggal atau datetime
createtime>'2021-02-05 00:00:00'
Filter berdasarkan beberapa kondisi
status=1,literal_id='abcd',createtime>'2021-02-05 00:00:00'
Catatan penggunaan
-
Fitur filtering sumber data tersedia untuk sumber data RDS dan PolarDB.
-
Untuk kondisi filter, gunakan nama bidang dari tabel database, bukan nama bidang dari skema aplikasi OpenSearch.
-
Saat kondisi filter aktif, hanya catatan yang memenuhi kondisi tersebut yang ditarik—berlaku baik untuk data penuh maupun data inkremental.
Misalnya, jika Anda mengonfigurasi kondisi filter status=1 dan status dokumen di RDS kemudian diubah dari 1 menjadi 2, dokumen tersebut akan dihapus dari OpenSearch.
-
Hanya operator logika AND yang didukung. Gunakan koma (,) untuk merepresentasikan operator AND. Operator OR tidak didukung.
## Klausul WHERE dalam pernyataan SQL: where status=1 and type=2 # Konfigurasi pada filter sumber data OpenSearch: where status=1 and type=2 # Sintaks salah status=1 and type=2 # Sintaks salah status=1,type=2 # Sintaks benar -
Untuk memeriksa nilai null, jangan gunakan is null atau is not null. Lihat contoh "Filter berdasarkan nilai NULL" untuk sintaks yang benar.
-
Untuk memfilter bidang bertipe DATE atau DATETIME, seperti bidang bernama createtime dalam tabel database, waktu dalam kondisi filter harus mengikuti format yang ditentukan. Contoh:
createtime>'2018-03-01 00:00:00'. -
Operasi kompleks seperti fungsi dan ekspresi tidak didukung.
Misalnya: in(type,1,2,3) atau length(title)>10.
-
Operator like dan not like tidak didukung.
Misalnya: like '%aaa' atau not like '%bbb'.
-
Identitas persamaan tidak didukung.
Misalnya: 1=1.
-
Jika sumber data memiliki tabel utama dan tabel secondary, terapkan kondisi filter pada kedua tabel tersebut untuk mencegah tabel secondary mengonsumsi ruang penyimpanan yang tidak perlu.