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

(十六)Flink 状态管理

目录

状态类型

Keyed State

Keyed State 分类

状态有效期(TTL)

过期数据的清理

Operator State

Broadcast State

状态存储

State Backends 分类

设置 State Backend

RocksDB State Backend 详解


在 Flink 架构体系中,状态(State)计算是其重要的特性之一。状态用来保存中间计算结果或缓存数据。比如:

  • 当应用程序搜索某些事件模式时,状态将存储到目前为止遇到的事件序列。
  • 当按分钟/小时/天聚合事件时,状态保存待处理的聚合。
  • 当在数据点流上训练机器学习模型时,状态保存模型参数的当前版本。
  • 当需要管理历史数据时,状态允许有效访问过去发生的事件。

根据数据集是否按照 Key 划分,将状态分为 Keyed State 和 Operator State(Non-keyed State)两种类型。本章我们将从状态的类型、状态有效期、状态存储、状态持久化方面详细进行介绍。

状态类型

Flink 中定义了多种 State,基于不同的数据结构,应用不同的场景。

  • ValueState: 保存一个可以更新和检索的值(每个值都对应到当前的输入数据的 key,因此算子接收到的每个 key 都可能对应一个值)。这个值可以通过 update(T) 进行更新,通过 T value() 进行检索。
  • ListState: 保存一个元素的列表。可以往这个列表中追加数据,并在当前的列表上进行检索。可以通过 add(T) 或者 addAll(List) 进行添加元素,通过 Iterable get() 获得整个列表。还可以通过 update(List) 覆盖当前的列表。
  • ReducingState: 保存一个单值,表示添加到状态的所有值的聚合。接口与 L

http://www.mrgr.cn/news/8123.html

相关文章:

  • k8s-deployment控制器
  • 【C++ Primer Plus习题】4.8
  • C++笔记---内存管理
  • 【深度学习】使用Conda虚拟环境安装多个版本的CUDA和CUDNN方便切换
  • spring揭秘07-aop01-aop基本要素及代理模式3种实现
  • MySQL 中间件 MySQL-Router
  • 鸿蒙端云一体开发、鸿蒙云
  • Spark2.x 入门:从 RDD 转换到 DataFrame
  • Langchain编程中常见Python库讲解【2】
  • 计算机网络
  • python爬虫——入门
  • C++ 进制转换
  • 做空股指期货一手多少钱?
  • SSRF以及CSRF漏洞初步了解
  • python语言day9 正则表达式 和 xpath 解析html
  • 书生浦语大模型实战营:LMDeploy量化部署
  • centos7.9系统安装cloudpods并使用ceph存储(二)
  • 浅谈Kafka(三)
  • Prompt-Tuning 和 LoRA大模型微调方法区别
  • 【OpenGL】xcode+glfw画三角形