扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦
简介
使用flinkSQL处理实时数据当我们把表转化成流的时候,需要使用toAppendStream与toRetractStream这两个方法。稍不注意可能直接选择了toAppendStream。这个两个方法还是有很大区别的,本篇文章将详细介绍回撤流的实现原理以及案例讲解。
回撤流
介绍这两个方法之前先介绍一下什么是回撤流?所谓回撤流,就是可以更新历史数据的流,更新历史数据并不是将发往下游的历史数据进行更改,我们FlinkSQL实时处理时,结果数据已经发往下游的消息是追不回来的。更新历史数据的含义是,在得知某个Key(接在Key BY / Group By后的字段)对应数据已经存在的情况下,如果该Key对应的数据再次到来,会生成一条delete消息和一条新的insert消息发往下游,我们可以根据数据的标记进行业务处理,