Использование сопоставления с образцом flink-cep без всякой среды Flink
Как и в заголовке: возможно ли использовать только сопоставление с образцом мерцания без всякой другой среды мерцания?
2 ответа
Библиотека CEP Flink не предназначена для использования за пределами Flink, поэтому она невозможна из коробки.
Однако лежащий в основе автомат не зависит от кода Flink, поэтому вы можете извлечь его самостоятельно. Интересные занятия будут NFA
а также NFACompiler
,
Я предполагаю, что вы задаете этот вопрос, потому что проблема, которую вы пытаетесь решить, может иметь некоторые требования к памяти или вы хотите внести некоторые изменения в класс Pattern.
В случае, если у вас есть проблемы с памятью, вы можете использовать движки Esper или Siddhi CEP, поскольку у них нет зависимостей, как у Flink.
Во втором случае, т. Е. Вы хотите внести некоторые изменения в файл шаблона или посмотреть, как работает обработка запросов, вам следует использовать класс NFA, как указано @Dawid. Это связано с тем, что сопоставление с шаблоном CEP работает в основном путем синтаксического анализа дерева запросов как недетерминированных конечных автоматов, которые получают входные потоки на узлах Leaf и используют операторы на каждом уровне для совместного сопоставления значений потоков и значений фильтра, отправляя его оператору верхнего уровня для фильтрация и тд. Окончательные значения получены в корне этого дерева.
В частности, мне показался полезным механизм SASE, если вы собираетесь взаимодействовать с базовым механизмом CEP низкого уровня. ссылка на статью SASE - https://arxiv.org/ftp/cs/papers/0612/0612128.pdf
Вы можете посмотреть код файла NFA, чтобы получить больше понимания https://github.com/haopeng/sase/tree/master/src/edu/umass/cs/sase/query
Пожалуйста, дайте мне знать, если у вас есть запрос