热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无论窗口时间如何,都可以在ApacheFlink中组合两个流

如何解决《无论窗口时间如何,都可以在ApacheFlink中组合两个流》经验,为你挑选了1个好方法。

我有两个想要组合的数据流.问题是一个数据流的频率比另一个高得多,并且有时一个流根本没有接收事件.是否可以使用来自一个流的最后一个事件,并在即将到来的每个事件上将其与另一个流连接?

我找到的唯一解决方案是使用join函数,但您必须指定一个公共窗口,您可以在其中应用join函数.当一个流没有接收到任何事件时,这是未达到的窗口.

是否有可能对来自任何一个流或另一个流的每个事件应用join函数并维护上次使用的事件的状态并将此事件用于join函数?

提前感谢任何有用的提示!



1> David Anders..:

根据每个特定用例的要求,在Flink中组合或连接两个流有许多不同的方法.当这样做"手",你想使用弗林克的ConnectedStreams的一个RichCoFlatMapFunctionCoProcessFunction.这些中的任何一个都将允许您保持托管状态(即不经常更新的流中的最后一个元素),并将其与更快的流连接.CoProcessFunction增加了使用定时器的功能,如果相关,则应该使用它来清除过期密钥的状态.

Flink培训网站上有关于实施此类连接的不同方法的练习:Enrichment Joins.有关更简单的示例,请参阅有关" 到期状态"的练习.

每个最近发布的Flink都包含了额外的内置连接功能,因此在这一点上不需要自己动手.有关更多详细信息,请参阅有关使用DataStream API加入的页面,与Table API 连接以及加入SQL.


推荐阅读
author-avatar
大美女雪梨醒目
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有