このドキュメントでは、Flink CDC データインジェスチョンジョブの基本的な構造と主要な構成オプションについて説明します。
例
一般的なデータインジェスチョンジョブドラフトには、次のモジュールが含まれます。
たとえば、次の YAML は、MySQL から Paimon にデータを取り込むジョブを示しています。
# MySQL ソースモジュール
source:
type: mysql
name: MySQL Source
host: localhost
port: 3306
username: admin
password: <yourPassword>
tables: adb.*, bdb.user_table_[0-9]+, [app|web]_order_.*, mydb.\\.*
# Paimon シンクモジュール
sink:
type: paimon
name: Paimon Sink
catalog.properties.metastore: filesystem
catalog.properties.warehouse: /path/warehouse
# 変換モジュール
transform:
- source-table: mydb.app_order_.*
projection: id, order_id, TO_UPPER(product_name)
filter: id > 10 AND order_id > 100
primary-keys: id
partition-keys: product_name
table-options: comment=app order
description: ソーステーブルからフィールドを射影
converter-after-transform: SOFT_DELETE
- source-table: mydb.web_order_.*
projection: CONCAT(id, order_id) as uniq_id, *
filter: uniq_id > 10
description: 各行に新しい uniq_id を追加
# ルートモジュール
route:
- source-table: mydb.default.app_order_.*
sink-table: odsdb.default.app_order
description: すべてのテーブルシャードを 1 つに同期
- source-table: mydb.default.web_order
sink-table: odsdb.default.ods_web_order
description: テーブルをプレフィックス ods_ を付けて同期
# パイプラインモジュール
pipeline:
name: source-database-sync-pipe
schema.change.behavior: evolveソースモジュール
Source モジュールは、ジョブのデータソースを構成します。このモジュールは、Kafka、MySQL、MongoDB、Simple Log Service (SLS) などのコネクタをサポートしています。
構文
source:
type: mysql
name: mysql source
xxx: ...各コネクタに固有の構成オプションについては、そのドキュメントをご参照ください。
シンクモジュール
Sink モジュールは、ジョブのデータ宛先を構成します。このモジュールは、Kafka、Upsert Kafka、Hologres、Paimon、StarRocks、MaxCompute、Print などのコネクタをサポートしています。
構文
sink:
type: hologres
name: hologres sink
xxx: ...各コネクタに固有の構成オプションについては、そのドキュメントをご参照ください。
変換モジュール
Transform モジュールを使用すると、ソースデータを射影、計算、およびフィルター処理するルールを定義できます。
構文
transform:
- source-table: db.tbl1
projection: ...
filter: ...
- source-table: db.tbl2
projection: ...
filter: ...詳細については、「変換」をご参照ください。
ルートモジュール
Route モジュールを使用すると、アップストリームテーブルからのデータをマージまたはブロードキャストするルールを定義できます。
構文
route:
- source-table: db.tbl1
sink-table: sinkdb.tbl1
- source-table: db.tbl2
sink-table: sinkdb.tbl2詳細については、「Flink CDC ルートモジュール」をご参照ください。
パイプラインモジュール
Pipeline モジュールは、グローバルなジョブパラメーターを構成するためのものです。
構文
pipeline:
name: CDC YAML job
schema.change.behavior: LENIENT詳細については、「パイプライン」をご参照ください。