Flink CEP:对于不同类型的事件,使用哪种方法加入数据流?

Jam*_*mie 3 apache-flink flink-cep

假设我有2种不同类型的数据流,一种提供天气数据,另一种提供车辆数据,我想使用Flink对数据进行复杂的事件处理。

Flink 1.3.x 中哪种方法是正确的使用方法?我看到了不同的方法,如 Union、Connect、Window Join。基本上我只是想尝试一个简单的 CEP,如下所示:

IF weather is wet AND vehicle speed > 60 
WITHIN the last 10 seconds
THEN raise alert
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ale*_*nin 5

在我看来,有两种方法可以解决这个问题:

  1. 对不同类型的事件使用公共父类型,并union在使用 CEP 库之前通过方法连接两个流。

  2. 您可以使用flink-siddhi包来使用 SiddhiCEP 来处理流,SiddhiCEP 提供了同时描述多个数据流的模式(通过 SiddhiQL)的方法。有关此处的更多信息flink-siddhi: https: //haoch.github.io/flink-siddhi/。源代码可在 GitHub 上获取:https://github.com/haoch/flink-siddhi。SiddhiCEP 和 SiddhiQL 的文档:https://docs.wso2.com/display/CEP420/SiddhiQL+Guide+3.1

希望这些信息会有帮助。