我正在研究一个Flink流式处理器,它可以从Kafka读取事件。这些事件由其中一个字段键控,并且在减少和输出之前应该在一段时间内加窗。我的处理器使用事件时间作为时间特性,因此从它所消耗的事件中读取时间戳。以下是它目前的样子: 我所知道的事件如下: null null
我有10个状态:,平均生命周期为15分钟。状态每秒可以改变两次。理论上可以增加新的国家。 为了每秒接收数据流,我正在考虑使用Flink的时间窗口https://flink.apache.org/news/2015/12/04/induction-windows.html 问题是,我需要具有关于和信息的有状态对象,以便能够在新事件发生时增加/减少计数。 我对flink和流处理是新手,我还没有深入到f
我有一个窗口化的每小时聚合的数据流。 Datastreamds=.....
如果是,请把我放在轨道上实现。
null
我需要将一个由整数组成的立方体拆分为向量,对每个向量执行一些操作(比如简单的加法),然后将向量合并回一个立方体。向量操作应该并行执行(即每个流一个向量)。多维数据集是包含ID的对象。 我可以将多维数据集拆分为向量,并使用多维数据集ID创建一个元组,然后使用keyBy(ID),并为每个多维数据集的向量创建一个分区。然而,似乎我必须使用某个时间单位的窗口来做这件事。应用程序对延迟非常敏感,所以我更喜欢
如果水印在指定的时间间隔内没有被更改(没有事件到达),运行时将不会发出任何水印?另一方面,如果在下一个间隔之前到达了新事件,则将立即发出新的水印,或者将其排队/等待,直到到达下一个setAutoWatermarkInterval间隔。 我很好奇AutoWatermarkInterval的最佳配置是什么(特别是对于高速率源):这个值越小,处理时间和事件时间之间的延迟就越小,但发送水印的带宽开销越大。
当我们进行基于事件时间的聚合时,有一个实时的数据流--某个键的事件的水印会触发其他键的窗口操作吗? id为2的事件是否会触发id为1的12:00-12:10的时间窗口?或者只有在12:20下一个id为1的事件到达时才会发生?
总之,我希望flatMap1()和flatMap2()按照我在事件中设置的时间戳的顺序被调用。但那不是真的。
请检查上面的代码,并告诉我是否做得正确。在事件时间和水印分配之后,我想在process函数中处理流,其中我将为不同的密钥收集10分钟的流数据。
我有一个来自Kafka数据流,它对MyModel中的一个字段有2个可能的值。MyModel是一个pojo,具有从Kafka的消息解析的特定于领域的字段。
我有3个不同类型的键控数据流。 我不能使用联合(允许多个数据流),因为类型不同。我希望避免创建包装器,并将所有流转换为相同的类型。
我正在尝试将Apache Flink用于IoT应用程序。我有一堆设备可以处于几种状态之一。当设备更改状态时,它会发出一条消息,其中包括事件时间戳和它更改到的状态。对于一个设备,可能如下所示: {device_id:1,event_timestamp:9:01,state:STATE_1} 我的问题是:Flink只会为给定的device_id打开一个窗口,如果该窗口有一个事件。这意味着,如果设备超过