Dinky 上使用 FlinkCDC3.1 PIPELINE 同步MySQL到StarRocks

使用 Dinky 和 FlinkCDC 3.1 实现 MySQL 到 StarRocks 的同步

  • 本文介绍如何使用 Dinky 上的 FlinkCDC 3.1 PIPELINE 同步 MySQL 到 StarRocks,实现数据的新增、修改、删除,字段的自动新增和删除同步

注意

  • 想用 Flinkcdc Pipeline 到 StarRocks 必须使用 FlinkCDC 3.1,FlinkCDC 3.0的版本会报错显示 Caused by: java.lang.RuntimeException: Cannot find factory with identifier "starrocks" in the classpath.

环境信息

组件版本

yaml 复制代码
Flink 1.17
FlinkCDC 3.1
Dinky 1.1
StarRocks 3.1
Mysql 8.0

Dinky 上使用 FlinkCDC 3.1 Pipeline 同步MySQL到StarRocks需要的依赖

yaml 复制代码
Flink/lib 和 dinky/extends 目录下放置
StarRocks的 Flink connector jar和 MySQL CDC 的 Flink connector jar 以及CDC的jar
mysql-connector-java-8.0.27.jar
flink-sql-connector-mysql-cdc-3.1.0.jar
flink-connector-starrocks-1.2.9_flink-1.17.jar
flink-cdc-pipeline-connector-starrocks-3.1.0.jar
flink-cdc-pipeline-connector-mysql-3.1.0.jar
flink-cdc-dist-3.1.0.jar

注意:

整库同步配置

FlinkCDC 3.1 Pipeline starrocks会自动建表 默认是主键模型 支持数据删除 修改 字段新增删除

YAML 配置示例

以下是整库同步的配置:

yaml 复制代码
SET 'execution.checkpointing.interval' = '10s';
EXECUTE PIPELINE WITHYAML (
source:
  type: mysql
  hostname: 152.136.53.49
  port: 3306
  username: root
  password: 'xx_12345678'
  --  tables: test.\.*   整库同步到starrocks的test 库下 除了下游route中的teachers 他会同步到ods.teachers中
  tables: test.\.*
  server-id: 5400-5404
 
sink:
  type: starrocks
  name: Starrocks Sink
  jdbc-url: jdbc:mysql://127.0.0.1:9030
  load-url: 127.0.0.1:8030
  username: root
  password: 0123456789
  table.create.properties.replication_num: 1
  --  table.create.properties.fast_schema_evolution: true starrocks3.2以上支持

route:
  - source-table: test.teachers
    sink-table: ods.teachers   
    description: route all tables in source_db to sink_db

pipeline:
  name: Sync MySQL Database to starrocks Route
  parallelism: 1
)

说明:

  • tables: test.\.* 表示将 MySQL 数据库 test 中的所有表同步到 StarRocks 的 ods 数据库中。

指定库表同步

  • 你也可以选择性地同步特定的表到 StarRocks,并通过 route 配置映射表到指定的目标表
yaml 复制代码
SET 'execution.checkpointing.interval' = '10s';
EXECUTE PIPELINE WITHYAML (
source:
  type: mysql
  hostname: 152.136.53.49
  port: 3306
  username: root
  password: 'xx-12345'
  tables: test.teachers,test.teacher -- 指定表同步到StarRocks 配合route sink到指定的库表
  server-id: 5400-5404
 
sink:
  type: starrocks
  name: Starrocks Sink
  jdbc-url: jdbc:mysql://127.0.0.1:9030
  load-url: 127.0.0.1:8030
  username: root
  password: 123456
  table.create.properties.replication_num: 1
  --  table.create.properties.fast_schema_evolution: true   starrocks3.2以上支持

route:
  - source-table: test.teachers
    sink-table: ods.teachers
  - source-table: test.teacher
    sink-table: ods.teacher
    description: route all tables in source_db to sink_db

pipeline:
  name: Sync MySQL Database to starrocks Route
  parallelism: 1
)

说明:

  • 该配置将 MySQL 中的 test.teachers 和 test.teacher 表分别同步到 StarRocks 中的 ods.teachers 和 ods.teacher 表。
  • 同样支持数据的新增、修改、删除,以及表结构的演化(字段的新增和删除)。

总结

  • 通过 FlinkCDC 3.1,可以轻松实现 MySQL 到 StarRocks 的数据同步,尤其是对于整库或指定表的同步。本文介绍了在 Dinky 上使用 FlinkCDC 3.1 Pipeline 的完整配置,包括自动建表、字段演化、数据的增删改查等操作
相关推荐
火火PM打怪中2 小时前
产品经理如何绘制服务蓝图(Service Blueprint)
大数据·产品经理
Elastic 中国社区官方博客10 小时前
在 Windows 上使用 Docker 运行 Elastic Open Crawler
大数据·windows·爬虫·elasticsearch·搜索引擎·docker·容器
一切顺势而行12 小时前
Flink cdc 使用总结
大数据·flink
淦暴尼14 小时前
基于spark的二手房数据分析可视化系统
大数据·分布式·数据分析·spark
万能小锦鲤14 小时前
《大数据技术原理与应用》实验报告三 熟悉HBase常用操作
java·hadoop·eclipse·hbase·shell·vmware·实验报告
expect7g14 小时前
Flink-反压-1.基本概念
后端·flink
Ashlee_code14 小时前
裂变时刻:全球关税重构下的券商交易系统跃迁路线图(2025-2027)
java·大数据·数据结构·python·云原生·区块链·perl
Flink_China14 小时前
淘天AB实验分析平台Fluss落地实践:更适合实时OLAP的消息队列
大数据·flink
阿里云大数据AI技术15 小时前
云上AI推理平台全掌握 (4):大模型分发加速
大数据·人工智能·llm
1892280486116 小时前
NW972NW974美光固态闪存NW977NW981
大数据·服务器·网络·人工智能·性能优化