ToB企服应用市场:ToB评测及商务社交产业平台
标题:
FlinkCDC标题处置惩罚:Exceeded checkpoint tolerable failure threshold... c
[打印本页]
作者:
罪恶克星
时间:
2024-9-11 04:11
标题:
FlinkCDC标题处置惩罚:Exceeded checkpoint tolerable failure threshold... c
标题描述
通过FlinkCDC同步数据库到Paimon时在Flink Web UI界面发现写入端不停处于忙碌状态,并且Task主动重启了,查看日常日记看到:
异常信息提示由于最近的checkpoint在完成之前过期导致checkpoint执行失败了,一开始怀疑隔断时间设置过短,然后查看了下
flink-conf.yaml
设置项
execution.checkpointing.interval
,发现隔断时间设置为10秒,遂将其改为5min后重新跑作业,然而发现标题依旧。
在Flink UI界面上查看Checkpoint汗青信息,点开FAILED可以在内里跳转到日记界面。
在日记界面通过搜索Exception关键字找到错误信息再举行分析,如图:
发现在数据处置惩罚过程中出现类型转换错误,我们需要知道Paimon当时正在处置惩罚的数据是属于源库的哪张表以及哪个字段,向前翻看日记可以发现日记记录了表名信息,然后我们拿到表名到源数据库查看该表结构信息。
错误提示"0.0"字符串转为INT时出错,从源表数据上看并没有找到0.0的数据,怀疑是Debezium在字段类型映射上导致的。数据从Debezium流转到Paimon时,我加了一行日记打印详细的变乱内容,如图:
更新步伐重跑作业,在日记中拷贝出JSON格式变乱内容,发现了0.0的数值,其对应的字段描述如图:
我们碰到的0.0实际上在SqlServer中的字段类型为:Numeric类型,Debezium官方对Numeric类型的映射为:
可以看到Paimon接收到的变乱数据确实是按官方所述的那样,然而在源库上的表看到的数值都是整数类型,而且Paimon对SqlServer的字段类型映射是将Numeric映射为INT,所以就出现了谁人类型转换错误。
解决方法
修改Paimon中SqlServer字段类型映射关系,可以将Numeric改为映射成浮点类型。修改Debezium的字段类型映射关系可能不是好的选择,可能会引起其他的标题。
重新编译打包部署后标题解决。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4