开发者社区 问答 正文

关于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 594 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • window算子会丢弃迟到数据,可以看看是不是这个原因。如果是的话,可以调整一下watermark生成策略,适当增加点延迟,可以看一下:BoundedOutOfOrdernessTimestampExtractor *来自志愿者整理的flink邮件归档

    2021-12-08 14:23:31 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论