我想知道是否有可能创造一个 WindowAssigner
类似于:
EventTimeSessionWindows.withGap(Time.seconds(1L))
但我不希望窗口在每个元素的事件时间中保持增长。我希望在接收到的第一个元素(对于该键)处定义窗口的开头,并在1秒后正好结束,无论在那一秒中有多少个元素到达。
所以它可能看起来像这样假设:
EventTimeSessionWindows.withMax(Time.seconds(1L))
谢谢!
我想知道是否有可能创造一个 WindowAssigner
类似于:
EventTimeSessionWindows.withGap(Time.seconds(1L))
但我不希望窗口在每个元素的事件时间中保持增长。我希望在接收到的第一个元素(对于该键)处定义窗口的开头,并在1秒后正好结束,无论在那一秒中有多少个元素到达。
所以它可能看起来像这样假设:
EventTimeSessionWindows.withMax(Time.seconds(1L))
谢谢!
1条答案
按热度按时间fdx2calv1#
这个用例没有内置的窗口。
但是,您可以使用
GlobalWindow
,它收集所有传入元素,以及Trigger
当接收到一个元素而窗口为空时,即第一个元素或清除窗口后的第一个元素时,注册一个计时器。窗口收集新元素,直到计时器启动。此时,将计算并清除窗口。