El módulo route asigna tablas de origen a tablas de destino en un pipeline de Flink CDC. Configure reglas de enrutamiento cuando necesite renombrar tablas, fusionar varias tablas de origen en una sola tabla de destino o replicar una única tabla de origen hacia múltiples destinos.
Parámetros
|
Parámetro |
Descripción |
Obligatorio |
|
|
Tabla de origen que se debe coincidir. Admite expresiones regulares. |
Obligatorio |
|
|
Tabla de destino donde se escribirán los datos. Admite marcadores de posición |
Obligatorio |
|
|
Cadena de marcador de posición integrada en el valor de |
Opcional |
|
|
Descripción de la regla de enrutamiento. |
Opcional |
Después de modificar el módulo de enrutamiento, realice un inicio sin estado para aplicar las nuevas reglas.
Ejemplos
Sincronización de tabla única
Enrute datos desde mysql_db.web_order hacia 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 table
Asignación de uno a muchos
Para replicar una tabla de origen en varias tablas de destino, defina múltiples reglas de enrutamiento que compartan la misma source-table. Las siguientes reglas replican mydb.orders tanto en sink_db.orders como en backup_sink_db.orders de forma simultánea:
route:
- source-table: mydb.orders
sink-table: sink_db.orders
- source-table: mydb.orders
sink-table: backup_sink_db.orders
Múltiples asignaciones de uno a uno
Defina varias reglas independientes mediante el indicador de lista YAML (-). Todas las reglas se aplican de manera concurrente:
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_products
Fusión de tablas fragmentadas
Fusione todas las tablas de source_db en la única tabla de destino sink_db.merged:
route:
- source-table: source_db.\.*
sink-table: sink_db.merged
description: merge sharded tables to a unified sink table
Sincronización de base de datos
Sincronice todas las tablas de source_db con sus tablas correspondientes en sink_db y conserve los nombres originales. El marcador de posición <> en sink-table se reemplaza por el nombre de cada tabla de origen coincidente, de modo que source_db.XXX se enruta hacia sink_db.XXX:
route:
- source-table: source_db.\.*
sink-table: sink_db.<>
replace-symbol: <>
description: route all tables in source_db to sink_db
Enrutamiento avanzado con grupos de captura
Cree grupos de captura en la expresión regular de source-table mediante paréntesis y luego haga referencia a los valores capturados en sink-table con $1, $2, etc.
Agregar un prefijo a los nombres de base de datos y conservar los nombres de tabla:
route:
- source-table: (\.*).(\.*)
sink-table: ods_$1.$2
$1 captura el nombre completo de la base de datos y $2 captura el nombre completo de la tabla.
Agregar un prefijo tanto a los nombres de base de datos como a los de tabla:
route:
- source-table: (\.*).(\.*)
sink-table: ods_$1.upstream_$2
Aplanar los nombres de base de datos y tabla en una sola tabla de destino:
route:
- source-table: db_no_(\.*).table_no_(\.*)
sink-table: sink_db.table_$1_$2
Por ejemplo, db_no_100.table_no_300 coincide con los grupos de captura 100 y 300, y se enruta hacia sink_db.table_100_300.