Apache flink 在没有窗口的键控流上使用Flink reduce
我读了源代码,将forword的每一个结果减少到下游Apache flink 在没有窗口的键控流上使用Flink reduce,apache-flink,Apache Flink,我读了源代码,将forword的每一个结果减少到下游 我想在没有窗口的情况下按键减少流 stream.keyBy(key) .reduce((a, b) -> { //reduce return a+b; }); 若在窗口上减少,当水印到达时,flink将把元素转发到下游,那个么flink如何确定无窗口减少完成 根据官方文件 减少 键流→ 数据流 键控数据流上的“滚动”减少
我想在没有窗口的情况下按键减少流
stream.keyBy(key)
.reduce((a, b) -> {
//reduce
return a+b;
});
若在窗口上减少,当水印到达时,flink将把元素转发到下游,那个么flink如何确定无窗口减少完成 根据官方文件 减少 键流→ 数据流 键控数据流上的“滚动”减少。结合当前 元素具有上次减小的值,并发出新值 窗口缩小 窗口流→ 数据流 将函数reduce函数应用于窗口,并返回 降低价值 关键区别在于:
- 当在窗口中执行
时,该函数将当前值与窗口值相结合reduce
- 当在KeyedStream中执行
时,该函数将当前值与最新值相结合reduce