Flink同步mysql写入Iceberg异常,一秒写入一次

1、现象

在Iceberg数据湖治理过程中发现,同步任务运行7天没有写入数据,运行7天后突然大批量产生Commit,一秒产生一个Commit。

 

2、问题

Flink写入checkpoint时会在checkpoint中先记录一个递增id, commit后会在Iceberg表中记录一个递增commit ID,记录了两个id,默认两个id相等。

通过不断写入checkpointId、commitId值一样会逐渐递增。  由1、2·····2000

3、从mysql指定时间启动,并且启动失败

从指定时间启动时,因checkpoint先触发,commit后触发,存在checkpoint成功commit失败的情况。导致表中的commitId没有更新,产生上诉现象。

比如checkpoint成功(checkpointId置为1),commit失败(表commitId还是记录旧值2000)

4、从上次失败的checkpoint启动

因checkpoint记录的值重置(1),Iceberg表未重置(2000)。这样导致1<2000,Flink认为数据已经写入iceberg,所以一直被过滤,直到checkpointId上涨到2000以后才开始写入Iceberg。

而满足2000以后,会快速把堆积的commit全部提交,造成1秒产生一个commit现象。腾讯团队在解决中

 

posted @   Robots2  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
点击右上角即可分享
微信分享提示