Flink 状态管理
一.简介
函数里所有任务去维护并用来计算结果的数据都属于任务的状态。
流计算分为无状态和有状态两种情况:
无状态计算观察每个独立事件,并根据最后一个事件输出结果。
有状态计算则会基于多个事件输出结果。
状态可以分为两类:
算子状态(operator state)。
键值分区状态(keyed state)。
state 一般指一个具体task/operator的状态。
checkpoint表示一个Flink Job,在一个特定时刻的一份全局状态快照,即包含了所有task/operator的状态。
二.算子状态
算子状态的作用范围限定为算子任务。这意味着由同一并行任务所处理的所有数据都可以访问到相同的状态,状态对于同一任务而言是共享的。算子状态不能由相同或不同算子的另一个任务访问。
Flink为算子状态提供三种基本数据结构:
列表状态(List state):将状态表示