ValueState
文档说明:partitioned single-value state
。ReducingState
文档说明:combined using a reduce function
。AggregatingState
文档说明:eagerly pre-aggregated
。ValueState
扩展了State
,而ReducingState
和AggregatingState
都扩展了MergingState
。MergingState
吗?答案 0 :(得分:1)
Fabian Hueske回答了我关于不久前(2018年5月6日)合并AggregateFunctions的问题。他说:
在DataStream作业中(我知道)调用merge()的唯一情况是会话窗口合并时。 例如,当您定义一个间隔为30分钟的会话窗口并收到以下记录时 R1,12:00:00 R2,12:05:00 R3,12:40:00 R4,12:20:00
在这种情况下,Flink R1将创建一个新窗口W1,R2将分配给W1,R3>创建一个新窗口W2,R4连接并合并W1和W2。
我认为您对其他问题的部分回答是ValueState
是通用(键)状态。因此,当您实现通用功能时,而不是聚合器或归约器(带有组合器)时,就会使用它。