首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache :增量窗口计算

Apache :增量窗口计算
EN

Stack Overflow用户
提问于 2020-10-28 04:39:31
回答 1查看 236关注 0票数 1

在Apache中使用滑动时间窗口时,窗口中的许多元组/元素将在窗口幻灯片中重新计算。例如,假设一个大小为5秒、幻灯片为1秒的窗口,80%的窗口内容与最后一个窗口相同。

代码语言:javascript
复制
window(SlidingEventTimeWindows.of(Time.seconds(5), Time.seconds(1)))

假设数据流S,其元组由时间戳和整数值组成:、、、、、、、.

假设t1,t2,t3 .表示连续的时间戳,其中t2-t1 =1秒。给定S,具有大小为5秒和幻灯片1秒的窗口的Flink窗口ProcessWindowFunction获得元组,如下所示:

代码语言:javascript
复制
Window1: <t1,12>, <t2,3>, <t3,15>, <t4,7>, <t5,9>
Window2: <t2,3>, <t3,15>, <t4,7>, <t5,9>, <t6,18>
Window3: <t3,15>, <t4,7>, <t5,9>, <t6,18>, <t7,2>
...

虽然我可以使用状态变量来存储上一个重叠窗口计算的结果,但是我找不到一种方法来过滤掉下一个窗口中重叠的元组。

我认为一个解决方案是利用最后一个窗口结束时间戳来忽略当前ProcessWindowFunction,中的计算,但是这样做只会节省一些计算,因为元组已经在ProcessWindowFunction.中了。在到达ProcessWindowFunction之前,有没有办法过滤掉重叠的元组?

EN

回答 1

Stack Overflow用户

发布于 2020-10-28 10:38:14

我不明白眼前的问题是什么:表现?还是只拥有不重叠的元组?所以我会回答这两个问题:

具有不重叠元组的

看来你需要:

代码语言:javascript
复制
window(TumblingEventTimeWindows.of(Time.seconds(1)))

性能

实际上,windows切片重叠,可以保留某些计算/状态。一些研究人员已经开始用"Scotty:用于无序流处理的有效窗口聚合“来解决这个问题。

我相信它确实在弗林克起作用,但作为一个单独的图书馆。我们都在等待一个慈善的灵魂在弗林克合并他们的工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64566540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档