State概念

Flink state是一个非常重要的概念,但却有点抽象难以理解,State是个什么玩意?

​ 继续要和流式数据扯上了。state状态指的就是进行每一个operator的中间结果存储。还不懂?举一个例子

  • 无状态:假设有一个数组[a,b,c],对数据进行+1操作,结果为[a+1,b+1,c+1],b输出的结果受A的影响吗?显然是不受,也就是多次重放值是一样的
  • 有状态的,其实就是数据之间是有关系的,算子作用在数据上,输出的结果和之前的状态有关。

State存储方式

在上文中说到,state状态需要存储,所以问题来了,存哪呢?如果把state当作数据,数据会存在哪呢?内存,磁盘,无非是这几种,state也不能除外

  • 内存存储 MemoryStateBackend,一图胜千言,直接贴Flink社区文章图啦

小白学习Flink系列–第三篇(概念)之state

  • 文件系统上存储 FsStateBackend

小白学习Flink系列–第三篇(概念)之state

  • key,vvalue内存存储 RocksDBStateBackend

    小白学习Flink系列–第三篇(概念)之state

State种类

分为Keyed State和Operator State

  • Keyed State

    小白学习Flink系列–第三篇(概念)之state

小白学习Flink系列–第三篇(概念)之state

  • Operator State

  • 区别

    小白学习Flink系列–第三篇(概念)之state

    State管理

    ​ 为什么需要管理state呢?直接一股脑放内存不香吗?no no no ,内存做不到呀,容量小,断电就无法恢复呀。

    ​ 对于实时计算来说,特点是实时 7*24 h ,这数据量就够大了,而且得高可用呀,不然挂了怎么办?干等吗,于是就出现了状态管理机制

小白学习Flink系列–第三篇(概念)之state

相关文章:

  • 2022-01-07
  • 2021-07-13
  • 2021-07-31
  • 2021-09-24
  • 2022-12-23
  • 2021-09-28
  • 2022-02-12
猜你喜欢
  • 2021-11-03
  • 2021-08-15
  • 2021-04-21
  • 2021-08-27
  • 2021-05-29
  • 2021-10-09
  • 2021-12-13
相关资源
相似解决方案