Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan filter sumber
Anda dapat menggunakan filter sumber untuk membatasi jumlah dan jenis catatan yang ditransfer dari sumber ke target. Misalnya, Anda dapat menentukan bahwa hanya karyawan di markas yang dipindahkan ke basis data target. Filter adalah bagian dari aturan seleksi. Terapkan filter pada kolom data.
Filter sumber harus mengikuti kendala ini:
-
Aturan seleksi tidak dapat memiliki filter atau satu atau lebih filter.
-
Setiap filter dapat memiliki satu atau beberapa kondisi filter.
-
Jika lebih dari satu filter digunakan, daftar filter digabungkan seolah-olah menggunakan operator AND antara filter.
-
Jika lebih dari satu kondisi filter digunakan dalam filter tunggal, daftar kondisi filter digabungkan seolah-olah menggunakan operator OR antara kondisi filter.
-
Filter hanya diterapkan bila
rule-action = 'include'
. -
Filter memerlukan nama kolom dan daftar kondisi filter. Kondisi filter harus memiliki operator filter yang terkait dengan salah satu nilai, dua nilai, atau tidak ada nilai, tergantung pada operator.
-
nama kolom, nama tabel, nama tampilan, dan nama skema case-sensitive. Oracle dan Db2 harus selalu menggunakan UPPER case.
-
Filter hanya mendukung tabel dengan nama yang tepat. Filter tidak mendukung wildcard.
Batasan berikut berlaku untuk menggunakan filter sumber:
-
Filter tidak menghitung kolom right-to-left bahasa.
-
Jangan menerapkan filter ke kolom LOB.
-
Terapkan filter hanya untukberubahkolom, yang tidak diperbarui setelah pembuatan. Jika filter sumber diterapkan kebisa berubahkolom, yang dapat diperbarui setelah penciptaan, perilaku yang merugikan dapat mengakibatkan.
Misalnya, filter untuk mengecualikan atau menyertakan baris tertentu dalam kolom selalu mengecualikan atau termasuk baris tertentu bahkan jika baris kemudian berubah. Misalkan Anda mengecualikan atau menyertakan baris 1-10 di kolom A, dan mereka kemudian berubah menjadi baris 11-20. Dalam hal ini, mereka terus dikecualikan atau disertakan bahkan ketika data tidak lagi sama.
Demikian pula, anggaplah bahwa baris di luar cakupan filter kemudian diperbarui (atau diperbarui dan dihapus), dan kemudian harus dikecualikan atau disertakan seperti yang didefinisikan oleh filter. Dalam kasus ini, itu direplikasi pada target.
Kekhawatiran tambahan berikut berlaku saat menggunakan filter sumber:
-
Kami menyarankan Anda membuat indeks menggunakan kolom yang disertakan dalam definisi penyaringan dan kunci utama.
Membuat aturan filter sumber di JSON
Anda dapat membuat filter sumber menggunakan parameter filters
JSON dari aturan pilihan. Parameter filters
menentukan array dari satu atau lebih objek JSON. Setiap objek memiliki parameter yang menentukan jenis filter sumber, nama kolom, dan kondisi filter. Kondisi filter ini mencakup satu atau lebih operator filter dan nilai filter.
Tabel berikut menunjukkan parameter untuk menentukan penyaringan sumber dalamfilters
objek.
Parameter |
Nilai |
---|---|
|
source |
|
Parameter dengan nama kolom sumber di mana Anda ingin filter diterapkan. Nama domain tidak peka huruf besar/kecil. |
|
Array dari satu atau lebih objek yang berisifilter-operator parameter dan nol atau lebih terkait nilai parameter, tergantung padafilter-operator nilai. |
|
Parameter dengan salah satu nilai berikut:
|
tidak ada nilai |
Nol atau lebih parameter nilai yang terkait dengan
|
Contoh berikut menunjukkan beberapa cara umum untuk menggunakan filter sumber.
contoh Filter tunggal
Filter berikut mereplikasi semua karyawan di mana empid >=
100
ke basis data target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "gte", "value": "50" },{ "filter-operator": "noteq", "value": "100" }] }] }] }
contoh Operator filter multipel
Filter berikut berlaku beberapa operator filter untuk satu kolom data. Filter mereplikasi semua karyawan di mana (empid <=
10)
ATAU (empid is between 50 and 75)
ATAU (empid
>= 100)
ke basis data target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "lte", "value": "10" }, { "filter-operator": "between", "start-value": "50", "end-value": "75" }, { "filter-operator": "gte", "value": "100" }] }] }] }
contoh Filter beberapa
Filter berikut menerapkan beberapa filter untuk dua kolom dalam sebuah tabel. Filter mereplikasi semua karyawan di mana (empid <= 100)
DAN (dept = tech)
ke basis data target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "lte", "value": "100" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "eq", "value": "tech" }] }] }] }
contoh Nilai NULL filter
Filter berikut menunjukkan bagaimana cara untuk memfilter nilai-nilai kosong. Ini mereplikasi semua karyawan di mana dept = NULL
ke basis data target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "null" }] }] }] }
contoh Penyaringan menggunakan operator NOT
Beberapa operator dapat digunakan dalam bentuk negatif. Filter berikut mereplikasi semua karyawan di mana (empid is < 50) OR (empid
is > 75)
ke basis data target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "notbetween", "start-value": "50", "end-value": "75" }] }] }] }
contoh Menggunakan operator filter Campuran
Mulai dengan AWS DMS versi 3.5.0, Anda dapat mencampur operator inklusif dan operator negatif.
Filter berikut mereplikasi semua karyawan di mana (empid != 50) AND (dept is not
NULL)
ke basis data target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "noteq", "value": "50" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "notnull" }] }] }] }
Perhatikan hal berikut saat menggunakan null
dengan operator filter lain:
Menggunakan kondisi inklusif, negatif, dan
null
filter bersama-sama dalam filter yang sama tidak akan mereplikasi catatan denganNULL
nilai.Menggunakan kondisi negatif dan
null
filter bersama-sama tanpa kondisi filter inklusif dalam filter yang sama tidak akan mereplikasi data apa pun.Menggunakan kondisi filter negatif tanpa set kondisi
null
filter secara eksplisit tidak akan mereplikasi catatan dengan nilai.NULL
Penyaringan berdasarkan waktu dan tanggal
Saat memilih data yang akan diimpor, Anda dapat menentukan tanggal atau waktu sebagai bagian dari kriteria filter Anda. AWS DMS menggunakan format tanggal YYYY-MM-DD dan format waktu YYYY-MM-DD HH: MM: SS untuk penyaringan. Fungsi AWS DMS perbandingan mengikuti konvensi SQLite. Untuk informasi lebih lanjut tentang jenis data SQLite dan perbandingan tanggal, lihatTipe data dalam SQLite versi 3
Filter berikut menunjukkan bagaimana untuk memfilter pada sebuah tanggal. Ini mereplikasi semua karyawan di mana empstartdate >= January 1, 2002
ke basis data target.
contoh Filter tanggal tunggal
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empstartdate", "filter-conditions": [{ "filter-operator": "gte", "value": "2002-01-01" }] }] }] }