news 2026/9/24 13:58:32

从零到跑通:Flink CDC 安装教程与 MySQL 到 Doris 实时同步完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零到跑通:Flink CDC 安装教程与 MySQL 到 Doris 实时同步完整指南

从零到跑通:Flink CDC 安装教程与 MySQL 到 Doris 实时同步完整指南

【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdc

想把手里业务库的 MySQL 数据实时搬进数据仓库,传统做法是写 ETL 脚本加定时任务,"实时"二字基本指望不上。Flink CDC 是构建在 Apache Flink 之上的流式数据集成工具,用一个 YAML 文件就能让 MySQL 的每一次变更持续流向 Doris,全程不用写代码。

看懂 Flink CDC 能干什么

它本质上是把 CDC 数据同步这件事产品化:从数据库捕获变更事件,转换成数据流,再写入目标系统。

几个值得注意的能力点:

  • 用声明式 YAML 定义源、目标、路由和转换,自动编译成 Flink 作业提交
  • 支持整库同步、分库分表合并同步、表结构变更自动跟随(schema evolution)

上图是 Flink CDC 的分层结构:最上层是 YAML API,往下依次是连接器层、作业组装层和运行时层,底层跑在 Flink Runtime 上。

核对环境版本要求

动手前先对着检查清单过一遍:

  • JDK 11 或更高(Flink CDC 3.6.0 起基于 JDK 11 构建),执行java -version确认
  • Apache Flink 1.20.x 或 2.2.x,且集群已能启动(Flink CDC 3.x 支持这两个大版本)
  • 一台可达的 MySQL(含待同步的库表)和一套 Doris 集群

具体版本兼容矩阵以官方文档为准。

阶段一:解包 Flink CDC 发行包

从官网下载flink-cdc-x.x-bin.tar.gz并解压;如果拿不到官方包,也可以从 https://gitcode.com/GitHub_Trending/flin/flink-cdc 克隆仓库后用 Maven 自行构建(构建方式以官方文档为准)。

完成标志:你看到binliblogconf四个目录,bin里就有后面要用的flink-cdc.sh

阶段二:把连接器 JAR 放进正确的 lib

这一步最容易踩坑,目录不能放错:

JAR 包放到哪里
flink-cdc-pipeline-connector-mysqlFlink CDC 的lib
flink-cdc-pipeline-connector-dorisFlink CDC 的lib
mysql-connector-javaFlink 的lib(或用--jar参数传入)

注意:前两个是放Flink CDC 的 lib,不是 Flink 的 lib,放错后作业起不来且报错指向"找不到类",排查起来很浪费时间。

完成标志flink-cdc/lib下能看到两个 pipeline-connector 的 jar,Flink 的lib下有 mysql-connector-java。

阶段三:写一份 Flink CDC YAML 配置

创建mysql-to-doris.yaml,内容如下:

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

关键字段只记这几个就够:

  • source.tables:用正则匹配整库,app_db.\.*表示 app_db 下所有表
  • server-id:binlog 拉取的服务器 ID 区间,要和集群里其他 CDC 任务错开
  • server-time-zone:必须与 MySQL 实际时区一致,否则作业直接报错
  • sink.fenodes:Doris FE 的 HTTP 地址
  • replication_num: 1:示例环境只有一个 Doris BE 节点才这么写,生产环境按实际副本数调整

完成标志:YAML 校验无误,能看清"源 → 目标"两条线各对应哪个系统。

阶段四:提交同步作业

在 Flink CDC 目录下执行:

bash bin/flink-cdc.sh mysql-to-doris.yaml

提交成功会返回类似Pipeline has been submitted to cluster.加一行 Job ID 的信息。

此时你应该看到:Flink Web UI 中有一个名为Sync MySQL Database to Doris的作业处于 RUNNING 状态。

阶段五:确认数据真的落地

Doris 连接器不支持自动建库,需要先在 Doris 里执行create database app_db;

此时你应该看到:Doris Web UI 的app_db下出现orders等表,且已有初始数据。

接着做增量验证:在 MySQL 里对orders表做插入、更新、删除,甚至ALTER TABLE加一列,刷新 Doris 即可看到变更实时跟上来。若想让表结构变更自动跟随,可在pipeline块中配置schema.change.behavior: evolve(具体取值以官方文档为准)。

排查常见同步失败

现象对策
作业起不来,提示找不到类检查 connector jar 是否放错了 lib(CDC 的 lib 还是 Flink 的 lib)
连接阶段报时区相关错误server-time-zone改成 MySQL 实际时区
Doris 侧没有建表手动预创建目标 database
各参数含义拿不准查 Doris 连接器文档

各字段的完整参数表可进一步参考 MySQL 到 Doris 快速上手文档。

跑通整条链路只是起点。下一步建议:在 YAML 里加一个transform块,对orders表加一条过滤条件再同步,亲眼看到数据在途中被加工——transform 和 route 的写法可查docs/content/docs/core-concept/transform.md

【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 13:56:07

10分钟解决99%的PSLab for ExpEYES实验故障:工程师私藏排错指南

10分钟解决99%的PSLab for ExpEYES实验故障:工程师私藏排错指南 【免费下载链接】pslab-expeyes PSLab for ExpEYES - Science Experiments and Data Acquisition for Physics Education https://pslab.io 项目地址: https://gitcode.com/gh_mirrors/ps/pslab-exp…

作者头像 李华
网站建设 2026/9/24 13:53:27

车载测试不是点点点:从CAN总线到ISO 26262的系统能力构建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 13:53:03

Chat2DB 上手指南:自然语言生成 SQL,统一管理 16+ 数据库

Chat2DB 上手指南:自然语言生成 SQL,统一管理 16 数据库 【免费下载链接】Chat2DB Chat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40 databases, man…

作者头像 李华
网站建设 2026/9/24 13:52:41

idea简单使用、方法、数组

目录 第一章 开发工具IntelliJ IDEA 1.1 开发工具概述 1.2 IDEA软件安装 1.3 IDEA首次驱动 1.4 创建包和类 1.5 字体设置 1.7 IDEA常用快捷键 1.8 IDEA修改快捷键 1.9 IDEA导入和关闭项目 第二章 方法 **方法重载** 第三章 数组 整体思维框架: 第一章 开…

作者头像 李华