概述
Flink CDC 是基于 Flink 的数据集成工具,可用于捕获数据库变更数据,并通过 YAML Pipeline构建实时同步和实时 ETL 作业。适用于数据库实时同步、实时数仓入湖入仓和业务数据实时分发等场景。
使用方式
Flink CDC使用yaml格式文件定义一条具体的数据同步链路。您可通过编写并运行yaml文件提交Flink CDC同步作业。
一个标准Flink CDC 同步作业的yaml文件至少需要包含以下部分:
source
sink
pipeline
以下为yaml文件编写示例。此文件定义从MySQL数据源读取app_db数据库下的所有表并同步至Doirs集群。
source:
type: mysql
hostname: <mysql_host>
port: <mysql_port>
username: <mysql_user>
password: <mysql_password>
tables: app_db.\.*
server-id: <mysql_server_id>
server-time-zone: Asia/Shanghai
sink:
type: doris
fenodes: <doris_fe_host>:<doris_fe_port>
username: <doris_user>
password: <doris_password>
table.create.properties.light_schema_change: true
table.create.properties.replication_num: 1
pipeline:
name: Sync MySQL To Doris Pipeline
parallelism: 2注意
示例中的主机名、用户名、密码、服务器ID、端口和服务地址均为占位符。实际使用时应根据实际情况动态调整。
如使用 Flink CDC,源库需要开启变更日志能力,源库账号需具备读取数据快照和读取变更日志的权限,目标端账号需具备写入目标表或创建目标表的权限。具体权限以对应数据库和连接器要求为准。
在准生产/生产环境下,我们推荐您使用Hadoop YARN 作为资源提供方。其中,Yarn Application 模式是 Yarn 集群上运行 Flink 作业的推荐模式。通过此模式提交FlinkCDC作业时,需要使用参数 -t yarn-application指定提交模式,并通过--jar指定相关的pipeline connector依赖包。
目前支持的连接器组合
Flink CDC 3.4 支持多种Pipeline Connectors。其中数据源支持 MySQL,Oracle、Postgres。数据目标支持 Doris、Iceberg。
使用建议
MySQL CDC 作业应为每个并行读取任务配置不冲突的 `server-id` 范围。
CDC 作业建议开启 Checkpoint,以便故障后从一致状态恢复。