使用 flink-cep 模式匹配,无需所有 Flink 环境



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

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

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

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

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

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

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

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

如果您有疑问,请告诉我

最新更新