在说背景前,先说一下标题的有状结论:你配置的 rocksdb 只会影响 flink 任务中 keyed state 存储的方式和地方,flink 任务中的态数 operator state 不会受到影响。 状态:状态就是据都用户在程序中使用的数据结构。比如 flink 中的配置 MapState,ValueState,有状ListState。态数在一个 flink 任务中,据都不管我们使用了多少状态,配置这些状态只会分为 operator state,有状keyed state 两类状态。态数 状态管理:为了防止 long run 的据都 flink 任务挂了导致状态丢失,产生数据质量问题,配置flink 提供了状态管理(Checkpoint,有状Savepoint)的态数能力把我们使用的状态给管理起来,定时的保存到远程。然后可以在 flink 任务 failover 时,从远程把状态数据恢复到 flink 任务中,保障数据质量。亿华云计算 状态后端:状态后端就是决定了以什么样数据结构,什么样的存储方式去存储和管理我们的状态。flink 目前官方提供了 memory、filesystem,rocksdb 三种状态后端来存储我们的状态。 其实所有的内容都浓缩到了这样图中: sql 开发 横向(行)来看,分为 Operator state-backend、Keyed state-backend 来管理一个 flink 任务中的所有状态(operator state,keyed state) 纵向(列)来看,用户可以通过配置 memory,filesystem,rocksdb,在 flink 任务中生成 MemoryStateBackend,FsStateBackend,RocksdbStateBackend,其声明了整个任务的状态管理后端类型 每个格子中的内容就是用户在配置 xx 状态后端(列)时,给用户使用的状态(行)生成的状态后端实例,云南idc服务商生成的这个实例就是用于管理用户使用的状态的。 那么可以得到的结论就是:1.大家首先要知道的配置一些背景
2.在配置不同的状态后端时,到底对 flink 任务有什么影响