我正在使用Flink汇总来自kafka主题的数据。我正在使用1小时的滚动窗口,并将时间特性设置为“事件时间”。我还使用AscendingTimestampExtractor并根据json中的特定字段值将水印分配给输入。
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
我们可以假设用于水印的JSON字段的时间值类似于系统时钟的时间值。
如果我在下午3:25部署作业,什么时候可以期望flink汇总输出?是下午4:00,下午5:00还是下午3:25下午-4:25,下午4:25下午-5:25 ....
答案 0 :(得分:1)
Flink的窗口与纪元对齐(而不是第一个事件),因此,如果作业是在3:25部署的,则第一个窗口的间隔约为3:00:00到3:59:59.999,并将在此后不久制作(基于水印)。
请注意,您可以将偏移量传递给构造函数,因此如果希望窗口在每小时的10分钟后结束,则可以通过指定
.window(TumblingEventTimeWindows.of(Time.hours(1), Time.minutes(10)))