Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemfilteran data untuk integrasi Zero-ETL dengan Amazon Redshift
Integrasi Aurora Zero-ETL mendukung pemfilteran data, yang memungkinkan Anda mengontrol data mana yang direplikasi dari basis data Amazon Redshift target Anda. Alih-alih mereplikasi seluruh database, Anda dapat menerapkan satu atau beberapa filter untuk secara selektif menyertakan atau mengecualikan tabel tertentu. Ini membantu Anda mengoptimalkan kinerja penyimpanan dan kueri dengan memastikan bahwa hanya data yang relevan yang ditransfer. Saat ini, penyaringan terbatas pada tingkat database dan tabel. Pemfilteran tingkat kolom dan baris tidak didukung.
Pemfilteran data dapat berguna ketika Anda ingin:
-
Bergabunglah dengan tabel tertentu dari dua atau lebih cluster sumber yang berbeda, dan Anda tidak memerlukan data lengkap dari salah satu cluster .
-
Menghemat biaya dengan melakukan analitik hanya menggunakan subset tabel daripada seluruh armada database.
-
Saring informasi sensitif—seperti nomor telepon, alamat, atau detail kartu kredit—dari tabel tertentu.
Anda dapat menambahkan filter data ke integrasi nol-ETL menggunakan, AWS Command Line Interface (AWS CLI) AWS Management Console, atau Amazon RDS API.
Jika integrasi memiliki klaster Amazon Redshift yang disediakan sebagai targetnya, cluster harus berada di patch 180 atau lebih tinggi untuk menggunakan pemfilteran data.
Topik
Format filter data
Anda dapat menentukan beberapa filter untuk satu integrasi. Setiap filter menyertakan atau mengecualikan tabel database yang ada dan yang akan datang yang cocok dengan salah satu pola dalam ekspresi filter. Integrasi Aurora Zero-ETL menggunakan sintaks filter Maxwell untuk pemfilteran data.
Setiap filter memiliki elemen berikut:
Elemen | Deskripsi |
---|---|
Jenis filter |
Jenis |
Ekspresi filter |
Daftar pola yang dipisahkan koma. Ekspresi harus menggunakan sintaks filter Maxwell |
Pola |
Pola filter dalam format catatanUntuk Aurora MySQL, ekspresi reguler didukung dalam database dan nama tabel. Untuk Aurora PostgreSQL, ekspresi reguler hanya didukung dalam skema dan nama tabel, bukan dalam nama database. Anda tidak dapat menyertakan filter tingkat kolom atau daftar denylist. Integrasi tunggal dapat memiliki maksimum 99 pola total. Di konsol, Anda dapat memasukkan pola dalam satu ekspresi filter, atau menyebarkannya di antara beberapa ekspresi. Pola tunggal tidak dapat melebihi 256 karakter panjangnya. |
penting
Jika Anda memilih cluster DB sumber PostgreSQL Aurora, Anda harus menentukan setidaknya satu pola filter data. Minimal, pola harus menyertakan satu database (
) untuk replikasi ke Amazon Redshift.database-name
.*.*
Gambar berikut menunjukkan struktur filter data MySQL Aurora di konsol:

