Flink и динамическое распознавание шаблонов

Мы планируем использовать Flink CEP для обработки большого количества событий по некоторым динамическим шаблонам. Система должна распознавать цепочки событий (иногда сложные цепочки с условиями и группировкой). Шаблоны будут созданы пользователем. Другими словами, мы должны создавать сложные шаблоны, не касаясь кода. Можно ли использовать Apache Flink для решения этой проблемы? Поддерживает ли Filnk динамические шаблоны?


person Rumata Estorsky    schedule 13.10.2016    source источник


Ответы (1)


На данный момент библиотека Flink CEP не поддерживает такую ​​динамическую адаптацию правил. Однако нет фундаментальной причины, препятствующей реализации.

На самом деле, изменения должны быть довольно прямолинейными. На данный момент рабочий процесс выглядит следующим образом: Пользователь указывает шаблон события. Этот шаблон транслируется в NFA, представляющий шаблон (это происходит на стороне клиента). Затем NFA передается оператору CEP, который сериализуется и отправляется в кластер. В кластере оператор CEP и NFA десериализуются, а затем начинают обрабатывать события.

Что можно было бы добавить, так это оператор co-flat map, который получает на один входной канал события, а на другой входной канал шаблоны. Для каждого вновь полученного шаблона либо обновляется существующий NFA (данный функционал отсутствует), либо составляется новый. В последнем случае входящие события будут применяться ко всем сохраненным NFA.

Таким образом, можно реализовать оператор CEP, шаблон которого можно динамически обновлять.

person Till Rohrmann    schedule 13.10.2016
comment
Прошло 3,5 года. Сообщество, Тилль, вы не знаете, изменилось ли что-нибудь таким образом? Если этого нет в ядре Flink, может быть, кто-то разветвил Flink для создания такой функциональности? - person zarzyk; 24.03.2020
comment
К сожалению, сообщество еще не добавило эту функцию. Насколько мне известно, предложенное здесь решение по-прежнему является лучшим подходом к решению этой проблемы. Но вам придется реализовать это самостоятельно. - person Till Rohrmann; 24.03.2020