gpt4 book ai didi

real-time - Apache 弗林克 : Multiple Window Aggregations and Late Data

转载 作者:行者123 更新时间:2023-12-03 02:11:12 24 4
gpt4 key购买 nike

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

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

  1. 多窗口聚合

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

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

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

    我们对您的建议感到好奇。谢谢。

    最佳答案

    这是很多问题。我会尽力一一回答:

    1. 多窗口聚合

    您可以构建级联窗口运算符的数据流,并在每个窗口后 fork (以发出或进一步处理)结果。

    Input -> window(15 secs) -> window(1 min) -> window(15 min) -> ...
    \-> out_1 \-> out_2 \-> out_3
  • 非常晚的数据
  • 问题似乎在于某些数据可能“非常”晚到达,而不是数据仅按每个键的顺序排列。目前无法使用每个键的水印。因此,所有事件的“逻辑时钟”都是相同的。 Flink 允许的延迟定义了状态等待延迟到达的数据的时间长度。如果数据延迟到达(在水印之后)但在允许的延迟范围内,则相应的状态仍然可用并计算更新。如果事件太迟(晚于允许的迟到),则状态将被丢弃,事件也会被丢弃。允许的高延迟意味着需要保留更多状态。不过,这个问题原则上可以通过横向扩展来解决。进入专用 Kafka 主题的最新数据的处理也可以使用 Flink 完成。此外,周期性文件可以使用流处理器更好地连续处理。批处理解决方案需要处理跨文件的数据(外部化状态处理)、作业调度、错误处理……

  • future 数据
  • 使用 Flink 的水印机制,算子总是转发其最高水印(时间不能倒退),但将其水印计算为从所有输入 channel 接收到的最小水印。因此,除非您有所有 channel 的 future 数据,否则应该没问题。 future 的数据将作为状态放置,并在时间到达“ future ”时进行计算。这意味着,您不会丢失数据,但可能需要等待相当长的时间才能处理数据。

    <小时/>

    根据您的描述,我会考虑将聚合实现为键控流上的有状态 FlatMap 运算符。鉴于每个传感器的数据按顺序到达,您可以在 FlatMap(或一系列 FlatMap,每个时间间隔一个)中进行必要的聚合。

    这里的一个挑战是,您不知道何时关闭聚合,直到您看到晚于聚合间隔的事件。在具有全局有效水印的流中,即使没有接收到特定键的事件,时间也会提前(并且窗口关闭)。

    另一个问题是在传感器被移除时状态的移除。这不会被自动检测到。也许可以使用特殊的标记记录来触发状态清理。

    关于real-time - Apache 弗林克 : Multiple Window Aggregations and Late Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465335/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com