开发者社区> 问答> 正文

关于Window ProcessFunction数据丢失问题

最近使用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);

        }

    }

})*来自志愿者整理的flink邮件归档

展开
收起
EXCEED 2021-12-08 11:31:22 590 0
1 条回答
写回答
取消 提交回答
  • window算子会丢弃迟到数据,可以看看是不是这个原因。如果是的话,可以调整一下watermark生成策略,适当增加点延迟,可以看一下:BoundedOutOfOrdernessTimestampExtractor *来自志愿者整理的flink邮件归档

    2021-12-08 14:23:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载