Apache Flink 中文用户邮件列表
Search
everywhere
only in this topic
Advanced Search
当数据源产生的速度过快时使用AscendingTimesta
mpExtractor并没有忽略非递增的事件时间数据
Classic
List
Threaded
♦
♦
Locked
2 messages
SSY
Reply
|
Threaded
Open this post in threaded view
♦
♦
|
当数据源产生的速度过快时使用AscendingTimesta
mpExtractor并没有忽略非递增的事件时间数据
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-05-04.png
>
数据源如上图所示,6行3列。这里的逻辑是以第三列为事件事件,采用滚动窗口(10s),统计窗口内最大的第一列的时间(PS:第一列数据这里故意设置成升序),输出为“窗口内最大的第一列时间所在行的第二列的值,窗口内元素的个数”。如果一切正常,我认为结果应该是
2,2
2,5
我是用kafka来发送数据源,当发送速率为100毫秒每条数据时,结果和预期相符,如下图
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-12-18.png
>
但是当发送速率为1毫秒每条数据时,发现红框内的数据也被包含进来了(即第二列是4的那条数据源,本来应该被忽略),如下图
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-13-59.png
>
这样看来数据发送的速率不同也会影响最后的结果吗?请问这是什么原因呢?
部分程序代码如下:
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-17-32.png
>
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-23-58.png
>
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-22-27.png
>
<
http://apache-flink.147419.n8.nabble.com/file/t852/Snipaste_2020-08-12_12-19-14.png
>
--
Sent from:
http://apache-flink.147419.n8.nabble.com/
SSY
Reply
|
Threaded
Open this post in threaded view
♦
♦
|
Re: 当数据源产生的速度过快时使用AscendingTimesta
mpExtractor并没有忽略非递增的事件时间数据
我想明白了,AscendingTimestampExtractor产生的水印是周期水印,当数据源速率过快时,水印还没来得及发送,后面的数据已经进入到算子当中了,所以造成了非递增事件也会被包含在算子中。。在测试环境下,如果换成Punctuated
Watermarks对每个事件发送水印,就没问题了
--
Sent from:
http://apache-flink.147419.n8.nabble.com/
Free forum by Nabble
Edit this page