Один вероятный ответ: на самом деле нет поздних событий. Это будет иметь место, если вы не установили характеристику времени на время события. Недостаточно использовать assignTimestampsAndWatermarks
, вам также нужно либо использовать
.window(SlidingEventTimeWindows.of(Time.seconds(5), Time.seconds(1)))
, чтобы заставить Flink использовать временные окна событий, либо установить, что временные окна событий являются значениями по умолчанию через
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
В противном случае timeWindow
фактически создает SlidingProcessingTimeWindow
, и в этом случае ничто не может быть запоздалым.
Другая возможность состоит в том, что ваш водяной знак не работает так, как вы ожидаете, и позволяет всем событиям бытьвовремя.