问题描述
Blink数据同步到Hologres频繁丢数据,任务没有延迟反压报错
排查过程
1、添加print sink表,同时打印到日志里,发现丢失的数据有打印出来,说明Blink任务没问题
2、开启Binlog通过查询Binlog排查Hologres端是否有收到消息,详情参见查询Binlog
3、针对丢失数据查询Binlog发现最后操作是删除操作4、blink任务添加参数'ignoredelete'='true'
问题原因
由于聚合的key与主键key不一致导致的更新撤回逻辑下发乱序
解决方案
- 通过参数设置的目的是忽略撤回,防止乱序导致数据被删除掉了
- 从根本上解决需要优化代码聚合的key与主键key
注:忽略的是Blink下发的撤回消息,update还是正常下发,来更新下游数据的,不会存在数据重复的问题
适用范围
实时计算 Flink版