实时数据开发|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能够更好地支持状态数据的重平衡以及更加完善的内存管理。
相关推荐
互联网江湖1 小时前
快手营收利润双增,可灵AI会不会成为第二个Seedance?
大数据·人工智能
KANGBboy1 小时前
ES 父子索引使用
大数据·elasticsearch·搜索引擎
pp起床1 小时前
Part02:基本概念以及基本要素
大数据·人工智能·算法
Gauss松鼠会1 小时前
【GaussDB】LLVM技术在GaussDB等数据库中的应用
大数据·数据库·架构·数据库开发·gaussdb·llvm
易天ETU2 小时前
100G BIDI 80km ZR4光模块:长距离传输的革新力量
大数据·光模块·易天光通信
Isaac_Necroptics3 小时前
Flink 1.19 Watermark源码分析
flink
七夜zippoe3 小时前
OpenClaw 接入 Discord:从零开始
大数据·人工智能·microsoft·discord·openclaw
北京软秦科技有限公司3 小时前
AI报告审核守护公共卫生安全:IACheck助力公共纺织品卫生检测报告合规与健康保障
大数据·人工智能·安全
商业数据派4 小时前
快手估值重构的“隐藏彩蛋”
大数据·人工智能·重构
新缸中之脑4 小时前
你的智能体技术栈中缺失的层
大数据·人工智能·数据挖掘