谢谢回复!

也就是说如果我利用Flink从Kafka (Select 
*)采集数据到HDFS,不涉及Timer触发逻辑,使用水印的目的就只是为了使用事件时间以及HDFS中基于事件时间进行分区目录创建,对吗?

best,
amenhub



 
发件人: tison
发送时间: 2021-02-01 10:36
收件人: user-zh
主题: Re: 水印的作用请教
取决于你的计算流图,watermark 通常只在以下情况有实际作用
 
True
& cond 1. 使用 EventTime
& cond 2. 流图中有 Timer 触发逻辑,例如 Window 算子或自定义 Timer
 
Best,
tison.
 
 
amenhub <[email protected]> 于2021年2月1日周一 上午10:26写道:
 
> hi everyone,
>
> 最近在使用Stream API或Table API&SQL编写任务,接Kafka数据流写HDFS的时候,关于水印有几个问题想请教社区帮忙答疑。
>
> 在我的理解中,水印本意是容忍事件时间的延迟(乱序程序),在不能容忍的时候触发窗口计算,以达到输出该窗口结果的目的。
> 那么,
> 1.在Kafka入HDFS的过程中,水印的作用具体是什么呢?貌似无窗口计算?
>
> 2.如果我在SQL或StreamAPI中使用ForBoundedOutOfOrderness中基于事件时间设置允许5分钟延迟的水印,那么Kafka各分区最小时间的水印到达后,比水印晚的数据还会写入HDFS(基于事件时间分区)对应的分区中吗?是丢弃?还是不丢弃它写入对应分区后再重新幂等提交该分区?
>
> best,
> amenhub
>
>
>
>

回复