Modul route menetapkan aturan untuk memetakan tabel sumber ke tabel sink. Topik ini menjelaskan sintaksis pendefinisian aturan routing.
Parameter
Parameter | Deskripsi | Wajib | Keterangan |
| Menentukan tabel sumber. | Wajib | Mendukung ekspresi reguler. |
| Menentukan tabel sink. | Wajib | |
| Menentukan string dalam nama tabel sink yang akan diganti dengan nama tabel sumber. | Opsional | Misalnya, ketika |
| Deskripsi aturan routing. | Opsional |
Lakukan startup tanpa status setelah memodifikasi modul route untuk menerapkan aturan baru.
Contoh
Sinkronisasi tabel tunggal
Rutekan data dari tabel sumber mysql_db.web_order ke tabel sink 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 menyalin data dari satu tabel sumber ke beberapa tabel sink, definisikan beberapa aturan routing. Kode berikut mereplikasi data dari 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 menggunakan tanda hubung (-), yang merupakan indikator daftar YAML. Semua aturan ini 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 sharded
Gabungkan semua tabel dari database source_db ke 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 database source_db ke tabel-tabel yang sesuai di database sink_db, dengan mempertahankan nama tabel tetap sama.
route:
- source-table: source_db.\.*
sink-table: sink_db.<>
replace-symbol: <>
description: route all tables in source_db to sink_dbSimbol <> berfungsi sebagai placeholder untuk nama tabel sumber, memungkinkan pemetaan satu-ke-satu dari tabel sumber ke tabel sink.
Aturan routing lanjutan
Modul Route mendukung penggantian dengan capturing group.
Buat capturing group dalam ekspresi reguler source-table menggunakan tanda kurung. Kemudian, referensikan konten yang ditangkap dalam sink-table menggunakan $1, $2, dan seterusnya.
Kasus penggunaan umum beserta aturan routing-nya meliputi hal-hal berikut:
Tambahkan awalan ke semua nama database yang ditangkap sambil mempertahankan nama tabel tetap sama:
route: - source-table: (\.*).(\.*) sink-table: ods_$1.$2Capturing group pertama (
$1) mencocokkan nama database lengkap. Capturing group kedua ($2) mencocokkan nama tabel lengkap. ID tabel sink akhir menggabungkan keduanya.Tambahkan awalan ke semua nama database dan tabel yang ditangkap:
route: - source-table: (\.*).(\.*) sink-table: ods_$1.upstream_$2Gabungkan nama database dan tabel yang ditangkap menjadi satu nama tabel sink dalam satu database:
route: - source-table: db_no_(\.*).table_no_(\.*) sink-table: sink_db.table_$1_$2Aturan ini mengekstrak dua capturing group (
db_no_100.table_no_300→100dan300) dan menulis data ke tabel sinksink_db.table_100_300.