Flink CEP: Как проверить, не появилось ли следующее событие в заданном временном окне?

Я пытаюсь выяснить, как реализовать следующую логику с потоком событий:

  1. Первое событие появляется в заданном временном окне (30 с)
  2. Второе событие, связанное с первым (по какому-то свойству) не появилось в заданном временном окне
  3. Создать новое событие ошибки

В настоящее время я реализовал "противоположную" реализацию, которая была довольно простой:

stream.begin('first').where({conditions}).next('second').where({conditions}).within(Time.seconds(30))

person jurek    schedule 20.01.2017    source источник


Ответы (1)


Можно использовать PatternTimeoutFunction для генерации новых событий, когда события не получены во временном окне. Подробнее об этом типе функций и о том, как его использовать, можно узнать здесь: https://ci.apache.org/projects/flink/flink-docs-release-1.3/api/java/org/apache/flink/cep/PatternTimeoutFunction.html.

person Alex Chermenin    schedule 17.07.2017