在没有所有 Flink 环境的情况下使用 flink-cep 模式匹配

Using flink-cep pattern matching without all Flink enviroment

如标题:是否可以只使用 flink 模式匹配而无需整个其他 flink 环境?

Flink CEP 库不打算在 Flink 之外使用,因此不可能开箱即用。

但是底层自动机不依赖于任何Flink代码,所以你可以自己提取它。有趣的 类 将是 NFANFACompiler.

我猜你问这个问题是因为你试图解决的问题可能有一些内存要求,或者你想在模式 class 中执行一些更改。

  1. 如果您有内存问题,您可以继续使用 Esper 或 Siddhi CEP 引擎,因为它们不像 Flink 那样具有依赖性。

  2. 对于第二种情况,即您想对模式文件进行一些更改或查看查询处理的工作原理,那么您应该使用@Dawid 指出的NFA class。这是因为 CEP 模式匹配基本上是通过将查询树解析为非确定性有限自动机来工作的,它在叶节点处接收输入流,并使用每个级别的运算符将流值和过滤器值相关联,将其发送到上层运算符以进行处理过滤等。在此树的根部接收最终值。

如果您要与低级和基本的 CEP 引擎交互,我特别发现 SASE 引擎很有帮助。 link SASE 论文是 https://arxiv.org/ftp/cs/papers/0612/0612128.pdf

您可以查看 NFA 文件的代码以获得更多理解https://github.com/haopeng/sase/tree/master/src/edu/umass/cs/sase/query

Please let me know if you have some query