什么是retraction(撤回)
通俗讲retract就是传统数据里面的更新操作,也就是说retract是流式计算场景下对数据更新的处理方式。
首先来看下流场景下的一个词频统计列子。
没有retract会导致最终结果不正确↑:
通过上面两个图可以很清楚的看到retract的作用,下面我们看一个具体的demo;
package flink
import java.util.Properties
import com.alibaba.fastjson.JSON
import org.apache.flink.api.common.serialization.SimpleStringSchema
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.table.api.TableEnvironment
import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaCon