Pemfilteran data untuk integrasi nol Aurora dengan Amazon ETL Redshift - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemfilteran data untuk integrasi nol Aurora dengan Amazon ETL Redshift

Anda dapat menggunakan pemfilteran data untuk integrasi nol Aurora untuk menentukan ruang lingkup replikasi dari Redshift target. Daripada mereplikasi semua data ke target, Anda dapat menentukan satu atau lebih filter yang secara selektif menyertakan atau mengecualikan tabel tertentu agar tidak direplikasi. Hanya penyaringan di tingkat database dan tabel yang tersedia untuk ETL integrasi nol. Anda tidak dapat memfilter berdasarkan kolom atau baris.

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 ETL integrasi nol menggunakan AWS Management Console, the AWS Command Line Interface (AWS CLI), atau Amazon RDSAPI.

Jika integrasi memiliki cluster Amazon Redshift yang disediakan sebagai targetnya, cluster harus berada di patch 180 atau lebih tinggi.

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. Aurora nol- ETL integrasi menggunakan sintaks filter Maxwell untuk pemfilteran data.

Setiap filter memiliki elemen berikut:

Elemen Deskripsi
Jenis filter

Jenis Include filter mencakup semua tabel yang cocok dengan salah satu pola dalam ekspresi filter. Jenis Exclude filter mengecualikan semua tabel yang cocok dengan salah satu pola.

Ekspresi filter

Daftar pola yang dipisahkan koma. Ekspresi harus menggunakan sintaks filter Maxwell.

Pola

Pola filter dalam format database.table untuk Aurora MySQL, atau untuk Aurora database.schema.table Postgre. SQL Anda dapat menentukan nama literal, atau menentukan ekspresi reguler.

catatan

Untuk Aurora MySQL, ekspresi reguler didukung di 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 SQL sumber Aurora Postgre, Anda harus menentukan setidaknya satu pola filter data. Minimal, pola harus menyertakan satu database (database-name.*.*) untuk replikasi ke Amazon Redshift.

Gambar berikut menunjukkan struktur filter Aurora My SQL data di konsol:

Filter data untuk ETL integrasi nol
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 dibandingkan dengan konsol. Setiap pola individu harus dikaitkan dengan jenis filternya sendiri (IncludeatauExclude). Anda tidak dapat mengelompokkan beberapa pola dengan satu jenis filter.

Misalnya, di konsol Anda dapat mengelompokkan pola dipisahkan koma berikut dalam satu Include pernyataan:

Aurora Saya SQL

mydb.mytable, mydb./table_\d+/

Aurora Postgre SQL

mydb.myschema.mytable, mydb.myschema./table_\d+/

Namun, saat menggunakan AWS CLI, filter data yang sama harus dalam format berikut:

Aurora Saya SQL

'include: mydb.mytable, include: mydb./table_\d+/'

Aurora Postgre SQL

'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 default include:*.* dan mereplikasi semua tabel ke gudang data target. Namun, jika Anda menentukan setidaknya satu filter, logika dimulai dengan asumsiexclude:*.*, yang berarti bahwa semua tabel secara otomatis dikecualikan dari replikasi. Ini memungkinkan Anda untuk secara langsung menentukan tabel dan database mana yang akan disertakan.

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, hanya table1 dan table2 dari database bernama db direplikasi ke gudang data target.

Filter prioritas

Aurora mengevaluasi filter data dalam urutan yang ditentukan. Dalam AWS Management Console, ini berarti bahwa Aurora mengevaluasi ekspresi filter dari kiri ke kanan dan dari atas ke bawah. Jika Anda menentukan pola tertentu untuk filter pertama, maka filter kedua atau bahkan pola individual yang ditentukan segera setelah itu dapat menimpanya.

Misalnya, filter pertama Anda mungkin Includebooks.stephenking, yang mencakup satu tabel bernama stephenking dari dalam books database. Namun, jika Anda menambahkan filter kedua Excludebooks.*, itu akan mengganti Include filter yang ditentukan sebelumnya. Dengan demikian, tidak ada tabel dari books indeks yang direplikasi ke Amazon Redshift.

