Семантика сопоставления последовательностей в Flink CEP

В Apache JIRA есть проблема: https://issues.apache.org/jira/browse/FLINK-3703. Это позволяет определить, где алгоритм сопоставления должен продолжаться после того, как соответствующая последовательность была найдена, и существует три типа поведения:

  • from first - продолжать сохранять все события для будущих матчей (это текущее поведение)
  • after first - продолжить после первого элемента (удалить первое совпадающее событие и продолжить второе событие)
  • after last - продолжить после последнего элемента (эффективно отбрасывая все элементы совпадающей последовательности)

Например, если у нас есть последовательность событий: A, B, C и шаблон first -> second, мы получим следующие результаты:

  • from first - A -> B, A -> C, B -> C
  • after first - A -> B, B -> C
  • after last - A -> B

Теперь вопрос закрывается комментарием, что все это реализовано в других задачах:

Это было покрыто другими проблемами, включая реализацию Quantifier, skip-till-next и некоторые дополнительные проблемы для непрерывности в шаблонах циклов.

Итак, может ли кто-нибудь сказать мне, как реализовать определенные виды поведения с использованием текущего API библиотеки Flink CEP?


person Alex Chermenin    schedule 23.10.2017    source источник


Ответы (1)


Я нашел ответ на свой вопрос и хотел бы поделиться этой информацией: поведение алгоритма сопоставления должно продолжаться после того, как соответствующая последовательность найдена, можно определить с помощью AfterMatchSkipStrategy. Но работает только с версии 1.4. Что ж, ждем релиза.

Дополнительная информация: https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/libs/cep.html#after-match-skip-strategy.

person Alex Chermenin    schedule 25.10.2017