hi everyone,

最近在使用Stream API或Table API&SQL编写任务,接Kafka数据流写HDFS的时候,关于水印有几个问题想请教社区帮忙答疑。

在我的理解中,水印本意是容忍事件时间的延迟(乱序程序),在不能容忍的时候触发窗口计算,以达到输出该窗口结果的目的。
那么,
1.在Kafka入HDFS的过程中,水印的作用具体是什么呢?貌似无窗口计算?
2.如果我在SQL或StreamAPI中使用ForBoundedOutOfOrderness中基于事件时间设置允许5分钟延迟的水印,那么Kafka各分区最小时间的水印到达后,比水印晚的数据还会写入HDFS(基于事件时间分区)对应的分区中吗?是丢弃?还是不丢弃它写入对应分区后再重新幂等提交该分区?

best,
amenhub



回复