gpt4 book ai didi

apache-kafka - 同步来自多个数据源的数据

转载 作者:行者123 更新时间:2023-12-04 08:31:20 24 4
gpt4 key购买 nike

我们的团队正在尝试构建一个预测性维护系统,其任务是查看一组事件并预测这些事件是否描述了一组已知异常。

我们处于设计阶段,目前的系统设计如下:

  • 事件可能发生在物联网系统的多个来源(如云平台、边缘设备或任何中间平台)
  • 事件由数据源推送到消息队列系统中(目前我们选择了 Apache Kafka)。
  • 每个数据源都有自己的队列(Kafka Topic)。
  • 从队列中,数据被多个推理引擎(实际上是神经网络)消耗。
  • 根据功能集,推理引擎将订阅
    多个 Kafka 主题和来自这些主题的流数据以连续输出推理。
  • 整体架构遵循单一职责原则,这意味着每个组件都将彼此分离并在单独的 Docker 容器中运行。

  • 问题:

    为了将一组事件归类为异常,这些事件必须发生在同一时间窗口中。例如假设有三个数据源将各自的事件推送到Kafka主题中,但是由于某种原因,数据没有同步。
    因此其中一个推理引擎从每个 kafka 主题中提取最新条目,但提取的数据中的相应事件不属于同一时间窗口(例如 1 小时)。由于数据不同步,这将导致无效的预测。



    我们需要弄清楚如何确保所有三个来源的数据按顺序推送,以便当推理引擎请求来自多个 kakfa 主题的条目(比如最后 100 个条目)时,每个主题中的相应条目属于同一时间窗口?

    最佳答案

    一些建议——

  • 在生产者端处理延迟 -
    使用 batch.size 确保所有三个生产者始终将数据同步发送到 Kafka 主题。和 linger.ms .
    例如。如果 linger.ms 设置为 1000,则所有消息将在 1 秒内发送到 Kafka。
  • 处理消费者端的延迟——
    考虑消费者端的任何流引擎(无论是 Kafka-stream、spark-stream、Flink),都提供了窗口功能来基于键加入/聚合流数据,同时考虑延迟窗口功能。

  • 检查此 - Flink windows 以供引用如何选择正确的窗口类型 link

    关于apache-kafka - 同步来自多个数据源的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56326591/

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