Apache Flink:当窗口关闭时,如何转发timeWinow中的元素以处理函数?

时间:2019-03-01 13:37:23

标签: apache-flink

我的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转发给处理功能的正确方法是什么? (已编辑)

1 个答案:

答案 0 :(得分:2)

事件或处理时间窗口到期后,您不会像使用正在执行的操作一样触发触发器的onEventTime()onProcessingTime()方法来清除内容在您的onElement()方法中?