すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Flink CDC ルートモジュール

最終更新日:May 07, 2026

route モジュールは、Flink CDC パイプラインにおいてソーステーブルを結果テーブルにマッピングします。テーブル名の変更、複数のソーステーブルを 1 つの結果テーブルにマージする場合、または 1 つのソーステーブルを複数の送信先にレプリケートする必要がある場合に、ルーティングルールを設定してください。

パラメーター

パラメーター 説明 必須
source-table マッチさせるソーステーブルです。正規表現をサポートします。 必須
sink-table 書き込み先の結果テーブルです。replace-symbol プレースホルダーおよびキャプチャグループのリファレンス($1$2、…)をサポートします。 必須
replace-symbol sink-table 値に埋め込まれたプレースホルダー文字列です。ランタイムでは、sink-table 内のこのプレースホルダーのすべての発生箇所が、実際のソーステーブル名に置き換えられます。値は空文字列であってはなりません。たとえば、replace-symbol<> に、sink-tablesinkdb.<> に設定します。ランタイムでは、<> がソーステーブル名に置き換えられ、ソーステーブル table1sinkdb.table1 に、ソーステーブル table2sinkdb.table2 に書き込まれます。プレフィックスやサフィックスを追加せずにソーステーブル名をそのまま渡すには、sink-table を直接 <> に設定してください。 任意
description ルーティングルールの説明です。 任意
重要

route モジュールを変更した後は、ステートレス起動を実行して新しいルーティングルールを適用してください。

使用例

単一テーブルの同期

mysql_db.web_order のデータを 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

一対多マッピング

ソーステーブルを複数の結果テーブルにレプリケートするには、同じ source-table を共有する複数のルーティングルールを定義します。以下のルールにより、mydb.orders が同時に sink_db.orders および 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

複数の一対一マッピング

YAML リストインジケーター(-)を使用して、複数の独立したルールを定義します。すべてのルールは同時適用されます。

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

シャードテーブルのマージ

source_db のすべてのテーブルを、単一の結果テーブル sink_db.merged にマージします。

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

データベース同期

source_db のすべてのテーブルを、テーブル名を変更せずに sink_db の対応するテーブルに同期します。<> プレースホルダーが sink-table 内で各マッチしたソーステーブル名に置き換えられるため、source_db.XXXsink_db.XXX にルーティングされます。

route:
  - source-table: source_db.\.*
    sink-table: sink_db.<>
    replace-symbol: <>
    description: route all tables in source_db to sink_db
image

キャプチャグループを使用した高度なルーティング

source-table の正規表現内で括弧を使用してキャプチャグループを作成し、sink-table 内で $1$2 などでキャプチャされた値を参照します。

データベース名にプレフィックスを追加し、テーブル名は変更しない:

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

$1 は完全なデータベース名を、$2 は完全なテーブル名をキャプチャします。

データベース名とテーブル名の両方にプレフィックスを追加する:

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

データベース名とテーブル名をフラット化して単一の結果テーブルに統合する:

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

たとえば、db_no_100.table_no_300 はキャプチャグループ 100 および 300 にマッチし、sink_db.table_100_300 にルーティングされます。