欢迎使用 Flink CDC 🎉
Flink CDC 是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API)。 该工具使得用户能够以 YAML 配置文件的形式,优雅地定义其 ETL(Extract, Transform, Load)流程,并协助用户自动化生成定制化的 Flink 算子并且提交 Flink 作业。 Flink CDC 在任务提交过程中进行了优化,并且增加了一些高级特性,如表结构变更自动同步(Schema Evolution)、数据转换(Data Transformation)、整库同步(Full Database Synchronization)以及 精确一次(Exactly-once)语义。
Flink CDC 深度集成并由 Apache Flink 驱动,提供以下核心功能:
- ✅ 端到端的数据集成框架
- ✅ 为数据集成的用户提供了易于构建作业的 API
- ✅ 支持在 Source 和 Sink 中处理多个表
- ✅ 整库同步
- ✅具备表结构变更自动同步的能力(Schema Evolution),
环境要求
Flink CDC 有以下环境要求:
- JDK:JDK 11 或更高版本(Flink CDC 从 3.6.0 版本开始基于 JDK 11 构建)
- Apache Flink:Flink 1.20.x 或 Flink 2.2.x
在运行 Flink CDC 之前,请确保已安装正确的 JDK 版本。您可以使用 java -version 命令验证 Java 版本。
支持的连接器
Flink CDC 提供了丰富的连接器生态系统,用于与各种外部系统进行交互:
| 连接器 | 类型 |
|---|---|
| MySQL | Source Connector / Pipeline Source Connector |
| Oracle | Source Connector / Pipeline Source Connector |
| PostgreSQL | Source Connector / Pipeline Source Connector |
| Db2 | Source Connector |
| MongoDB | Source Connector |
| SQL Server | Source Connector |
| TiDB | Source Connector |
| Vitess | Source Connector |
| Apache Doris | Pipeline Sink Connector |
| Elasticsearch | Pipeline Sink Connector |
| Fluss | Pipeline Sink Connector |
| Hudi | Pipeline Sink Connector |
| Iceberg | Pipeline Sink Connector |
| Kafka | Pipeline Sink Connector |
| MaxCompute | Pipeline Sink Connector |
| OceanBase | Pipeline Sink Connector |
| Paimon | Pipeline Sink Connector |
| StarRocks | Pipeline Sink Connector |
关于连接器下载链接,请访问 Flink Source Connectors 和 Pipeline Connectors 页面。
如何使用 Flink CDC
Flink CDC 提供了基于 YAML 格式的用户 API,更适合于数据集成场景。以下是一个 YAML 文件的示例,它定义了一个数据管道(Pipeline),该 Pipeline 从 MySQL 捕获实时变更,并将它们同步到 Apache Doris:
source:
type: mysql
hostname: localhost
port: 3306
username: root
password: 123456
tables: app_db.\.*
server-id: 5400-5404
server-time-zone: UTC
sink:
type: doris
fenodes: 127.0.0.1:8030
username: root
password: ""
table.create.properties.light_schema_change: true
table.create.properties.replication_num: 1
pipeline:
name: Sync MySQL Database to Doris
parallelism: 2
通过使用 flink-cdc.sh 提交 YAML 文件,一个 Flink 作业将会被编译并部署到指定的 Flink 集群。
请参考 核心概念 以获取 Pipeline 支持的所有功能的完整文档说明。
编写你的第一个 Flink CDC Pipeline
浏览 Flink CDC 文档,开始创建您的第一个实时数据集成管道(Pipeline)。
快速开始
查看快速入门指南,了解如何建立一个 Flink CDC Pipeline:
| 示例 | 版本 |
|---|---|
| MySQL to Apache Doris | 1.20.x / 2.2.x |
| MySQL to StarRocks | 1.20.x / 2.2.x |
| MySQL to Kafka | 1.20.x / 2.2.x |
| PostgreSQL to Fluss | 1.20.x / 2.2.x |
理解核心概念
熟悉我们在 Flink CDC 中引入的核心概念,并尝试构建更复杂的数据 Pipeline:
提交 Pipeline 到 Flink 集群
了解如何将 Pipeline 提交到运行在不同部署模式下的 Flink 集群:
开发与贡献
如果您想要将 Flink CDC 连接到您定制化的外部系统,或者想要为框架本身做出贡献,以下这些部分可能会有所帮助:
- 理解 Flink CDC API,开发您自己的 Flink CDC 连接器。
- 了解如何 向 Flink CDC 提交贡献
- 查看 Flink CDC 使用的许可证
Copyright © 2026 The Apache Software Foundation. Apache Flink, Flink, and the Flink logo are trademarks of The Apache Software Foundation.