1.美图
2. 概述
Flink Table/SQL
中对于流表TableSink
的定义有三类:AppendStreamTable、RetractStreamTableSink 、UpsertStreamTableSink
,这三类主要区别对应不同的流类型,在我看来可以归纳为两种模式:
Insert模式
,对应AppendStreamTable
,只能执行insert
动作,例如窗口聚合结果,每个窗口的结果都是唯一的,不会影响之前窗口的输出结果Redo模式
,对应RetractStreamTableSink /UpsertStreamTableSink
,除了执行Insert
动作,还可执行Update/Delete
动作,也就是结果可更新,例如全局group by
聚合,后面的结果会影响之前的输出,