Flink TumblingProcessingTimeWindow的最小时间间隔

wswtfjt7  于 12个月前  发布在  Apache
关注(0)|答案(2)|浏览(130)

当我设置TumblingProcessingTimeWindows.of(Time.milliseconds(100)))时,窗口可以正确生成。我在这里打印windowStartTime和windowEndTime:enter image description here
但是,如果我将间隔改为Time.milliseconds(50),则窗口之间的间隔不精确为50ms。我的意思是窗口不连续。结果显示如下:enter image description here
我想知道是否有一个最小的时间间隔TumblingProcessingTimeWindows,我们可以设置在flink中,例如。100ms。如果我想生成一个更短的,我可以通过重写WindowAssigner函数来实现吗?谢谢。

yqyhoc1h

yqyhoc1h1#

如果吞吐量不足以更快地填充网络缓冲区,那么您需要将网络缓冲区超时设置为小于默认值(100 ms)的值,例如,

env.setBufferTimeout(10L); // configure 10 ms buffer timeout

字符串
或者你可以在flink-conf.yaml中设置execution.buffer-timeout.interval,例如,

execution.buffer-timeout.interval: 10


有关详细信息,请参阅文档。

whhtz7ly

whhtz7ly2#

没有最小窗口大小(除了> 0)。但是如果没有收到带有该窗口时间戳的事件,则不会创建任何窗口。所以我的猜测是,对于较短的窗口,您偶尔会得到一个50 ms的时间段,而无论您使用的是什么键值,都没有数据。

相关问题