Flink Sql双流join-回撤机制导致数据重复

40 篇文章 24 订阅 ¥19.90 ¥99.00
11 篇文章 1 订阅
5 篇文章 2 订阅
本文探讨了在Flink SQL中使用双流Join时遇到的数据重复问题,原因是left join导致的数据回撤。通过分析不同类型的join操作(如inner join, outer join),并结合实际业务场景,发现数据源中的键值可能为空,这使得left join成为必要。在调试过程中,使用了db sink来检查中间结果,并发现在支持retract机制的db sink中能正确处理,而kafka sink由于仅支持append模式,导致数据重复。解决办法是建议下游通过主键查询并按时间排序,选择最新的数据。对于预测模型应用,可以选取主键对应预测值最大者。" 133962285,5564205,2023华为OD机试:水果摊小买卖Java解题,"['华为od', 'java', '算法', '数据结构', '开发语言']
摘要由CSDN通过智能技术生成

数据源:kafka topic数据类型为json

业务场景:解析json,由于数据层级比较深,而且包含数组,此处键值可能为空

所以数据就变成了双流join,甚至是多流join。

问题原因:采用left join导致数据回撤,然后同一个主键数据产生重复

是采用inner join 还是 outer join,具体区别见  Flink Sql教程(5)_狄杰的博客-CSDN博客_connector.startup-mode

Flink Sql on Zeppelin(5)——双流Join_狄杰的博客-CSDN博客 

由于此处关联可能存在键值为空匹配不到的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mtj66

看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值