具有最大总时间的Flink事件时间会话窗口

时间:2017-12-13 17:49:37

标签: scala apache-flink flink-streaming

我想知道是否可以创建类似于以下内容的WindowAssigner

EventTimeSessionWindows.withGap(Time.seconds(1L))

除非我不希望窗口在每个元素的事件时间内保持增长。我希望窗口的开始在收到的第一个元素(对于该键)中定义,并且在1秒后结束,无论在那一秒内有多少元素到达。

所以它可能看起来像假设:

EventTimeSessionWindows.withMax(Time.seconds(1L))

谢谢!

1 个答案:

答案 0 :(得分:1)

此用例没有内置窗口。

但是,您可以使用GlobalWindow来实现此功能,该Trigger收集所有传入元素,以及{{3}}在收到元素且窗口为空时注册计时器,即第一个元素或窗口被清除后的第一个元素。窗口收集新元素,直到计时器触发。此时,窗口将被评估并清除。