????????????keyed ??????????????????????????trigger????????????????????????????????????????????????????
????????????????????????key??????????????????????????????????????????24????????????????????????????????????onElement()????????????????????????????????????????????????????FIRE_AND_PURGE????????????????????????????????????????????????valuestate??????????????????????????onEventTime()????????????????????????????2??????????????????????????
1??????keyby??????????????????????????????????watermark??????????????????????????onEventTime()????????????????????key????????????????????key??????????????????????????????????????????????????????????????????????????????
????????????????????????key??????????????????????????????????????????????????valuestate??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
2????????????????onElement()????????onEventTime()????????????????TriggerResult??????????????????????????????????????????????????????????????????????????
??????
??????????????
class MyTrigger extends Trigger<RateInfo, TimeWindow>
????????????
class MyProcessFunction extends ProcessWindowFunction<RateInfo, String, String,
TimeWindow>
????????
WindowedStream<RateInfo, String, TimeWindow> trigger =
timeStream
.keyBy(new
KeySelector<RateInfo, String>() {
@Override
public
String getKey(RateInfo value) throws Exception {
return value.getId();
}
})
.window(TumblingEventTimeWindows.of(Time.days(1), Time.hours(16)))
.trigger(new
MyTrigger());
SingleOutputStreamOperator<String> resultStream
= trigger.process(new MyProcessFunction());
????????????
-----------------
??????
???? ????
TEL:13737047391
2021??6??11??