Managed keyedState中的ValueStateDescriptor与MapStateDescriptor
概述
调研了下,[2]中全是概念
| 使用的描述符 | 参考文献 | 自己整理后的代码 |
| ValueStateDescriptor | [1] | 完整例子 |
| MapStateDescriptor | [3] | 完整例子 |
[4]使用的也是ValueStateDescriptor,但是目前没有跑通
keyby后面的使用的function中可以使用ValueStateDescriptor也可以使用MapStateDescriptor
KeyState只能在KeyedStream上使用
------------------------------------------------------------------------------------------------------------------------------------
Descriptor这个词啥意思呢?
回顾下文件描述符就秒懂了。
扯白了就是要对state文件进行读写操作。
想下我们用open函数去操作txt试图读写的时候,是不是就要涉及到文件描述符?(嗯,如果你常用C语言,也可以粗略把他们理解为指针,虽然指针和文件描述符并不是一个东西,但是他们是可以互相转化的。)
所以flink中这两个描述符(ValueStateDescriptor和MapStateDescriptor)的意思就是要对存储flink的中间状态的文件进行读写操作。
所以变量类型中出现了Descriptor
------------------------------------------------------------------------------------------------------------------------------------
keyby的作用可以参考[5][6],作用是进行逻辑分流,提高任务处理的并发度
------------------------------------------------------------------------------------------------------------------------------------
为什么要费老大劲去使用这些***Descriptor呢?
个人理解:
为了灵活地控制state文件中存储的中间值。
Reference:
[1]「Flink」使用Managed Keyed State实现计数窗口功能
[2]秒懂Flink状态State-深度解读(上)『建议收藏』
[3]Flink状态妙用
[4]Flink利用State进行统计
[5]Keyby data distribution in Apache Flink, Logical or Physical Operator?
[6]Flink中的keyby分流与window操作
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是生活随笔为你收集整理的Managed keyedState中的ValueStateDescriptor与MapStateDescriptor的全部内容,希望文章能够帮你解决所遇到的问题。