我正在尝试使用Kafka Streams实现窗口化,其中我们从一个主题中获得了JSON格式的大量不同事务。对于每个事务ID,可以有多个提交(以SQL提交来考虑,因此对于不同的事务ID可以有多个事务)。我需要设置一个用于微分批处理的窗口,在该窗口中,我将每5秒钟使用一次数据,然后根据交易ID将数据存储在目录中。
我想知道这里的方法,以及应该使用什么库/函数/类?
答案 0 :(得分:0)
您可以通过多种方式在kafka流中使用Windowing。翻窗的一个例子(如您的情况)
builder.stream("events")
.groupByKey()
.windowedBy(TimeWindows.of(TimeUnit.SECONDS.toMillis(10)))
.count()
.suppress(untilWindowCloses(BufferConfig.unbounded()))
.toStream()
.process(FileSink::new);
您可以在这里找到更多详细信息:
https://kafka.apache.org/20/documentation/streams/developer-guide/dsl-api.html#tumbling-time-windows