我想把流SQL放在Kafka中,供Flink用于CEP。这是一个好方法吗?
我知道 Flink 上不允许动态模式定义,我需要应用他们可以在无限事件流上更改的规则。
举个例子;
有一个 UI 供用户为其设备定义规则。想象一下,有一个影子服务(例如 AWS IoT 中心(保持物理设备的状态,而且我认为将每个设备的特定规则放入影子规则中是很好的方法,当影子参与者接收到传感器数据时,它可以发出数据,添加其规则以供 Flink 作为规则引擎使用(通过 kafka(。所以我希望 Flink 执行我的传入传感器数据(及其规则(,这些数据对于每个设备来说可能都是不同的。
我从你的问题中了解到的是,你想用不同的规则处理不同的流。如果是这种情况,您应该将这些设备的流发送到 Kafka 主题。然后在 Flink 中启动多个 CEP 实例。
StreamExecutionEnvironment envrionment1 = StreamExecutionEnvironment.createLocalEnvironment(1);
...
StreamExecutionEnvironment envrionmentn = StreamExecutionEnvironment.createLocalEnvironment(1);
每个实例都应该订阅 Kafka 主题(每个主题代表一个设备(,并在每个 Flink 实例中添加差异模式。