首页 > 解决方案 > 如何确保 Kafka 流正在聚合当天的数据

问题描述

我有一个流应用程序,可以计算传入交易的高/低/交易量。我有一个包含交易消息的输入主题。没有与这些消息关联的时间戳。我从输入流创建一个 KGroupedStream 并按股票代码作为键对其进行分组

然后我从 KGroupedStream 创建一个 KTable。我聚合数据并计算高/低/音量并创建一条名为 HiLowMessage 的新消息并将其流式传输到我的输出流。

由于输入主题总是有数据。如何确保仅对今天的数据进行聚合,而不包括昨天的数据?请注意,输入主题消息结构中没有时间戳。

标签: apache-kafkastreamapache-kafka-streams

解决方案


每个 Kafka 消息的元数据字段中都有一个时间戳(即,除了键和值之外)。此时间戳通常由将数据写入主题的上游生产者设置。默认情况下,此记录元数据时间戳在 Kafka Streams 中使用。因此,您可以使用 1-day hopping 进行窗口聚合TimeWindow


推荐阅读