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