当前位置: 首页 > article >正文

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

根据数据集是否根据Key进行分区,将状态分为Keyed StateOperatorState(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能够更好地支持状态数据的
    重平衡
    以及更加完善的内存管理。

http://www.kler.cn/a/430586.html

相关文章:

  • nginx-rtmp服务器搭建
  • 【Linux】centos7安装php7.4
  • 瑞吉外卖项目学习笔记(九)套餐列表分页查询、新增套餐、图片上传和下载
  • C++模板:编译时模拟Duck Typing
  • Day7补代码随想录 454.四数相加II 383赎金信 15.三数之和 18.四数之和
  • 使用Docker部署一个Node.js项目
  • 【面试】Spirng的IOC启动流程
  • qmake 生成debug/qmake 生成release
  • Linux 常用命令大全:文件管理、系统信息、网络操作
  • 40分钟学 Go 语言高并发:服务监控与追踪
  • selenium:新窗口切换、关闭
  • 【优选算法篇】:揭开二分查找算法的神秘面纱--数据海洋中的精准定位器
  • 深入探索 JVM:原理、机制与实战
  • docker-compose 安装部署zabbix
  • 2024年发布的多模态大语言模型和它们采用的设计方法
  • RabbitMQ如何保证消息不被重复消费
  • zookeeper 搭建集群
  • 理解 CAP 理论:分布式系统中的权衡与选择 | 常用组件中的CP和AP
  • 48 基于单片机的LCD12864时间调控和串口抱站
  • 阿里云函数计算助力AI大模型快速部署
  • 孚盟云 MailAjax.ashx SQL注入漏洞复现
  • 解决 GitHub 22 端口被占用,改用 443 端口连接
  • 优化移动端H5:常见问题与解决方案
  • easyExcel实现表头批注
  • Plugin [id: ‘flutter‘] was not found in any of the following sources解决方法
  • FPGA 16 ,Verilog中的位宽:深入理解与应用