实时数据开发|Flink状态类型

根据数据集是否根据Key进行分区,将状态分为Keyed State 和OperatorState(Non-keyed )State两种类型。

(1)Keyeds State

表示和key相关的一种State,只能用于KeyedSteam类型数据集对应的的function和operators之上。Keyed State是operator State的特例,区别在于KeyedState事先按照key对数据集进行子分区,每个Key Sate 仅对应一个 Operator 和 Key 的组合 。由key groups进行管理,当算子发生变化时,自动重新分布KeyedState数据。一个keyed算子实例可能运行一个或多个key groups的keys

( 2 ) Operator State。注意,只和并行的算子实例绑定,和数据元素的key无关,每个算子实例中持有所有数据元素中的一部分状态数据。支持当算子实例并行度发生变化时自动重新分配状态数据。

同时在Flink中Keyed state和 Operator state均具有两种形式:

  • 其中一种为==托管状态(managed state)==形式,由 Fink Runtime 中控制和管理状态数据,并将状态数据转成为内存 Hash tables或 RocksDB的对象存储,然后将这些状态数据通过内部的接口持久化到checkpoints中,任务异常时可以通过这些状态数据恢复任务。
  • 另外一种是原生状态(Raw state)形式,由算子自己管理数据结构,当触发 Checkpoint过程中,Flink并不知道状态数据内部的数据结构,只是将数据转换成bytes数据存储在Checkpoints中,当从Checkpoints恢复任务时,算子自己再反序列化出状态的数据结构
    推荐用户使用 Managed State管理状态数据,因为 Managed State能够更好地支持状态数据的重平衡以及更加完善的内存管理。
相关推荐
数据与人工智能律师6 分钟前
数字资产革命中的信任之锚:RWA法律架构的隐形密码
大数据·网络·人工智能·云计算·区块链
Edingbrugh.南空1 小时前
Flink OceanBase CDC 环境配置与验证
大数据·flink·oceanbase
全星0071 小时前
解锁研发高效密码:全星研发项目管理APQP软件的多维助力
大数据·汽车
时序数据说3 小时前
为什么时序数据库IoTDB选择Java作为开发语言
java·大数据·开发语言·数据库·物联网·时序数据库·iotdb
Codebee3 小时前
OneCode图表配置速查手册
大数据·前端·数据可视化
Jamie201901064 小时前
高档宠物食品对宠物的健康益处有哪些?
大数据·人工智能
陈敬雷-充电了么-CEO兼CTO4 小时前
推荐算法系统系列>推荐数据仓库集市的ETL数据处理
大数据·数据库·数据仓库·数据挖掘·数据分析·etl·推荐算法
小高不会迪斯科5 小时前
MIT 6.824学习心得(1) 浅谈分布式系统概论与MapReduce
大数据·mapreduce
TDengine (老段)5 小时前
使用 StatsD 向 TDengine 写入
java·大数据·数据库·时序数据库·iot·tdengine·涛思数据
Gauss松鼠会6 小时前
GaussDB权限管理:从RBAC到精细化控制的企业级安全实践
大数据·数据库·安全·database·gaussdb