Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Flink CDC route module

Última atualização: Jun 27, 2026

O módulo route mapeia tabelas de origem para tabelas de destino em um pipeline do Flink CDC. Configure regras de roteamento para renomear tabelas, consolidar várias tabelas de origem em uma única tabela de destino ou replicar uma tabela de origem para múltiplos destinos.

Parâmetros

Parâmetro

Descrição

Obrigatório

source-table

Tabela de origem a ser correspondida. Aceita expressões regulares.

Sim

sink-table

Tabela de destino para gravação dos dados. Aceita placeholders replace-symbol e referências a grupos de captura ($1, $2, ...).

Sim

replace-symbol

String de placeholder inserida no valor de sink-table. Durante a execução, cada ocorrência desse placeholder em sink-table é substituída pelo nome real da tabela de origem. O valor não pode ser uma string vazia. Por exemplo, defina replace-symbol como <> e sink-table como sinkdb.<>. Em tempo de execução, <> é substituído pelo nome da tabela de origem: a tabela de origem table1 é gravada em sinkdb.table1 e a tabela de origem table2 é gravada em sinkdb.table2. Para repassar os nomes das tabelas de origem sem adicionar prefixo ou sufixo, defina sink-table diretamente como <>.

Não

description

Descrição da regra de roteamento.

Não

Importante

Após modificar o módulo de roteamento, execute uma inicialização sem estado para aplicar as novas regras.

Exemplos

Sincronização de tabela única

Roteie dados de mysql_db.web_order para 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

Mapeamento um-para-muitos

Para replicar uma tabela de origem em várias tabelas de destino, defina múltiplas regras de roteamento com o mesmo source-table. As regras abaixo replicam mydb.orders simultaneamente para sink_db.orders e backup_sink_db.orders:

route:
  - source-table: mydb.orders
    sink-table: sink_db.orders
  - source-table: mydb.orders
    sink-table: backup_sink_db.orders

image

Múltiplos mapeamentos um-para-um

Defina várias regras independentes usando o indicador de lista YAML (-). Todas as regras são aplicadas simultaneamente:

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

Consolidação de tabelas fragmentadas

Consolide todas as tabelas de source_db na única tabela 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

Sincronização de banco de dados

Sincronize todas as tabelas de source_db com as tabelas correspondentes em sink_db e mantenha os nomes originais. O placeholder <> em sink-table é substituído pelo nome de cada tabela de origem correspondente. Assim, source_db.XXX é roteado para 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

Roteamento avançado com grupos de captura

Crie grupos de captura na expressão regular de source-table usando parênteses e referencie os valores capturados em sink-table por meio de $1, $2, entre outros.

Adicionar prefixo aos nomes dos bancos de dados e manter os nomes das tabelas inalterados:

route:
  - source-table: (\.*).(\.*)
    sink-table: ods_$1.$2

$1 captura o nome completo do banco de dados e $2 captura o nome completo da tabela.

Adicionar prefixo aos nomes dos bancos de dados e das tabelas:

route:
  - source-table: (\.*).(\.*)
    sink-table: ods_$1.upstream_$2

Achatar nomes de bancos de dados e tabelas em uma única tabela de destino:

route:
  - source-table: db_no_(\.*).table_no_(\.*)
    sink-table: sink_db.table_$1_$2

Por exemplo, db_no_100.table_no_300 corresponde aos grupos de captura 100 e 300 e é roteado para sink_db.table_100_300.