回复:关于水位线Watermark的理解

classic Classic list List threaded Threaded
2 messages Options
smq
Reply | Threaded
Open this post in threaded view
|

回复:关于水位线Watermark的理解

smq
恩恩,我是刚接触flink不久,所以很多地方没有很清楚,谢谢指点


---原始邮件---
发件人: &quot;tison&quot;<[hidden email]&gt;
发送时间: 2020年5月24日(周日) 晚上10:10
收件人: &quot;user-zh&quot;<[hidden email]&gt;;
主题: Re: 关于水位线Watermark的理解


整体没啥问题,但是我看你说【假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59】,这个 Watermark 跟
allowedLateness 没啥关系哈,是独立的逻辑。

文档层面你可以看看[1],源码你可以看看[2]里面检索 allowedLateness

Best,
tison.

[1]
https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/windows.html#allowed-lateness
[2]
https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperator.java



Benchao Li <[hidden email]&gt; 于2020年5月24日周日 下午9:56写道:

&gt; Hi,
&gt; 你理解的是正确的,进入哪个窗口完全看事件时间,窗口什么时候trigger,是看watermark。
&gt;
&gt; smq <[hidden email]&gt; 于2020年5月24日周日 下午9:46写道:
&gt;
&gt; &gt;
&gt; &gt;
&gt; 使用时间时间窗口处理关于数据延迟,加入允许延迟时间为1min,窗口大小是10min,那么在12:00-12:10这个窗口中,如果事件时间是在12:09:50这个数据在12:10:50这个数据到达,并且此时水位线刚好在12:09:50,那么这个延迟数据可以被处理,这个可以理解。
&gt; &gt;
&gt; &gt;
&gt; 但是,假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59,这个数据能进入12:00-12:10这个窗口被处理吗。按道理来说应该被正确处理。那么这样的话,进入窗口是按照事件时间,触发是按照水印时间。不知道这么理解对不对,这个问题想了很久。
&gt;
&gt;
&gt;
&gt; --
&gt;
&gt; Best,
&gt; Benchao Li
&gt;
Reply | Threaded
Open this post in threaded view
|

Re: 关于水位线Watermark的理解

tison
最近刚好看到张俊老师的 Flink 分享 [1],这个里面对你想了解的部分介绍得很详细,可以结合阅读(x)

Best,
tison.

[1] https://files.alicdn.com/tpsservice/73a1f1c404d2a658585cf4f4d86ef776.pdf


smq <[hidden email]> 于2020年5月24日周日 下午10:25写道:

> 恩恩,我是刚接触flink不久,所以很多地方没有很清楚,谢谢指点
>
>
> ---原始邮件---
> 发件人: &quot;tison&quot;<[hidden email]&gt;
> 发送时间: 2020年5月24日(周日) 晚上10:10
> 收件人: &quot;user-zh&quot;<[hidden email]&gt;;
> 主题: Re: 关于水位线Watermark的理解
>
>
> 整体没啥问题,但是我看你说【假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59】,这个 Watermark 跟
> allowedLateness 没啥关系哈,是独立的逻辑。
>
> 文档层面你可以看看[1],源码你可以看看[2]里面检索 allowedLateness
>
> Best,
> tison.
>
> [1]
>
> https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/windows.html#allowed-lateness
> [2]
>
> https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperator.java
>
>
>
> Benchao Li <[hidden email]&gt; 于2020年5月24日周日 下午9:56写道:
>
> &gt; Hi,
> &gt; 你理解的是正确的,进入哪个窗口完全看事件时间,窗口什么时候trigger,是看watermark。
> &gt;
> &gt; smq <[hidden email]&gt; 于2020年5月24日周日 下午9:46写道:
> &gt;
> &gt; &gt;
> &gt; &gt;
> &gt;
> 使用时间时间窗口处理关于数据延迟,加入允许延迟时间为1min,窗口大小是10min,那么在12:00-12:10这个窗口中,如果事件时间是在12:09:50这个数据在12:10:50这个数据到达,并且此时水位线刚好在12:09:50,那么这个延迟数据可以被处理,这个可以理解。
> &gt; &gt;
> &gt; &gt;
> &gt;
> 但是,假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59,这个数据能进入12:00-12:10这个窗口被处理吗。按道理来说应该被正确处理。那么这样的话,进入窗口是按照事件时间,触发是按照水印时间。不知道这么理解对不对,这个问题想了很久。
> &gt;
> &gt;
> &gt;
> &gt; --
> &gt;
> &gt; Best,
> &gt; Benchao Li
> &gt;