Flink状态编程之按键分区状态

简介

在实际应用中,我们一般都需要将数据按照某个 key 进行分区,然后再进行计算处理;所
以最为常见的状态类型就是 Keyed State。之前介绍到 keyBy 之后的聚合、窗口计算,算子所
持有的状态,都是 Keyed State。
另外,我们还可以通过富函数类(Rich Function)对转换算子进行扩展、实现自定义功能,
比如 RichMapFunction、RichFilterFunction。在富函数中,我们可以调用.getRuntimeContext()
获取当前的运行时上下文(RuntimeContext),进而获取到访问状态的句柄;这种富函数中自
定义的状态也是 Keyed State。

什么是Key State

按键分区状态(Keyed State)顾名思义,是任务按照键(key)来访问和维护的状态。它
的特点非常鲜明,就是以 key 为作用范围进行隔离。
在进行按键分区之后,具有相同键的所有数据,都会分配到同一个并行子任务中;所以如
果当前任务定义了状态,Flink 就会在当前并行子任务实例中,为每个键值维护一个状态的实
例。于是当前任务就会为分配来的所有数据,按照 key 维护和处理对应的状态。
在底层,Keyed State 类似于一个分布式的映射(map)数据结构,所有的状态会根据 key
保存成键值对(key-value)的形式。这样当一条数据到来时,任务就会自动将状态的访问范围
限定为当

相关推荐

  1. Flink状态编程按键分区状态

    2024-01-25 10:30:02       48 阅读
  2. Flink状态编程

    2024-01-25 10:30:02       47 阅读
  3. Flinkkeyby状态

    2024-01-25 10:30:02       55 阅读
  4. flink 状态

    2024-01-25 10:30:02       22 阅读
  5. Flink-状态后端

    2024-01-25 10:30:02       60 阅读
  6. Flink State 状态管理

    2024-01-25 10:30:02       46 阅读
  7. flink学习-状态管理

    2024-01-25 10:30:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 10:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 10:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 10:30:02       82 阅读
  4. Python语言-面向对象

    2024-01-25 10:30:02       91 阅读

热门阅读

  1. CentOS停止维护后,可以替代的新系统

    2024-01-25 10:30:02       56 阅读
  2. 【前端】尚硅谷Node.js零基础视频教程笔记

    2024-01-25 10:30:02       48 阅读
  3. Vue3 Hooks函数使用及封装

    2024-01-25 10:30:02       52 阅读
  4. 201903CSPT5 317号子任务

    2024-01-25 10:30:02       61 阅读
  5. Android 访问存储卡的三种主要的目录

    2024-01-25 10:30:02       60 阅读
  6. window10 conda activate指令无效的问题

    2024-01-25 10:30:02       52 阅读
  7. 【零碎知识】pip install 与 conda install 的区别

    2024-01-25 10:30:02       57 阅读
  8. 关于视觉3d目标检测学习像素深度的一点理解

    2024-01-25 10:30:02       52 阅读
  9. 【RL】(task4)DDPG算法、TD3算法

    2024-01-25 10:30:02       50 阅读
  10. [笔记]事务简介-springboot

    2024-01-25 10:30:02       50 阅读