Как открыть окно во Flink, если больше водяных знаков не получено?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как открыть окно во Flink, если больше водяных знаков не получено?

Сообщение Anonymous »


I'm working with Apache Flink for stream processing and I've encountered a scenario that I haven't been able to find a solution for in the documentation or online resources. My scenario involves processing data streams where each element is keyed and windowed for analysis. I'm using event time and tumbling windows for this purpose.

Here's a simplified version of my code setup:

DataStream timestampedStream = myDataStream .assignTimestampsAndWatermarks(WatermarkStrategy .forMonotonousTimestamps() .withTimestampAssigner((event, timestamp) -> event.getTimestamp())); DataStream resultStream = timestampedStream .keyBy(MyEvent::getKey) .window(TumblingEventTimeWindows.of(Time.seconds(5))) .apply(new MyWindowFunction()); My issue arises when a key receives data for a window (e.g., 0-5s), but then receives no further data or watermarks. In such cases, it seems that the window never triggers, potentially leaving data unprocessed indefinitely.

What I'm looking for is a way to ensure that these windows can trigger and complete their computation, even if no new watermarks are generated for their specific key. This could involve setting some form of timeout or employing a custom trigger mechanism, but I haven't been able to figure out how to implement this in Flink.

Is there a recommended approach for handling such scenarios where a window needs to be triggered after a period of inactivity or no new watermarks for a specific key?

I've considered custom triggers but am unsure how to implement this specific requirement. Any suggestions or examples would be greatly appreciated. Thank you!


Источник: https://stackoverflow.com/questions/781 ... e-received
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»