很详尽了,非常感谢 @tison !


 
发件人: tison
发送时间: 2021-02-01 11:43
收件人: user-zh
主题: Re: Re: 水印的作用请教
对于 StreamingFileSink 可以查看这两份资料
 
https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/streamfile_sink.html
https://stackoverflow.com/questions/54763160/is-it-possible-that-bucketing-sink-create-bucket-on-event-time
 
默认的,watermark 和 (EventTime) Timestamp 信息会带到 BucketAssigner 实现所需的 Context
里,Flink 没有开箱即用的基于 EventTime 的分桶策略,你需要自己尝试实现。比水印晚的数据,可以自行实现为丢弃或追加到原有分区文件上。
 
对于 SQL 可以查看这份资料
 
https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/connectors/filesystem.html
 
目前看起来开箱的逻辑迟到数据会追加而不是丢弃。有一些相关的配置可以调整 commit 也就是落盘的时机,但不影响落盘的数据。
 
Best,
tison.
 
 
amenhub <amen...@163.com> 于2021年2月1日周一 上午11:07写道:
 
> StreamAPI使用的是StreamingFileSink,SQL就是FileSystem了
>
>
>
>
> 发件人: tison
> 发送时间: 2021-02-01 11:01
> 收件人: user-zh
> 主题: Re: Re: 水印的作用请教
> 请问你使用哪种 SinkConnector 写入 HDFS 呢?
>
> Best,
> tison.
>
>
> amenhub <amen...@163.com> 于2021年2月1日周一 上午10:58写道:
>
> > >>>
> >
> 2.如果我在SQL或StreamAPI中使用ForBoundedOutOfOrderness中基于事件时间设置允许5分钟延迟的水印,那么Kafka各分区最小时间的水印到达后,比水印晚的数据还会写入HDFS(基于事件时间分区)对应的分区中吗?是丢弃?还是不丢弃它写入对应分区后再重新幂等提交该分区?
> > 另外还是比较想了解,当指定水印及延迟的时候,比水印晚的数据,在流写HDFS的时候会怎么处理?
> >
> >
> >
> >
> > 发件人: amenhub
> > 发送时间: 2021-02-01 10:44
> > 收件人: user-zh
> > 主题: Re: Re: 水印的作用请教
> > 谢谢回复!
> >
> > 也就是说如果我利用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 <amen...@163.com> 于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
> > >
> > >
> > >
> > >
> >
>

Reply via email to