自定义UpsertStreamTableSink"/>
自定义UpsertStreamTableSink
《2021年最新版大数据面试题全面开启更新》
在Flink实战系列之自定义RetractStreamTableSink中介绍了如何编写自定义RetractStreamTableSink,Flink 中提供了另外一种可Redo模式的UpsertStreamTableSink,与RetractStreamTableSink不同的是:
1.在UpsertStreamTableSink中需要指定一个unique key , 该unique key既可以是single的也可以是composite的 ,所有的消息编码都是针对该unique key的,不需要用户自已指定,会在任务解析过程中自动生成, 通常是group by 中字段
2.RetractStreamTableSink针对需要update消息生成delete 与insert两条消息,但是UpsertStreamTableSink只会生成一条消息,称之为upsert,即可表示插入也可表示更新。
仍然以全局wordCount 为例:
class PaulUpsertStreamTableSink extends UpsertStreamTableSink[Row] {private var fieldNames:Array[String]=_private var fieldTypes:Array[TypeInformation[_]]=_private var keys: Array[String]=_private var isAppendOnly:lang.Boolean=_/*** unique key* @p
更多推荐
自定义UpsertStreamTableSink
发布评论