我们有一个应用程序,我们需要根据用户ID对数百万个事件进行分组,并按时间戳对其进行排序。之后,我们将分析这些数据。
为了对大量事件进行分组,我们正在执行一个石英作业,该作业将收集前一小时的所有事件并创建中间文档以进行进一步处理。
由于CPU突发和内存耗尽,我们希望摆脱该石英作业,并使用Kafka流将数据分组到不同的日志或中间文档中。
我们尝试了groupBy()方法,但它们仅用于简单的聚合。当我们尝试将它们附加到某个位置时,我们需要将它们聚合到内存中的某个列表中。
请您提供一个有关如何在数据流式传输时将这么多数据分组为可附加文件或文档的想法。例如,我正在考虑使用Kafka和Kafka Streams的内部功能为用户X,用户Y等创建单独的文档。因为任何数据库上的附加操作对我们来说都是繁琐的。
谢谢。