1 State 分类
Operator State
主要用在Source、Sink等没有key分布的位置。
Keyed State
用在keyBy后的KeyedStream里,每个存储状态与一个key想关联。
ValueState
ListState
MapState
ReducingState
AggeratingState
2 State Backend
StateBackend分类
HashMapStateBackend
数据保存在内存中,适合中小数据量的state存储,Object 不可重用;
EmbeddedRocksDBStateBackend
数据保存在当地文件系统中,适合大量数据的state存储,Object可以重用。
CheckpointStorage分类
jobmanager
checkpoint 保存在jobmanager的内存中;
filesystem
checkpoint 保存在分布式文件系统中。
参考:
Stateful Stream Processing | Apache Flink
Working with State | Apache Flink
State Backends | Apache Flink
Flink 之 State - 简书
Checkpoint的核心流程(37) - 墨天轮