Flink CDC 是一个面向实时数据与批量数据的分布式数据集成工具。Flink CDC 通过 YAML 文件描述数据流转与转换,使得数据集成在 数据管道 中变得简单而优雅。
Flink CDC 优先考虑高效的端到端数据集成,并提供了增强功能,如全库同步、分库分表同步、模式演进和数据转换。

快速入门指南
Flink CDC 提供了 CdcUp CLI 工具,可用于启动演示环境并运行 Flink CDC 任务。 使用该工具需要安装并配置好 Docker 和 Docker compose 环境。
- 运行
git clone https://github.com/apache/flink-cdc.git --depth=1获取 Flink CDC 源码。 - 运行
cd tools/cdcup/ && ./cdcup.sh init使用 CdcUp 工具启动演示环境。 - 运行
./cdcup.sh up启动 docker 容器,等待环境准备就绪。 - 运行
./cdcup.sh mysql打开 MySQL 会话,并创建至少一张表。
-- 初始化数据库和表
CREATE DATABASE cdc_playground;
USE cdc_playground;
CREATE TABLE test_table (id INT PRIMARY KEY, name VARCHAR(32));-- 插入测试数据
INSERT INTO test_table VALUES (1, 'alice'), (2, 'bob'), (3, 'cicada'), (4, 'derrida');
-- 验证数据是否成功插入
SELECT * FROM test_table;
- 运行
./cdcup.sh pipeline pipeline-definition.yaml提交数据管道任务。你也可以编辑 pipeline-definition.yaml 文件进行进一步配置。 - 运行
./cdcup.sh flink访问 Flink Web UI。
开始使用
- 准备一个 Apache Flink 集群并设置
FLINK_HOME环境变量。 - 下载 Flink CDC tar 包,解压后将对应的 pipeline connector jar 包放到 Flink 的
lib目录下。
brew install apache-flink-cdc 快速安装 Flink CDC 及兼容连接器。- 创建一个 YAML 文件用于描述数据源与数据汇,以下示例将 MySQL app_db 库下所有表同步至 Doris:
yaml
source:
type: mysql
hostname: localhost
port: 3306
username: root
password: 123456
tables: app_db.\.* sink:
type: doris
fenodes: 127.0.0.1:8030
username: root
password: ""
transform:
- source-table: adb.web_order01
projection: \*, format('%S', product_name) as product_name
filter: addone(id) > 10 AND order_id > 100
description: 字段投影与过滤
- source-table: adb.web_order02
projection: \*, format('%S', product_name) as product_name
filter: addone(id) > 20 AND order_id > 200
description: 字段投影与过滤 route:
- source-table: app_db.orders
sink-table: ods_db.ods_orders
- source-table: app_db.shipments
sink-table: ods_db.ods_shipments
- source-table: app_db.products
sink-table: ods_db.ods_products pipeline:
name: 同步 MySQL 数据库到 Doris
parallelism: 2
user-defined-function:
- name: addone
classpath: com.example.functions.AddOneFunctionClass
- name: format
classpath: com.example.functions.FormatFunctionClass
`
- 使用
flink-cdc.sh 脚本提交数据管道任务。
`shell
bash bin/flink-cdc.sh /path/mysql-to-doris.yaml
`
- 通过 Flink WebUI 或下游数据库查看作业运行状态。
你可以通过我们更详细的 教程 进行自助体验。
也可以查看 连接器总览 来了解目前提供的连接器及更详细的参数配置。加入社区
有多种方式可以参与 Apache Flink CDC 社区。邮件列表 是所有 Flink 提交者都在的主要交流场所。用户支持与问题请使用 user 邮件列表。如果你发现了 Flink CDC 的问题,请创建一个 Flink jira 并添加
Flink CDC` 标签。
Bug 和新功能请求可以在 dev 邮件列表或 Jira 上讨论。参与贡献
欢迎为 Flink CDC 做出贡献,请参阅我们的 开发者指南 和 API 指南。
许可证
特别感谢
Flink CDC 社区欢迎任何愿意贡献的朋友,无论是提交 bug 报告、完善文档,还是为缺陷修复、测试补充或新特性开发提交代码。 感谢所有贡献者的热情参与!
--- Tranlated By Open Ai Tx | Last indexed: 2025-06-19 ---
