Kafka:添加大量旧数据

时间:2018-08-10 09:28:47

标签: apache-kafka apache-kafka-streams stream-processing

将Kafka用于基于时间的事件,并使用窗口对Kafka Streams中的事件(会话)进行分组。

我们应该如何处理来自不同数据源的一组数据,这些数据是由旧数据组成的?

例如,您正在为客户端进行Web分析。 您在事件主题中从客户端接收事件数据,在该主题中接收所有事件类型。 由于某些原因,您没有从客户端接收到订单(购买)数据,因此仅接收了用于构建会话的综合浏览量数据。 一段时间后,您会收到一批基于时间的订单,例如从去年开始,因此您可以将它们与会话进行匹配(关联哪些会话与哪个订单相关)。 此过程的输出发送到“订单”,“网页浏览”,“会话”等主题。

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

这在某种程度上类似于流式传输乱序事件问题,但是允许更长的时间(例如一年)

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

但这很麻烦。 有没有更好的方法来解决这个问题?

0 个答案:

没有答案