首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Flink处理函数实战之二:ProcessFunction类

第二个demo 第二个demo是实现旁路输出(Side Outputs),对于一个DataStream来说,可以通过旁路输出将数据输出到其他算子中去,而不影响原有的算子的处理,下面来演示旁路输出: 创建SideOutput...; import java.util.List; public class SideOutput { public static void main(String[] args) throws...> fromCollectionDataStream = env.fromCollection(list); //所有元素都进入mainDataStream,f1字段为奇数的元素进入SideOutput...mainDataStream.print(); sideDataStream.print(); env.execute("processfunction demo : sideoutput...发给主流程算子,再将f1字段为奇数的元素发到旁路输出; 数据源发出元素时,提前把元素的f0、f1、时间戳打印出来,和后面的数据核对是否一致; 将主流程和旁路输出的元素都打印出来,验证处理结果是否符合预期; 执行SideOutput

34210

Flink处理函数实战之一:ProcessFunction类

第二个demo 第二个demo是实现旁路输出(Side Outputs),对于一个DataStream来说,可以通过旁路输出将数据输出到其他算子中去,而不影响原有的算子的处理,下面来演示旁路输出: 创建SideOutput...; import java.util.List; public class SideOutput { public static void main(String[] args) throws...> fromCollectionDataStream = env.fromCollection(list); //所有元素都进入mainDataStream,f1字段为奇数的元素进入SideOutput...mainDataStream.print(); sideDataStream.print(); env.execute("processfunction demo : sideoutput...发给主流程算子,再将f1字段为奇数的元素发到旁路输出; 数据源发出元素时,提前把元素的f0、f1、时间戳打印出来,和后面的数据核对是否一致; 将主流程和旁路输出的元素都打印出来,验证处理结果是否符合预期; 执行SideOutput

95250

Flink的Watermark机制

其解决方案就是 Watermark / allowLateNess / sideOutPut 这一组合拳。 Watermark 的作用是防止 数据乱序 / 指定时间内获取不到全部数据。...**sideOutPut **是最后兜底操作,当指定窗口已经彻底关闭后,就会把所有过期延迟数据放到侧输出流,让用户决定如何处理。...总结起来就是说 Windows -----> Watermark -----> allowLateNess -----> sideOutPut 用Windows把流数据分块处理,用Watermark...用sideOutPut 最后兜底把数据导出到其他地方。 问题2. Watermark应该翻译成水位线 我最初看的一篇文章中把Watermark翻译成“水印”。我当时比较晕。...sideOutPut是最后兜底操作,所有过期延迟数据,指定窗口已经彻底关闭了,就会把数据放到侧输出流。 4. 实例 采用系统时间做Watermark 我们将水位线设置为当前系统时间间-5秒。

5K54

ProcessFunction:Flink最底层API使用案例详解

如果想获取数据流中Watermark的时间戳,或者在时间上前后穿梭,需要使用ProcessFunction系列函数,它们是Flink体系中最底层的API,提供了对数据流更细粒度的操作权限。...Flink SQL是基于这些函数实现的,一些需要高度个性化的业务场景也需要使用这些函数。 ?...状态的介绍可以参考我的文章:Flink状态管理详解,这里我们重点讲解一下的使用ProcessFunction其他几个特色功能。...侧输出SideOutput ProcessFunction的另一大特色功能是可以将一部分数据发送到另外一个流中,而且输出到的两个流数据类型可以不一样,我们通过OutputTag[T]来标记另外一个数据流...DataStream[Stock] = mainStream.getSideOutput(outputTag) 从这个例子中可以看到,KeyedProcessFunction的输出类型是String,而SideOutput

1.6K43

Apache Flink 如何正确处理实时计算场景中的乱序数据

而随着实时推荐、风控等业务的发展,数据处理时延要求越来越高,实时性要求也越来越高,Flink 开始在社区崭露头角。...本文主要介绍 Flink 的时间概念、窗口计算以及 Flink 是如何处理窗口中的乱序数据。...二、Flink 中的时间概念 在 Flink 中主要有三种时间概念: (1)事件产生的时间,叫做 Event Time; (2)数据接入到 Flink 的时间,叫做 Ingestion Time; (3...三、Flink 为什么需要窗口计算 我们知道流式数据集是没有边界的,数据会源源不断的发送到我们的系统中。...此时,可以这个事件放到 sideoutput 队列中,额外逻辑处理。 ? 四、Flink 1.11 版本 中,如何定义水印 所以在 1.11 版本中,重构了水印生成接口。

1.2K10
领券