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 |
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
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
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
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
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
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.