我们正在使用Kafka stream的SessionWindows来聚合相关事件的到来.此外,我们还使用until()API 指定窗口的保留时间.
流信息:
会话窗口(不活动时间)为1分钟,保留时间until()为2分钟.我们使用自定义TimestampExtractor来映射事件的时间.
示例:
事件:e1; eventTime:上午10:00:00; 到达时间:下午2点(当天)
活动:e2; eventTime:上午10:00:30;
到达时间下午2:10(同一天)第二次活动的到达时间是e1到达后10分钟,超过保留时间+不活动时间.但是旧的事件e1仍然是聚合的一部分,尽管保留时间为2分钟.
问题:
1)kafka如何使用until()API 清理状态存储?由于指定为参数的保留值是"维持窗口多长时间的下限".什么时候清除窗户?
2)是否有后台线程定期清理状态存储?如果是,那么有没有办法确定窗口被清除的实际时间.
3)在保留时间之后清除窗口数据的任何流配置.