小编kae*_*nia的帖子

Apache Flink:多窗口聚合和延迟数据

我们计划将 Apache Flink 与巨大的 IOT 设置一起使用。客户将向我们发送某种结构化的传感器数据(如 sensor_id、sensor_type、sensor_value、timestamp)。我们无法控制每个客户何时发送此数据,很可能是实时发送,但我们无法保证。我们将所有事件存储在 RabbitMQ/Kafka 中。更新:我们可以假设每个传感器的事件按顺序排列。

在开始实施可能的流媒体管道之前,我们对以下挑战的解决方案感兴趣:

  1. 多窗口聚合

我们将所有原始传感器数据存储到 Cassandra 中。此外,我们希望通过sensor_id 在多个时间窗口(例如15 秒、1 分钟、15 分钟、1 小时、1 天)上聚合传感器数据。使用 Flink 流有效实现所需输出的推荐方法是什么?

  1. 很晚的数据

如前所述,我们无法控制when发送的数据。例如,客户可能会遇到网络故障,因此数据可能会延迟到达。推荐的方法是如何处理这个问题的?如果我们只能通过 sensor_id 来保证好的水印(因为每个客户都有自己的时间/问题/失败),我们如何使用水印?我们可以添加一些允许的延迟(比如 6 - 12 小时左右),这是否可以通过内存窗口存储中的 flink 进行管理?在允许迟到之后会发生什么?我们是否应该将真正迟到的数据存储到另一个 kafka 主题中并连续进行批处理?最后,一些客户上传带有他们收集的传感器数据的 csv 文件。这是否也指导批处理方法?

  1. 未来数据

由于传感器配置错误(因为我们无法控制它),当某些客户向我们发送远在未来的数据时,流会发生什么情况?

我们很好奇您的建议。谢谢。

real-time bigdata iot apache-flink flink-streaming

4
推荐指数
1
解决办法
2514
查看次数

标签 统计

apache-flink ×1

bigdata ×1

flink-streaming ×1

iot ×1

real-time ×1