Flink DataStream 处理函数 ProcessFunction 和 KeyedProcessFunction
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink DataStream 处理函数 ProcessFunction 和 KeyedProcessFunction相关的知识,希望对你有一定的参考价值。
传送门:Flink 系统性学习笔记
1. 处理函数
在学习 ProcessFunction 之前,我们先来回顾一下 Flink 的抽象级别。Flink 为我们提供了不同级别的抽象层次来开发流处理和批处理应用程序:
在最底层有状态流处理中没有定义任何具体的算子(比如 map,filter,或者 window),而是提供一个统一的处理操作。它是所有转换算子的一个概括性的表达,可以自定义处理逻辑,所以这一层接口就被叫作处理函数。
我们之前学习的转换算子,一般只是针对某种具体操作来定义的,能够拿到的信息比较有限。比如 map 算子,我们实现的 MapFunction 中,只能获取到当前的数据,定义它转换之后的形式;而像窗口聚合这样的复杂操作,AggregateFunction 中除数据外,还可以获取到当前的状态(以累加器 Accumulator 形式出现)。但是无论哪种算子,如果我们想要访问事件的时间戳,或者当前的 Watermark 信息,一般很难做到。跟时间相关的操作,目前我们一般会用窗口来处理。而在很多应用需求中&#x
以上是关于Flink DataStream 处理函数 ProcessFunction 和 KeyedProcessFunction的主要内容,如果未能解决你的问题,请参考以下文章
Flink DataStream 类型系统 TypeInformation
Flink DataStream 侧输出流 Side Output
Flink DataStream 侧输出流 Side Output
4.Flink入门案例前置说明准备环境代码实现-DataSet-了解DataStream--匿名内部类--处理批DataStream-匿名内部类-处理流LambdaOn-Yarn-掌握