首页 > TAG信息列表 > ProcessFunction
ProcessFunction API(底层API)
我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。 基于此,DataStream API提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册理解ProcessFunction的Timer逻辑
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等; 本文概览 减少铺垫,长话短说,本文作用是辅助理解Process Function的定时器,仅通过几个关键点把定时器逻辑说清楚,因此文章很短; Flink官方有篇文flink 使用processFunction函数的sideOutPut实现filter操作(java版)
import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.datastream.DataStreamSource; import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator; importFlink之ProcessFunction的使用(1):定时器和状态管理的使用
具体实现代码如下所示: main函数中代码如下: val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment env.setParallelism(1) env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime) val socketStream: DataStream[String] = env.sFlink处理函数实战之二:ProcessFunction类
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等; Flink处理函数实战系列链接 深入了解ProcessFunction的状态操作(Flink-1.10); ProcessFunction; KeyedProcessFunction类; ProcessAllWindowFu#Table API
Table API Flink API总览 如图,Flink 根据使用的便捷性和表达能力的强弱提供了 3 层 API,由上到下,表达能力逐渐增强,比如 processFunction,是最底层的 API,表达能力最强,我们可以用他来操作 state 和 timer 等复杂功能。Datastream API 相对于 processFunction 来说,又进行了进一步封装,Flink之ProcessFunction API(底层API)
一、产生背景 转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。 基于此,DataStream API提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册Flink Time深度解析
Flink 的 API 大体上可以划分为三个层次:处于最底层的 ProcessFunction、中间一层的 DataStream API 和最上层的 SQL/Table API,这三层中的每一层都非常依赖于时间属性。时间属性是流处理中最重要的一个方面,是流处理系统的基石之一,贯穿这三层 API。在 DataStream API 这一层中因为