如标题所示:是否可以只使用flink模式匹配而没有整个其他flink环境?
Flink CEP 库不适合在 Flink 之外使用,因此不可能开箱即用。
然而,底层自动机不依赖于任何 Flink 代码,所以你可以自己提取它。有趣的类将是NFA
和NFACompiler
。
我猜你问这个问题是因为你试图解决的问题可能有一些内存要求,或者你想在模式类中执行一些更改。
-
如果你有内存问题,你可以继续使用 Esper 或 Siddhi CEP 引擎,因为它们不像 Flink 那样有依赖关系。
-
对于第二种情况,即您想对模式文件进行一些更改或查看查询处理的工作原理,那么您应该按照@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
如果您有疑问,请告诉我