关于水位线Watermark的理解

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

关于水位线Watermark的理解

smq
使用时间时间窗口处理关于数据延迟,加入允许延迟时间为1min,窗口大小是10min,那么在12:00-12:10这个窗口中,如果事件时间是在12:09:50这个数据在12:10:50这个数据到达,并且此时水位线刚好在12:09:50,那么这个延迟数据可以被处理,这个可以理解。
但是,假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59,这个数据能进入12:00-12:10这个窗口被处理吗。按道理来说应该被正确处理。那么这样的话,进入窗口是按照事件时间,触发是按照水印时间。不知道这么理解对不对,这个问题想了很久。
Reply | Threaded
Open this post in threaded view
|

Re: 关于水位线Watermark的理解

Benchao Li
Hi,
你理解的是正确的,进入哪个窗口完全看事件时间,窗口什么时候trigger,是看watermark。

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

>
> 使用时间时间窗口处理关于数据延迟,加入允许延迟时间为1min,窗口大小是10min,那么在12:00-12:10这个窗口中,如果事件时间是在12:09:50这个数据在12:10:50这个数据到达,并且此时水位线刚好在12:09:50,那么这个延迟数据可以被处理,这个可以理解。
>
> 但是,假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59,这个数据能进入12:00-12:10这个窗口被处理吗。按道理来说应该被正确处理。那么这样的话,进入窗口是按照事件时间,触发是按照水印时间。不知道这么理解对不对,这个问题想了很久。



--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: 关于水位线Watermark的理解

tison
整体没啥问题,但是我看你说【假如第一个数据的事件时间刚好为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]> 于2020年5月24日周日 下午9:56写道:

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

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

smq
In reply to this post by Benchao Li
感谢!


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


Hi,
你理解的是正确的,进入哪个窗口完全看事件时间,窗口什么时候trigger,是看watermark。

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

&gt;
&gt; 使用时间时间窗口处理关于数据延迟,加入允许延迟时间为1min,窗口大小是10min,那么在12:00-12:10这个窗口中,如果事件时间是在12:09:50这个数据在12:10:50这个数据到达,并且此时水位线刚好在12:09:50,那么这个延迟数据可以被处理,这个可以理解。
&gt;
&gt; 但是,假如第一个数据的事件时间刚好为12:00的,那么此时水位线应该在11:59,这个数据能进入12:00-12:10这个窗口被处理吗。按道理来说应该被正确处理。那么这样的话,进入窗口是按照事件时间,触发是按照水印时间。不知道这么理解对不对,这个问题想了很久。



--

Best,
Benchao Li