我的Flink伪代码
timeWindow(Time.seconds(10))
.trigger(onElement -> if total size of elements in window > 100KB: FIRE_AND_PURGE or CONTINUE)
.process(print(input_collection))
我有10秒的时间窗口。 我有将窗口内容发送给窗口处理功能的触发器(FIRE_AND_PURGE)(当窗口中所有元素的总大小达到100KB时) 但是在关闭时间窗口10秒后,如果窗口中有80KB的数据,则该剩余数据不会发送到窗口处理功能。我正在丢失80KB的数据...正确的处理方法是,以便当timeWindow在第10秒关闭时,我不会丢失timeWindow中剩余的80KB元素(已编辑)
例如,如果我在10秒内生成了230KB的数据,则将前2个100KB发送到处理功能(由FIRE_AND_PURGE触发),但是当timeWindow在第10秒关闭时,剩余的30KB丢失(编辑)
在时间窗口关闭时将30KB转发给处理功能的正确方法是什么? (已编辑)
答案 0 :(得分:2)
事件或处理时间窗口到期后,您不会像使用正在执行的操作一样触发触发器的onEventTime()
或onProcessingTime()
方法来清除内容在您的onElement()
方法中?