Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Flink CDC route module

Dernière mise à jour :Aug 21, 2026

Le module route mappe les tables source aux tables de destination dans un pipeline Flink CDC. Configurez des règles de routage pour renommer des tables, fusionner plusieurs tables source en une seule table de destination ou répliquer une table source unique vers plusieurs destinations.

Paramètres

Paramètre Description Obligatoire
source-table Table source à faire correspondre. Prend en charge les expressions régulières. Oui
sink-table Table de destination vers laquelle écrire. Prend en charge les espaces réservés replace-symbol et les références aux groupes de capture ($1, $2, ...). Oui
replace-symbol Chaîne d'espace réservé intégrée à la valeur sink-table. À l'exécution, chaque occurrence de cet espace réservé dans sink-table est remplacée par le nom réel de la table source. La valeur ne doit pas être vide. Par exemple, définissez replace-symbol sur <> et sink-table sur sinkdb.<>. À l'exécution, <> est remplacé par le nom de la table source : la table source table1 est écrite dans sinkdb.table1 et la table source table2 est écrite dans sinkdb.table2. Pour transmettre les noms des tables source sans ajouter de préfixe ni de suffixe, définissez directement sink-table sur <>. Non
description Description de la règle de routage. Non
Important

Après avoir modifié le module de routage, effectuez un démarrage sans état pour appliquer les nouvelles règles.

Exemples

Synchronisation d'une table unique

Acheminez les données de mysql_db.web_order vers 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

Mappage un-vers-plusieurs

Pour répliquer une table source vers plusieurs tables de destination, définissez plusieurs règles de routage partageant la même source-table. Les règles suivantes répliquent mydb.orders simultanément vers sink_db.orders et 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

Plusieurs mappages un-vers-un

Définissez plusieurs règles indépendantes à l'aide de l'indicateur de liste YAML (-). Toutes les règles sont appliquées simultanément :

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

Fusion de tables fragmentées

Fusionnez toutes les tables de source_db dans la table de destination unique sink_db.merged :

route:
  - source-table: source_db.\.*
    sink-table: sink_db.merged
    description: merge sharded tables to a unified sink table

image

Synchronisation de base de données

Synchronisez toutes les tables de source_db vers les tables correspondantes dans sink_db, en conservant les noms de tables inchangés. L'espace réservé <> dans sink-table est remplacé par chaque nom de table source correspondant, de sorte que source_db.XXX est acheminé vers 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

Routage avancé avec groupes de capture

Créez des groupes de capture dans l'expression régulière source-table à l'aide de parenthèses, puis référencez les valeurs capturées dans sink-table en utilisant $1, $2, etc.

Ajouter un préfixe aux noms de base de données, conserver les noms de tables inchangés :

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

$1 capture le nom complet de la base de données et $2 capture le nom complet de la table.

Ajouter un préfixe aux noms de base de données et de tables :

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

Aplatir les noms de base de données et de tables dans une seule table de destination :

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

Par exemple, db_no_100.table_no_300 correspond aux groupes de capture 100 et 300, et est acheminé vers sink_db.table_100_300.