1、使用ProcessAllWindowFunction 2、使用KeyedProcessFunction 五、侧输出流 六、处理乱序数据,Flink有三重保证 一、基本处理函数 1、处理函数的功能和使用 普通的transform算子,只能获取到当前的数据,或者加上聚合状态 RichFunction,可以有生命周期方法,还可以获取运行时上下文,进行状态编程 ProcessFunction可以获取到time...
ProcessAllWindowFunction(窗口处理); CoProcessFunction(双流处理); 关于ProcessFunction状态的疑惑 学习Flink的ProcessFunction过程中,官方文档中涉及状态处理的时候,不止一次提到只适用于keyed stream的元素,如下图红框所示: 之前写过一些flink应用,keyed stream常用但不是必须用的,所以产生了疑问: 为何只有keyed stream...
目前,这个系列函数主要包括KeyedProcessFunction、ProcessFunction、CoProcessFunction、KeyedCoProcessFunction、ProcessJoinFunction和ProcessWindowFunction等多种函数,这些函数各有侧重,但核心功能比较相似,主要包括两点: 状态:我们可以在这些函数中访问和更新Keyed State 。 定时器(Timer):像定闹钟一样设置定时器,我们可以在...
input.keyBy(x -> x.f0) .countWindow(2) // AggregateFunction 比 ReduceFunction 更加的通用,它有三个参数,一个输入类型(IN),一个累加器(ACC),一个输出类型(OUT) .aggregate(new AggregateFunction<Tuple3<String, String, Integer>, Tuple2<String,Integer>, Tuple2<String,Integer>>() {// 创建累加...
* ProcessWindowFunction<IN, OUT, KEY, W extends Window> * int:Tuple2<String, Integer>:输入的数据类型 * OUT:String: 输出 * KEY:String: 关键字 * TimeWindow: 时间窗口 * */ public class MyPKProcessWindowFunction extends ProcessWindowFunction<Tuple2<String, Integer>,String,String, TimeWindow>...
ProcessJoinFunction BroadcastProcessFunction KeyedBroadcastProcessFunction ProcessWindowFunction ProcessAllWindowFunction 3、调用方式 inputData.flatMap(newMySpliter()) .process(newKeyedProcessFunction<String,Sensor,String>(){}) 所有的Process Function都实现了RichFunction接口,都有open()、close()和getRuntimeCont...
除了KeyedProcessFunction , 另外一大类常用的处理函数 , 就是基于窗口的ProcessWindowFunction 和 ProcessAllWindowFunction 了。 窗口处理函数的使用 进行窗口计算,我们可以直接调用现成的简单聚合方法(sum/max/min),也可以通过调用.reduce()或.aggregate()来自定义一般的增量聚合函数(ReduceFunction/AggregateFucntion);...
ProcessJoinFunction BroadcastProcessFunction KeyedBroadcastProcessFunction ProcessWindowFunction ProcessAllWindowFunction 3、调用方式 inputData.flatMap(newMySpliter()) .process(newKeyedProcessFunction<String,Sensor,String>(){}) 所有的Process Function都实现了RichFunction接口,都有open()、close()和getRuntimeCont...
为了学习ProcessFunction就去看官方demo,地址是:https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/stream/operators/process_function.html,简单说说这个demo的功能: 数据源在不间断的产生单词,每个单词对应一个Tuple2<String,String>的实例; ...
ProcessWindowFunction 一些业务场景,我们需要收集窗口内所有的数据进行计算,例如计算窗口数据的中位数,或者计算窗口数据中出现频率最高的值。这样的需求,使用ReduceFunction和AggregateFunction就无法实现了。这个时候就需要ProcessWindowFunction了。 先来看接口定义 ...