Todos los productos
Search
Centro de documentos

Realtime Compute for Apache Flink:Flink CDC route module

Última actualización: Sep 03, 2026

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

source-table

Tabla de origen que se debe coincidir. Admite expresiones regulares.

Obligatorio

sink-table

Tabla de destino donde se escribirán los datos. Admite marcadores de posición replace-symbol y referencias a grupos de captura ($1, $2, ...).

Obligatorio

replace-symbol

Cadena de marcador de posición integrada en el valor de sink-table. Durante la ejecución, cada aparición de este marcador en sink-table se reemplaza por el nombre real de la tabla de origen. El valor no debe ser una cadena vacía. Por ejemplo, establezca replace-symbol como <> y sink-table como sinkdb.<>. En tiempo de ejecución, <> se sustituye por el nombre de la tabla de origen: la tabla de origen table1 se escribe en sinkdb.table1 y la tabla de origen table2 se escribe en sinkdb.table2. Para conservar los nombres de las tablas de origen sin agregar prefijos ni sufijos, establezca sink-table directamente como <>.

Opcional

description

Descripción de la regla de enrutamiento.

Opcional

Importante

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

image

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

image

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

image

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

image

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

image

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.