我有一个TimeWindowed KTable
stream.table("topicA")
.groupByKey()
.windowedBy(TimeWindows.of(TimeUnit.HOURS.toMillis(1L))
.until(TimeUnit.DAYS.toMillis(1L)))
.reduce((value1, value2) -> value2,
Materialized.as("A-Store"))
现在我在TopicA中放置了4个事件,
key1 Event1 currentTime -90 min
key2 Event2 currentTime -45 min
key1 Event3 currentTime -30 min
key3 Event4 currentTime -15 min
如果我使用以下命令从KTable中获取事件,则不会
fetchAll(System.currentTimeMillis() - TimeUnit.HOURS.toMillis(2),
System.currentTimeMillis())
按预期,我从商店收到了4个事件,其中包括两个key1事件在不同的时间范围内传递...
现在,KTable正常操作模式始终为该键传递最新事件,我该如何应对这种情况?当然,我可以创建一个Map并在其中插入事件,然后重新收集,但这似乎很笨拙。
是否有更好的方法来处理此问题,以便从2个不同的时间窗口收集数据并将其合并?