ProcessFunction:Flink最底层API使用案例详解 之前提到的一些算子和函数能够进行一些时间上的操作,但是不能获取算子当前的Processing Time或者是Watermark时间戳,调用起来简单但功能相对受限。如果想获取数据流中Watermark的时间戳,或者在时间上前后穿梭,需要使用ProcessFunction系列函数,它们是Flink体系中最
首先,Flink API的四层抽象级别是指:最底层抽象:ProcessFunction API、核心API:DataStream API、Table API、SQL。这四个抽象级别可以比作烹饪中的不同方式,从简单的速食制作到复杂的大餐烹饪。 1.最底层抽象:ProcessFunction API 这就像是自己准备所有食材,从零开始烹饪。你需要对食材有深入的了解,知道如何处理和搭配它...
*/ public class _19Base_API_Process_Function { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); conf.setInteger("rest.port", 8888); StreamExecutionEnvironment see = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf); see.setParallelism...
监控传感器温度值,将温度值低于30度的数据输出到side output。 importcom.xxx.fink.api.sourceapi.SensorReadingimportorg.apache.flink.streaming.api.functions.ProcessFunctionimportorg.apache.flink.streaming.api.functions.timestamps.BoundedOutOfOrdernessTimestampExtractorimportorg.apache.flink.streaming.api.scala.{D...
如果想获取数据流中Watermark的时间戳,或者在时间上前后穿梭,需要使用ProcessFunction系列函数,它们是Flink体系中最底层的API,提供了对数据流更细粒度的操作权限。Flink SQL是基于这些函数实现的,一些需要高度个性化的业务场景也需要使用这些函数。 目前,这个系列函数主要包括KeyedProcessFunction、ProcessFunction、CoProcess...
在之前总结的文章中有提到过,Flink框架提供了三层API完成流处理任务。至此已经学习了DataStream API ,ProcessFunction API 是Flink中最底层的API,可以访问时间戳、watermark 以及注册定时事件。还可以输出特定的一些事件。、 Process Function 用来构建事件驱动的应用以及实现自定义的业务逻辑,若窗口函数以及转换算子都无法满...
而在一些应用场景下,访问事件的时间戳信息和水印信息极为重要。因此,Flink DataStream API提供了一系列的低级(Low-Level)转换操作,可以访问时间戳、水印以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。这一类的低级API,被称为ProcessFunction。
五、ProcessFunctionAPI(底层API) 1、含义 是flink的底层转换算子,通过这些底层转换算子可以访问数据的时间戳、watermark以及注册定时事件等,还可以输出特定的一些事件,例如超时事件等。 2、组成 ProcessFunction KeyedProcessFunction CoProcessFunction ProcessJoinFunction ...
在之前总结的文章中有提到过,Flink框架提供了三层API完成流处理任务。至此已经学习了DataStream API ,ProcessFunction API 是Flink中最底层的API,可以访问时间戳、watermark 以及注册定时事件。还可以输出特定的一些事件。、 Process Function 用来构建事件驱动的应用以及实现自定义的业务逻辑,若窗口函数以及转换算子都无法满...
如果想要获取这个侧输出流,可以基于处理之后的 DataStream 直接调用.getSideOutput()方法,传入对应的 OutputTag,这个方式与窗口 API 中获取侧输出流是完全一样的。 DataStream<String> stringStream = longStream.getSideOutput(outputTag); 尚硅谷yyds 学习资料来自于尚硅谷:https://www.bilibili.com/video/BV133411s7...