Jika Anda menentukan setidaknya satu filter, logika dimulai dengan asumsiexclude:*.*, yang berarti bahwa semua tabel secara otomatis dikecualikan dari replikasi. Oleh karena itu, sebagai praktik terbaik umum, tentukan filter Anda dari yang paling luas hingga yang paling tidak luas. Misalnya, gunakan satu atau beberapa Include pernyataan untuk menentukan semua data yang ingin Anda replikasi. Kemudian, mulailah menambahkan Exclude filter untuk secara selektif mengecualikan tabel tertentu agar tidak direplikasi.

Prinsip yang sama berlaku untuk filter yang Anda definisikan menggunakan AWS CLI. Aurora mengevaluasi pola filter ini dalam urutan yang ditentukan, jadi sebuah pola mungkin mengganti pola yang ditentukan sebelumnya.

Contoh berikut menunjukkan cara kerja pemfilteran data untuk Aurora SQL My zero ETL - integrasi:

  • Sertakan semua database dan semua tabel:

    'include: *.*'
  • Sertakan semua tabel dalam books database:

    'include: books.*'
  • Kecualikan tabel apa pun bernamamystery:

    '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 atau table_books akan direplikasi, tetapi tidaktable_stephen_king.

    'include: books./table_.*/, exclude: books.table_stephen_king'

Contoh Aurora Postgre SQL

Contoh berikut menunjukkan cara kerja penyaringan data untuk integrasi nol Aurora SQL Postgre: ETL

  • Sertakan semua tabel dalam books database:

    'include: books.*.*'
  • Kecualikan tabel apa pun yang disebutkan mystery dalam books database:

    'include: books.*.*, exclude: books.*.mystery'
  • Sertakan satu tabel dalam books database dalam mystery skema, dan satu tabel dalam employee database dalam finance skema:

    'include: books.mystery.stephen_king, include: employee.finance.benefits'
  • Sertakan semua tabel dalam books database dan science_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 di mystery 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 dalam fiction skema dan table_books skema direplikasi, tetapi tidak table_stephen_king di salah satu mystery skema:

    'include: books.*./table_.*/, exclude: books.*.table_stephen_king'

Menambahkan filter data ke integrasi

Anda dapat mengonfigurasi pemfilteran data menggunakan AWS Management Console, AWS CLI, atau Amazon RDSAPI.

penting

Jika Anda menambahkan filter setelah membuat integrasi, Aurora mengevaluasi kembali filter seolah-olah selalu ada. Ini menghapus data apa pun yang saat ini ada di gudang data Amazon Redshift target yang tidak sesuai dengan kriteria pemfilteran baru. Tindakan ini menyebabkan semua tabel yang terpengaruh disinkronkan ulang.

Untuk menambahkan filter data ke ETL integrasi nol
  1. Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/.

  2. Di panel navigasi, pilih Nol- ETL integrasi. Pilih integrasi yang ingin Anda tambahkan filter data, lalu pilih Ubah.

  3. Di bawah Sumber, tambahkan satu atau lebih Include dan Exclude pernyataan.

    Gambar berikut menunjukkan contoh filter data untuk integrasi Aurora MySQL:

    Filter data untuk ETL integrasi nol di RDS konsol
  4. Ketika semua perubahan sesuai keinginan Anda, pilih Lanjutkan dan Simpan perubahan.

Untuk menambahkan filter data ke ETL integrasi nol menggunakan AWS CLI, panggil perintah modify-integration. Selain pengidentifikasi integrasi, tentukan --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 ETL integrasi nol menggunakan RDSAPI, panggil ModifyIntegrationoperasi. 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. Aurora kemudian mereplikasi data apa pun yang sebelumnya tidak sesuai dengan kriteria pemfilteran (tetapi sekarang) ke dalam gudang data Amazon Redshift target.

Menghapus satu atau beberapa filter data menyebabkan semua tabel yang terpengaruh melakukan sinkronisasi ulang.