4

我有以下代码可以根据事件时间每小时汇总数据

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 参数?

注意:这个问题不是关于为什么不关闭 TimeWindow,而是在没有新数据的情况下如何关闭它

4

0 回答 0