Flink Sql Cdc 启动模式踩坑总结
·
一、版本
flink sql 版本:1.13.1 、1.14.5
flink cdc版本:2.4
二、模式
正常来说,在2.4版本的cdc下,可以设置:全量读取、读最新binlog、读最早binlog、从指定时间戳启动几种模式:
全量读取:'scan.startup.mode' = 'initial',
读最新binlog:'scan.startup.mode' = 'latest-offset',
读最早binlog:'scan.startup.mode' = 'earliest-offset',
从指定时间戳启动:'scan.startup.mode' = 'timestamp',
'scan.startup.timestamp-millis' = '1738684800000' (在timestamp时需要)
三、踩坑
在一次flink sql任务出问题需要重启的时候,由于需要刷当天的数据,所以不能从此刻的savepoint启动。从而优先选择了从指定时间戳启动,但是发现任务一直卡着,并没有数据向下游写入。
后来经过重重测试,发现当前版本的规律如下:
四、启动规律:
1、有savepoint,则从savepoint启动,且立即执行
2、最早binlog、最新binlog、全量数据,这三种,都会立即执行
3、设置从时间戳启动,要等大概半小时才会启动。当时优先怀疑是cdc的架构中如果设置从时间戳启动,会把数据都扫一遍在启动导致的。不过目前尚未确定。如果着急恢复任务的话,慎重选择从时间戳启动。
更多推荐


所有评论(0)