apache flink:如何在窗口关闭时转发timewinow中的元素来处理函数?

vbopmzt1  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(204)

我的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转发到处理函数的正确方法是什么((已编辑)

gudnpqoy

gudnpqoy1#

当事件或处理时间窗口到期时,您没有接到对触发器的调用吗 onEventTime() 或者 onProcessingTime() 方法来清除内容,与在 onElement() 方法?

相关问题