Flink cdc如何只进行增量同步,不同步历史数据(只读取binlog)

环境

flink: 1.15.3

flink-connector-mysql-cdc: 2.4.0

场景:

mysql cdc到starrocks,

目前线上环境以及有老的任务在同步,现在升级了任务(旧checkpoints无法使用)旧表里面数据特别大,不方便重新同步

方案

思考:表里面的旧数据放着不动,只从binlog同步最新的数据。

解决

https://nightlies.apache.org/flink/flink-cdc-docs-master/zh/docs/connectors/mysql/

这是官网的解决办法,但是没有说参数设置在哪里。起初设置到debeziumProperties()里面是不生效的。

其实MySqlSourceBuilder是有一个方法特意指定startUP mode的

java 复制代码
MySqlSourceBuilder<String> builder = new MySqlSourceBuilder<>();

if (StringUtils.isNotBlank(latestOffset)){
     // 从最新的binlog同步
      builder.startupOptions(StartupOptions.latest());
 }

这样就可以了,重启任务不会读取历史数据。

最后(注意!!!)

执行过后请停止任务从最新的checkpoints恢复,或者记录好checkpoints。否则下次仍然指定这种模式会丢失数据的,还有指定了这个模式不要写死,否则checkpoints会失效的,用参数的方式传入!

相关推荐
adinnet20265 小时前
保单、赔付与渠道问数:保险经营数据如何实现按需查询
大数据·数据库·人工智能
码爸6 小时前
多源异构数据库实时同步至 Doris
数据库·flink·scala
组工部管理能手李哥7 小时前
政务办公场景下,私有化知识库+智能体方案的技术实践与思考
大数据·人工智能
anxiao_m7 小时前
水利数字孪生怎么选?主流可视化渲染平台深度横向测评
大数据·前端·人工智能·图形渲染·云渲染
用户3610588626128 小时前
Flink Time 之时间语义深度剖析:从 Processing Time 到 Event Time 与 Watermark 机制
大数据·flink
梦想画家8 小时前
SQLMesh 宏实现循环完全指南:@EACH、Python 宏与 SQLGlot 表达式实战
大数据·数据开发·sqlmesh
跨境联盟9 小时前
行业思考|精准营养会成为社区健康驿站的核心竞争力吗?
大数据·人工智能·健康医疗·健康管理·精准营养
龙亘川9 小时前
长假大客流复盘|数字化助力城市交通与文旅态势智能管控
大数据·人工智能·智慧城市·开源软件·数据可视化
QYR-分析10 小时前
锂电制造核心装备:全球电芯焊接机市场格局与增长趋势研判
大数据·人工智能·制造
intcube10 小时前
医药行业全面预算与费用管控:合规压力下的数字化管理转型
大数据·人工智能·企业管理·全面预算管理·财务规划