跳到主要内容

欢迎使用 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 提供了丰富的连接器生态系统,用于与各种外部系统进行交互:

连接器类型
MySQLSource Connector / Pipeline Source Connector
OracleSource Connector / Pipeline Source Connector
PostgreSQLSource Connector / Pipeline Source Connector
Db2Source Connector
MongoDBSource Connector
SQL ServerSource Connector
TiDBSource Connector
VitessSource Connector
Apache DorisPipeline Sink Connector
ElasticsearchPipeline Sink Connector
FlussPipeline Sink Connector
HudiPipeline Sink Connector
IcebergPipeline Sink Connector
KafkaPipeline Sink Connector
MaxComputePipeline Sink Connector
OceanBasePipeline Sink Connector
PaimonPipeline Sink Connector
StarRocksPipeline Sink Connector

关于连接器下载链接,请访问 Flink Source Connectors 和 Pipeline Connectors 页面。

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:

示例版本
MySQL to Apache Doris1.20.x / 2.2.x
MySQL to StarRocks1.20.x / 2.2.x
MySQL to Kafka1.20.x / 2.2.x
PostgreSQL to Fluss1.20.x / 2.2.x

理解核心概念​

熟悉我们在 Flink CDC 中引入的核心概念,并尝试构建更复杂的数据 Pipeline:

了解如何将 Pipeline 提交到运行在不同部署模式下的 Flink 集群:

开发与贡献​

如果您想要将 Flink CDC 连接到您定制化的外部系统,或者想要为框架本身做出贡献,以下这些部分可能会有所帮助: