Modul route memetakan tabel sumber ke tabel sink dalam pipeline Flink CDC. Konfigurasikan aturan routing saat Anda perlu mengganti nama tabel, menggabungkan beberapa tabel sumber menjadi satu tabel sink, atau mereplikasi satu tabel sumber ke beberapa tujuan.
Parameter
| Parameter | Description | Required |
|---|---|---|
source-table |
Tabel sumber yang akan dicocokkan. Mendukung ekspresi reguler. | Required |
sink-table |
Tabel sink yang akan ditulis. Mendukung placeholder replace-symbol dan referensi capturing group ($1, $2, ...). |
Required |
replace-symbol |
String placeholder yang disematkan dalam nilai sink-table. Saat waktu proses, setiap kemunculan placeholder ini dalam sink-table diganti dengan nama tabel sumber yang sebenarnya. Nilainya tidak boleh berupa string kosong. Sebagai contoh, atur replace-symbol menjadi <> dan sink-table menjadi sinkdb.<>. Saat waktu proses, <> diganti dengan nama tabel sumber: tabel sumber table1 ditulis ke sinkdb.table1, dan tabel sumber table2 ditulis ke sinkdb.table2. Untuk meneruskan nama tabel sumber tanpa menambahkan awalan atau akhiran, atur sink-table langsung menjadi <>. |
Optional |
description |
Deskripsi aturan routing. | Optional |
Setelah memodifikasi modul route, lakukan startup tanpa status untuk menerapkan aturan routing baru.
Contoh
Sinkronisasi tabel tunggal
Rutekan data dari mysql_db.web_order ke sink_db.ods_web_order:
route:
- source-table: mysql_db.web_order
sink-table: sink_db.ods_web_order
description: sync data from a source table to a sink tablePemetaan satu-ke-banyak
Untuk mereplikasi tabel sumber ke beberapa tabel sink, definisikan beberapa aturan routing yang menggunakan source-table yang sama. Aturan berikut mereplikasi mydb.orders ke sink_db.orders dan backup_sink_db.orders secara bersamaan:
route:
- source-table: mydb.orders
sink-table: sink_db.orders
- source-table: mydb.orders
sink-table: backup_sink_db.ordersBeberapa pemetaan satu-ke-satu
Definisikan beberapa aturan independen menggunakan indikator daftar YAML (-). Semua aturan diterapkan secara konkuren:
route:
- source-table: mydb.orders
sink-table: ods_db.ods_orders
description: sync orders table to ods_orders
- source-table: mydb.shipments
sink-table: ods_db.ods_shipments
description: sync shipments table to ods_shipments
- source-table: mydb.products
sink-table: ods_db.ods_products
description: sync products table to ods_productsPenggabungan tabel ter-shard
Gabungkan semua tabel dari source_db ke satu tabel sink sink_db.merged:
route:
- source-table: source_db.\.*
sink-table: sink_db.merged
description: merge sharded tables to a unified sink tableSinkronisasi database
Sinkronkan semua tabel dari source_db ke tabel-tabel yang sesuai di sink_db, dengan mempertahankan nama tabel tetap sama. Placeholder <> dalam sink-table diganti dengan nama tabel sumber yang cocok, sehingga source_db.XXX dirutekan ke sink_db.XXX:
route:
- source-table: source_db.\.*
sink-table: sink_db.<>
replace-symbol: <>
description: route all tables in source_db to sink_dbRouting lanjutan dengan capturing group
Buat capturing group dalam ekspresi reguler source-table menggunakan tanda kurung, lalu rujuk nilai yang ditangkap tersebut dalam sink-table menggunakan $1, $2, dan seterusnya.
Tambahkan awalan ke nama database, pertahankan nama tabel tetap sama:
route:
- source-table: (\.*).(\.*)
sink-table: ods_$1.$2
$1 menangkap nama database lengkap dan $2 menangkap nama tabel lengkap.
Tambahkan awalan ke nama database dan nama tabel:
route:
- source-table: (\.*).(\.*)
sink-table: ods_$1.upstream_$2
Ratakan nama database dan tabel menjadi satu tabel sink:
route:
- source-table: db_no_(\.*).table_no_(\.*)
sink-table: sink_db.table_$1_$2
Sebagai contoh, db_no_100.table_no_300 mencocokkan capturing group 100 dan 300, dan dirutekan ke sink_db.table_100_300.