您好:
1. 这个应该是预期内的用法,如果执行起来没有遇到问题应该是Ok的。
2.
窗口的状态会在超过最大时间+最大允许的延迟时间之后被清理。------------------------------------------------------------------
Sender:ゞ野蠻遊戲χ<[email protected]>
Date:2020/07/07 22:32:51
Recipient:user-zh<[email protected]>
Theme:DataStream统计uv问题
大家好!
想问下,现在在用DataStream的api来统计每天的UV,代码如下,有2个使用问题:
1、在使用Tumbling窗口的时候,由于使用窗口跨度是1天(Time.days(1)),只有以一天结束的时候,才能输出一个uv值,
这样时间等待太长了,所以加了一个trigger,每来一条都触发一次窗口,不知道这样的用法没有问题。
2、还有想问下在窗口结束后,里面的state状态会自动释放吗?还是要自己手动设置TTL的。
DataStream<UvPer10Min> uvPer10MinDataStream = userBehaviorSource
.windowAll(TumblingProcessingTimeWindows.of(Time.days(1L)))
.trigger(CountTrigger.of(1L))
.evictor(CountEvictor.of(0L, true))
.process(new ProcessAllWindowFunction<UserBehavior, UvPer10Min,
TimeWindow>() {
private transient MapState<String, String> userIdState;
private transient ValueState<Long> uvCountState;
谢谢!
Jiazhi