Este tópico descreve a estrutura básica e os principais parâmetros de um job de ingestão de dados baseado em Flink CDC.
Exemplo de estrutura de job
Um job típico de ingestão de dados com Flink CDC consiste nos seguintes módulos:
Por exemplo, um job que grava dados do MySQL no Paimon tem a seguinte estrutura:
# MySQL Source module
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 module
sink:
type: paimon
name: Paimon Sink
catalog.properties.metastore: filesystem
catalog.properties.warehouse: /path/warehouse
# Transform module
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: project fields from source table
converter-after-transform: SOFT_DELETE
- source-table: mydb.web_order_.*
projection: CONCAT(id, order_id) as uniq_id, *
filter: uniq_id > 10
description: add new uniq_id for each row
# Route module
route:
- source-table: mydb.default.app_order_.*
sink-table: odsdb.default.app_order
description: sync all table shards to one
- source-table: mydb.default.web_order
sink-table: odsdb.default.ods_web_order
description: sync table with given prefix ods_
# Pipeline module
pipeline:
name: source-database-sync-pipe
schema.change.behavior: evolve
Módulo Source
O módulo Source define a origem da leitura de dados de um job de ingestão do Flink CDC. Os conectores compatíveis incluem Kafka SQL connector, MySQL SQL connector, Postgres CDC (public preview), MongoDB e Simple Log Service (SLS).
Sintaxe
source:
type: mysql
name: mysql source
xxx: ...
Para ver todos os parâmetros compatíveis, consulte a documentação do conector correspondente.
Módulo Sink
O módulo Sink define o destino da gravação de dados de um job de ingestão do Flink CDC. Os conectores compatíveis incluem Fluss, Kafka SQL connector, Upsert Kafka, Hologres, Paimon, Iceberg, StarRocks SQL connector, SelectDB, MaxCompute e Print.
Sintaxe
sink:
type: hologres
name: hologres sink
xxx: ...
Para ver todos os parâmetros compatíveis, consulte a documentação do conector correspondente.
Módulo Transform
No módulo Transform de um job de ingestão de dados do Flink CDC, defina regras para projetar, calcular e filtrar dados nas tabelas de origem.
Sintaxe
transform:
- source-table: db.tbl1
projection: ...
filter: ...
- source-table: db.tbl2
projection: ...
filter: ...
Para obter detalhes sobre a sintaxe de expressões, consulte Flink CDC Transform module.
Módulo Route
No módulo Route de um job de ingestão de dados do Flink CDC, defina regras para mesclar ou transmitir bancos de dados e tabelas fragmentados da origem.
Sintaxe
route:
- source-table: db.tbl1
sink-table: sinkdb.tbl1
- source-table: db.tbl2
sink-table: sinkdb.tbl2
Para obter detalhes sobre a sintaxe de expressões, consulte Flink CDC Route module.
Módulo Pipeline
No módulo Pipeline de um job de ingestão de dados do Flink CDC, configure parâmetros globais.
Sintaxe
pipeline:
name: CDC YAML job
schema.change.behavior: LENIENT
Para ver todas as opções configuráveis, consulte Flink CDC Pipeline module.