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

时间:2017-08-25 10:04:15

标签: java apache-flink flink-cep

如标题所示:是否可以仅使用flink模式匹配而不需要整个其他flink环境?

2 个答案:

答案 0 :(得分:1)

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

然而,底层自动机不依赖于任何Flink代码,因此您可以自己提取它。有趣的课程是NFANFACompiler

答案 1 :(得分:0)

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

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

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

  3. 特别是如果你要与低级和基本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

      

    如果您有疑问,请告诉我