penting
Jangan sertakan informasi identitas pribadi, rahasia, atau sensitif dalam pola filter Anda.
Filter data di AWS CLI
Saat menggunakan AWS CLI untuk menambahkan filter data, sintaksnya sedikit berbeda dari konsol. Anda harus menetapkan jenis filter (Include
atauExclude
) untuk setiap pola satu per satu, sehingga Anda tidak dapat mengelompokkan beberapa pola di bawah satu jenis filter.
Misalnya, di konsol Anda dapat mengelompokkan pola dipisahkan koma berikut di bawah satu Include
pernyataan:
Aurora MySQL
mydb
.mytable
,mydb
./table_\d+/
Aurora PostgreSQL
mydb
.myschema
.mytable
,mydb
.myschema
./table_\d+/
Namun, saat menggunakan AWS CLI, filter data yang sama harus dalam format berikut:
Aurora MySQL
'include:
mydb.mytable
, include:mydb./table_\d+/
'
Aurora PostgreSQL
'include:
mydb.myschema.mytable
, include:mydb.myschema./table_\d+/
'
Filter logika
Jika Anda tidak menentukan filter data apa pun dalam integrasi Anda, Aurora mengasumsikan filter include:*.*
default, yang mereplikasi semua tabel ke gudang data target. Namun, jika Anda menambahkan setidaknya satu filter, logika default beralih keexclude:*.*
, yang mengecualikan semua tabel secara default. Ini memungkinkan Anda secara eksplisit menentukan database dan tabel mana yang akan disertakan dalam replikasi.
Misalnya, jika Anda menentukan filter berikut:
'include: db.table1, include: db.table2'
Aurora mengevaluasi filter sebagai berikut:
'exclude:*.*, include: db.table1, include: db.table2'
Oleh karena itu, Aurora hanya table1
mereplikasi table2
dan dari database db
bernama ke gudang data target.
Filter prioritas
Aurora mengevaluasi filter data dalam urutan yang Anda tentukan. Dalam AWS Management Console, ia memproses ekspresi filter dari kiri ke kanan dan atas ke bawah. Filter kedua atau pola individual yang mengikuti yang pertama dapat menimpanya.
Misalnya, jika filter pertama adalahInclude books.stephenking
, itu hanya mencakup stephenking
tabel dari books
database. Namun, jika Anda menambahkan filter keduaExclude books.*
, itu akan menggantikan filter pertama. Ini mencegah tabel apa pun dari books
indeks direplikasi ke Amazon Redshift.
Ketika Anda menentukan setidaknya satu filter, logika dimulai dengan mengasumsikan secara exclude:*.*
default, yang secara otomatis mengecualikan semua tabel dari replikasi. Sebagai praktik terbaik, tentukan filter dari yang paling luas hingga yang paling spesifik. Mulailah dengan satu atau beberapa Include
pernyataan untuk menentukan data yang akan direplikasi, lalu tambahkan Exclude
filter untuk menghapus tabel tertentu secara selektif.
Prinsip yang sama berlaku untuk filter yang Anda definisikan menggunakan AWS CLI. Aurora mengevaluasi pola filter ini dalam urutan yang Anda tentukan, sehingga sebuah pola dapat menggantikan pola yang Anda tentukan sebelumnya.
Contoh berikut menunjukkan cara kerja penyaringan data untuk integrasi Aurora MySQL Zero-ETL:
-
Sertakan semua database dan semua tabel:
'include: *.*'
-
Sertakan semua tabel dalam
books
database:'include: books.*'
-
Kecualikan tabel apa pun bernama
mystery
:'include: *.*, exclude: *.mystery'
-
Sertakan dua tabel spesifik dalam
books
database:'include: books.stephen_king, include: books.carolyn_keene'
-
Sertakan semua tabel dalam
books
database, kecuali yang berisi substringmystery
:'include: books.*, exclude: books./.*mystery.*/'
-
Sertakan semua tabel dalam
books
database, kecuali yang dimulai denganmystery
:'include: books.*, exclude: books./mystery.*/'
-
Sertakan semua tabel dalam
books
database, kecuali yang diakhiri denganmystery
:'include: books.*, exclude: books./.*mystery/'
-
Sertakan semua tabel dalam
books
database yang dimulai dengantable_
, kecuali yang bernamatable_stephen_king
. Misalnya,table_movies
atautable_books
akan direplikasi, tetapi tidaktable_stephen_king
.'include: books./table_.*/, exclude: books.table_stephen_king'
Contoh PostgreSQL Aurora
Contoh berikut menunjukkan cara kerja penyaringan data untuk integrasi Aurora PostgreSQL Zero-ETL:
-
Sertakan semua tabel dalam
books
database:'include: books.*.*'
-
Kecualikan tabel apa pun yang disebutkan
mystery
dalambooks
database:'include: books.*.*, exclude: books.*.mystery'
-
Sertakan satu tabel dalam
books
database dalammystery
skema, dan satu tabel dalamemployee
database dalamfinance
skema:'include: books.mystery.stephen_king, include: employee.finance.benefits'
-
Sertakan semua tabel dalam
books
database danscience_fiction
skema, kecuali yang berisi substringking
:'include: books.science_fiction.*, exclude: books.*./.*king.*/
-
Sertakan semua tabel dalam
books
database, kecuali yang memiliki nama skema yang dimulai dengansci
:'include: books.*.*, exclude: books./sci.*/.*'
-
Sertakan semua tabel dalam
books
database, kecuali yang ada dimystery
skema yang diakhiri denganking
:'include: books.*.*, exclude: books.mystery./.*king/'
-
Sertakan semua tabel dalam
books
database yang dimulai dengantable_
, kecuali yang bernamatable_stephen_king
. Misalnya,table_movies
dalamfiction
skema dantable_books
skema direplikasi, tetapi tidaktable_stephen_king
di salah satumystery
skema:'include: books.*./table_.*/, exclude: books.*.table_stephen_king'
Menambahkan filter data ke integrasi
Anda dapat mengonfigurasi pemfilteran data menggunakan AWS Management Console, API AWS CLI, atau Amazon RDS.
penting
Jika Anda menambahkan filter setelah membuat integrasi, Aurora memperlakukannya seolah-olah selalu ada. Ini menghapus data apa pun di gudang data Amazon Redshift target yang tidak cocok dengan kriteria pemfilteran baru dan menyinkronkan ulang semua tabel yang terpengaruh.
Untuk menambahkan filter data ke integrasi nol-ETL
Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/
. -
Di panel navigasi, pilih integrasi nol-ETL. Pilih integrasi yang ingin Anda tambahkan filter data, lalu pilih Ubah.
-
Di bawah Sumber, tambahkan satu atau lebih
Include
danExclude
pernyataan.Gambar berikut menunjukkan contoh filter data untuk integrasi MySQL:
-
Jika Anda puas dengan perubahan, pilih Lanjutkan dan Simpan perubahan.
Untuk menambahkan filter data ke integrasi nol-ETL menggunakan AWS CLI, panggil perintah modify-integration.--data-filter
parameter dengan daftar filter Maxwell yang dipisahkan koma. Include
Exclude
Contoh berikut menambahkan pola filter kemy-integration
.
Untuk Linux, macOS, atau Unix:
aws rds modify-integration \ --integration-identifier
my-integration
\ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Untuk Windows:
aws rds modify-integration ^ --integration-identifier
my-integration
^ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Untuk memodifikasi integrasi nol-ETL menggunakan RDS API, panggil operasi. ModifyIntegration Tentukan pengidentifikasi integrasi dan berikan daftar pola filter yang dipisahkan koma.
Menghapus filter data dari integrasi
Saat Anda menghapus filter data dari integrasi, Aurora mengevaluasi kembali filter yang tersisa seolah-olah filter yang dihapus tidak pernah ada. Kemudian mereplikasi data yang sebelumnya dikecualikan yang sekarang memenuhi kriteria ke dalam gudang data Amazon Redshift target. Ini memicu sinkronisasi ulang semua tabel yang terpengaruh.