例如每个客户的用电量。消费数据并非一直都在流式传输,而是每隔一定数量的客户最近12个小时就批量插入。插入后,我们需要汇总每位客户的每小时消费量,如果不存在某些客户的前一小时消费量,则需要找到“截止日期”消费。
答案 0 :(得分:1)
您是否签出了Kafka Streams(https://kafka.apache.org/documentation/streams/)?
它允许您以数据流的形式阅读主题并在时间窗口上进行汇总:
StreamsBuilder builder = new StreamsBuilder();
builder.stream("topic-name")
.groupByKey() // assuming the key is a customer-ID
.windowedBy(TimeWindows.of(Duration.ofHours(1)))
.aggregate(...); // insert business logic here