当前位置:   article > 正文

Flink的DataStream状态管理

Flink的DataStream状态管理

目录

键控数据流(Keyed DataStream)

键控状态(Keyed State)

值状态(ValueState)

列表状态(ListState)

归约状态(ReducingState)

聚合状态(AggregatingState)

映射状态(MapState)

状态生存时间(TTL) 

算子状态(Operator State)

广播状态(Broadcast State)

实现CheckpointedFunction 使用算子状态


        对于DataStream来说,状态主要分为如下两类:

(1)键控状态(keyed state)

(2)算子状态(Operator State)

        说键控状态之前,不得不提键控数据流

键控数据流(Keyed DataStream)

        如果希望使用键控状态(keyed state),首先需要在数据流上指定一个键,该键用于对状态(以及流本身中的记录)进行分区。您可以在数据流上使用Java/Scala API中的keyBy(KeySelector)或Python API中的key_by(KeySelector)来指定键。使用该方法后将产生一个键控流KeyedStream,它允许使用键控状态的算子。

        键选择器函数(key selector function)接受一条记录作为输入,并返回该记录的键。键可以是任何类型,并且必须从确定性计算中得到。

        Flink的数据模型不是基于键值对的。因此,不需要将数据集类型物理地打包到键和值中。键是“虚拟的”:它们被定义为实际数据上的函数,以指导分组算子。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/970714
推荐阅读
  

闽ICP备14008679号