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 的完整配置,包括自动建表、字段演化、数据的增删改查等操作
相关推荐
可乐ea3 小时前
【知识获取与分享社区项目 | 项目日记第 20 天】search_after 游标分页:解决 Elasticsearch 深分页稳定性问题
java·大数据·elasticsearch·搜索引擎·全文检索
zhongerzixunshi3 小时前
标准化能源管控,赋能企业双碳落地
大数据·人工智能·能源
Database_Cool_3 小时前
数据仓库物化视图是什么?阿里云 AnalyticDB MySQL 实时物化视图最佳实践
数据库·数据仓库·mysql
智慧景区与市集主理人3 小时前
巨有科技联营分账系统|多业态统一管控,破解景区分账结算难题
大数据·人工智能·科技
美狐美颜SDK开放平台4 小时前
直播软件开发+AI美颜SDK:下一代直播平台搭建方案
大数据·人工智能·实时音视频·美颜sdk·第三方美颜sdk
王莎莎-MinerU4 小时前
Agent 时代的科学数据 API:用 Sciverse 构建可追溯的科研检索与 RAG 工作流
大数据·人工智能·gpt·aigc·个人开发
一只鹿鹿鹿4 小时前
网络安全和安防建设方案(doc文件)
大数据·运维·网络·物联网·安全
带娃的IT创业者4 小时前
深度解析:YouTube 自动标注 AI 生成内容背后的技术博弈与架构演进
大数据·人工智能·架构·youtube·数字水印·技术架构·ai生成内容
大大大大晴天4 小时前
Hudi技术内幕--Timeline核心机制与版本差异
大数据
研华嵌入式4 小时前
研华国际论坛聚焦Physical AI与边缘计算 AI规模化应用时代正式开启
大数据·人工智能·边缘计算