У меня есть 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"))
Теперь я помещаю 4 события в TopicA,
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 всегда доставляется последнее событие для ключа, как мне поступитьэтот сценарий?Конечно, я могу создать карту и вставить туда события, а потом вспомнить, но это кажется неуклюжим.
Есть ли лучший способ справиться с этим, собирать данные из двух разных временных окон и объединять их?