大佬们好:
最近使用window+processfunction处理数据,并加了watermark延迟处理。
发现当数据input到达一定峰值后就会出现数据丢失的现象,请问是processfunction处理能力不够导致的吗?
具体数据处理情况可看下图:(如图片无法显示,请打开此链接查看)
https://www.imageoss.com/image/sTn2U
看了一下metric,确实是recordsIn>recordsOut
代码里就是用了一个window然后配processfunction,也没有任何的filter操作。
代码如下:
.window(TumblingEventTimeWindows.of(org.apache.flink.streaming.api.windowing.time.Time.minutes(1)))
.process(new ProcessWindowFunction<Row, Row, Integer, TimeWindow>() {
@Override
public void process(Integer integer, Context context, Iterable<Row> elements, Collector<Row> out) {
for (Row element : elements) {
out.collect(element);
}
}
})