问题1:我正在研究一个案例场景,在这个场景中,我们需要融合来自多个传感器(例如8个传感器)的数据,并以树的形式将它们连接起来。例如,加入[s1、s2、s3和s4]以形成流a,然后加入[s5、s6、s7和s8]以形成流b,然后对流a和b执行cep。我怎样才能做到这一点?
问题2:是否可以对多个流执行cep,即对多个流执行cep?。Flink1.3.2API中明确提到,模式将应用于一个流
DataStream<Event> input = ...
Pattern<Event, ?> pattern = ...
PatternStream<Event> patternStream = CEP.pattern(input, pattern);
如果模式不能应用于多个流,那么flink cep将如何与cep的经典示例一起工作,该示例涉及烟流和温度流,以在发生火灾时创建警报。
基于时间戳之类的键连接smoke和temp流是唯一的解决方案吗?
那么flink如何应用于涉及多个传感器的物联网的广泛用例呢?
1条答案
按热度按时间pb3skfrl1#
这取决于你是如何从传感器读取数据,如果数据到达不同的Kafka主题,你可以创建2Flink工作。
作业1-从传感器主题s1、s2、s3、s4读取并创建流a,然后另一个kafkaconsumer从s5、s6、s7、s8读取并创建流b。然后将这两个流中的数据推送到2个中间主题->streama,streamb
作业2-现在作业2一起读取kafka主题streama和streamb,并创建一个数据流。
请记住,当您这样做时,您应该依赖传感器数据的事件时间,而不是摄取时间或处理时间,以获得准确的结果。
在加入两个流之后,运行cep并不是很困难,正如您从前面的问题中看到的那样-在flink cep中处理多个流