当前位置: 首页 > 知识库问答 >
问题:

在Flink中加入2条以上的流

曹建明
2023-03-14

问题#1:我正在研究一个案例场景,在这个场景中,我们需要融合来自多个传感器(例如8个传感器)的数据,并以树的形式将它们连接起来。例如,将[s1、s2、s3和s4]连接起来形成流A,然后将[s5、s6、s7和s8]连接起来形成流B,然后对流A和B执行CEP。如何实现这一点?

问题#2:是否可以对多个流执行CEP,即多个流?。flink 1.3.2 API中明确提到,模式将应用于一个流

DataStream<Event> input = ...
Pattern<Event, ?> pattern = ...

PatternStream<Event> patternStream = CEP.pattern(input, pattern);

如果模式不能应用于多个流,那么Flink CEP将如何与涉及烟流和温度流的经典CEP示例一起工作,以在发生火灾时创建警报。

>

  • 唯一的解决方案是基于时间戳这样的键连接smoke流和temp流吗?

    那么,Flink如何应用于涉及多个传感器的物联网的广泛用例?

  • 共有1个答案

    拓拔辰钊
    2023-03-14

    这取决于您从传感器读取数据的方式,如果数据到达不同的Kafka主题,您可以创建2个flink作业。

    作业1-从传感器主题s1、s2、s3、s4读取并创建流A,然后另一个kafkaconsumer从s5、s6、s7、s8读取并创建流B。然后您将来自这2个流的数据推送到2个中间主题-

    作业2-现在作业2一起从kafka主题stream A和stream B读取并创建一个数据流。

    请记住,当您这样做时,您应该依赖传感器数据的事件时间,而不是摄入时间或处理时间,以获得准确的结果。

    加入2个流后,运行CEP并不难,从前面的问题中可以看出-在Flink CEP中处理多个流

     类似资料:
    • 我有3个不同类型的键控数据流。 我不能使用联合(允许多个数据流),因为类型不同。我希望避免创建包装器,并将所有流转换为相同的类型。

    • 我有一个关于Apache Flink中两个以上流的联合的架构问题。 我们有三个甚至更多的流,它们是某种代码书,我们必须与它们一起丰富主流。代码书流是压缩的Kafka主题。代码本是不会经常更改的东西,例如货币。主流是一个快速的事件流。我们的目标是用代码书丰富主流。 在我看来,有三种可能的方法可以做到这一点: 对所有代码书进行联合,然后将其与主流连接并将丰富数据存储为托管的键控状态(因此当kafka的

    • 我开始使用flink,看看官方教程之一。 据我所知,这个练习的目标是在时间属性上加入两个流。 任务: 此练习的结果是一个Tuple2记录的数据流,每个记录对应一个不同的rideId。您应该忽略结束事件,只在每次骑乘开始时加入事件,并提供相应的票价数据。 生成的流应打印到标准输出。 问:EnrichmentFunction如何连接这两个流aka。它如何知道参加哪个集市和哪个骑行?我希望它能够缓冲多个

    • 我想根据id加入Customer和Address对象。这些是我对kafka stream for Customer主题的输入 和以下fro地址 我使用了间隔连接以及使用TumblingEventTimeWindows和滑动窗口的JoinFunction,但它没有连接客户和地址流。我不明白我在代码中遗漏了什么。

    • 问题内容: 如果我有一个ajax调用(使用回调)取消获取,然后同时运行其他一些代码。当前两个函数都完成时,我将如何拥有第三个函数。我确信通过轮询(setTimeout,然后检查一些变量)很容易,但是我宁愿回调。 可能吗? 问题答案: 您可以为同时运行的AJAX调用和其他代码提供相同的回调,使用变量来跟踪它们的组合进度,然后将它们链接到如下所示的回调:

    • 今天,我想讨论一个关于Flink的概念性话题,而不是一个技术性话题。 在我们的例子中,我们确实有两个Kafka主题A和B,需要连接。连接应该始终包括主题A中的所有元素,以及主题B中的所有新元素。实现这一点有两种可能:始终创建一个新的使用者并从一开始就开始使用主题A,或者在使用后将主题A中的所有元素保持在一个状态内。现在,技术方法是通过连接两个数据流,这很快就向我们展示了它在这个用例中的局限性,因为