我的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秒的时间窗。我有一个触发器,它将窗口的内容(当窗口中所有元素的总大小达到100kb时)发送到窗口处理函数,但在时间窗口关闭10秒后,如果窗口中有80kb的数据,则剩余的数据不会发送到窗口处理函数。我正在丢失80kb的数据…正确的方法是什么,这样当timewindow在第10秒关闭时,我就不会丢失timewindow中剩余的80kb元素(已编辑)
例如,如果我在10秒内生成230kb的数据,那么前2个100KB会被发送到处理函数(通过fire和purge触发),但是当时间窗口在第10秒关闭时,剩余的30kb会丢失(编辑)
当时间窗口关闭时,将30kb转发到处理函数的正确方法是什么((已编辑)
1条答案
按热度按时间gudnpqoy1#
当事件或处理时间窗口到期时,您没有接到对触发器的调用吗
onEventTime()
或者onProcessingTime()
方法来清除内容,与在onElement()
方法?