Flink :P催促 进程窗口函数数据



我需要在flink中有一个聚合窗口。 我不能使用聚合函数。因为 getResult 计算需要我的状态访问权限。 所以我尝试将聚合与过程一起使用:

.aggregate( 
new AggregateFunction<Entry, Double, Double>() {
...........
};
, new ProcessWindowFunction<Double,Result,Entry,TimeWindow>() {
@Override
public void process(Entry item,
ProcessWindowFunction<Double, Result, Entry, TimeWindow>.Context ctx,
Iterable<Double> aggInput, Collector<Result> output) throws Exception {

}
}

但是,我仍然只需要 aggInput 的最新值,而且我认为没有理由将 thos 保存在内存中,在我的应用程序中它可以是毫级的数据。 所以我想我是否可以每次清除窗口数据。

AggregateFunctionProcessWindowFunction组合在一起时,只有聚合的最新值保持窗口状态,发送到进程方法的可迭代将仅包含一个预聚合条目。(ReduceFunction的工作方式相同。

换句话说,您正在寻找的优化已经存在。该文档提供了更多详细信息。

相关内容

  • 没有找到相关文章

最新更新