apache flink-基于事件时间计算最后一个窗口

svmlkihl  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(672)

我的工作包括:
根据事件时间使用kafka主题中的事件。
计算7天的窗口大小和1天的幻灯片大小。
把结果交给redis。
我有几个问题:
如果它使用最新记录中的kafka事件,则在作业处于活动状态1天后,该作业将关闭窗口并计算7天窗口。问题是作业只有1天的数据,因此结果是错误的。
如果我试着让它使用7天前的时间戳中的kafka事件,那么当作业开始时,它会从第一天开始计算整个窗口,而且花费了很多时间。另外,我只想要最后一个窗口结果,因为这对我来说很重要。
我错过什么了吗?有没有更好的办法?

tf7tbtn2

tf7tbtn21#

flink将时间窗口与时代对齐。因此,如果你有一个小时长的窗口,它们从一个小时的顶端运行到另一个小时的顶端。一天的Windows从午夜开到午夜。同样的原则也适用于七天长的Windows,由于新纪元始于星期四(1970年1月1日),七天长的Windows应该在星期三晚上/星期四早上的午夜关闭。
如果要将窗口移到另一个时间开始,可以向窗口构造函数提供偏移量。

相关问题