一、版本

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的架构中如果设置从时间戳启动,会把数据都扫一遍在启动导致的。不过目前尚未确定。如果着急恢复任务的话,慎重选择从时间戳启动。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