Kafka流(抑制):通过超时关闭时间窗口

x8goxv8g  于 2021-06-04  发布在  Kafka
关注(0)|答案(0)|浏览(400)

我有以下代码根据事件时间每小时聚合一次数据

KStream<Windowed<String>, SomeUserDefinedClass> windowedResults = inputStream
.groupByKey(Grouped.with(Serdes.String(), new SomeUserDefinedSerde<>()))
.windowedBy(TimeWindows.of(Duration.ofMinutes(60)).grace(Duration.ofMinutes(15)))
.aggregate
(
    // do some aggregation
)
.suppress(Suppressed.untilTimeLimit(Duration.ofMinutes(75), Suppressed.BufferConfig.unbounded()))
.toStream();

问题是,如果我没有接收到具有相同密钥的数据,并且时间戳晚于时间限制+宽限期,我将无法关闭时间窗口并发出结果。
我想知道我可以使用什么替代方法来确保窗口关闭,并且在给定的时间过后(不等待同一密钥的任何新数据)发出数据。
是否有一个选项/特性可以使untiltimelimit参数基于实时而不是事件时间?
注意:这个问题不是关于为什么不关闭时间窗口,而是在没有新数据的情况下如何关闭它

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题