代码之家  ›  专栏  ›  技术社区  ›  xmar

卡夫卡:添加一批旧数据

  •  1
  • xmar  · 技术社区  · 6 年前

    对基于时间的事件使用Kafka,对Kafka流中的事件使用窗口分组(会话)。

    我们应该如何处理来自不同来源(由旧数据组成)的一组数据的到达?

    比如说,你正在为一个客户做网络分析。 在事件主题中从客户端接收事件数据,在该主题中接收所有事件类型。 由于某些原因,您没有从客户机收到订单(购买)数据,您只收到了用于生成会话的页面视图数据。 一段时间后,您会收到一批基于时间的订单,例如去年的订单,因此您可以将它们与会话匹配(关联哪些会话与哪个订单相关)。 此过程的输出被发送到“订单”、“页面视图”、“会话”等主题。

    但是,如果只是将它们添加到主题的(末尾),它们将是“无序的”,因此即使重新计算数据,结果也不会正确。

    这有点像流媒体 无序事件 问题,但允许更长的时间(例如一年)

    一种可能是“删除并重写”:在压缩主题上,从该客户端删除所有数据,然后按顺序重新发送,然后为该客户端启动重新计算。

    但那很麻烦。 有没有更好的方法来处理这个问题?

    0 回复  |  直到 6 年前