Flink处理函数实战之一:深入了解ProcessFunction的状态(Flink-1

本文通过分析Flink官方ProcessFunction的demo,探讨如何理解processElement方法中state.value()和state.update(current)的运作机制。文章详细跟踪了源码,揭示了KeyedProcessFunction如何根据key维护状态,并解释了状态更新和获取的原理。
摘要由CSDN通过智能技术生成

官方demo

为了学习ProcessFunction就去看官方demo,地址是:https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/stream/operators/process_function.html ,简单说说这个demo的功能:

  1. 数据源在不间断的产生单词,每个单词对应一个Tuple2<String,String>的实例;

  2. 数据源被keyBy方法转成KeyedStream,key是Tuple2实例的f0字段;

  3. 一个KeyedProcessFunction的子类CountWithTimeoutFunction,被用来处理KeyedStream的每个元素,处理的逻辑:为每个key维护一个状态,状态的内容是这个key的出现次数和最后一次出现时间;

  4. 如果那个key连续一分钟没有出现,KeyedProcessFunction就向下游发送这个元素;

以上就是官方demo的功能,本来是想通过demo来加深认识,结果看完不但没有明白,反而更晕了,下图是我对demo代码的疑惑:

在这里插入图片描述

从上图可见我的疑惑,这里再复述一下:

5. 入参value是Tuple2类型,假设其f0字段等于aaa,那么processElem

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值