Tumbling Windows和Sliding Windows区别与联系

Tumbling Windows和Sliding Windows区别与联系在流系统中通常会经常使用到Windows来统计一定范围的数据,比如按照固定时间、按个数等统计

在流系统中通常会经常使用到Windows来统计一定范围的数据,比如按照固定时间、按个数等统计。一般会存在两种类型的Windows:Tumbling Windows vs Sliding Windows,它们很容易被初学者混淆,那么Tumbling Windows vs Sliding Windows之间到底有啥区别与联系呢?这就是本文将要展开的。

  Tumbling的中文意思是摔跤,翻跟头,翻筋斗;Sliding中文意思是滑动,滑行、滑落;下跌;打滑等意思。中文意思之间不太好区分。

  Tumbling Windows vs Sliding Windows之间最大的区别就是:Tumbling windows是不可能重叠的;而Sliding Windows是存在重叠的。

Tumbling window

  Tumbling window在流数据中进行滚动,这种窗口不存在重叠,也就是说一个events/data只可能出现在一个窗口中,如下图所示:

Tumbling Windows和Sliding Windows区别与联系

 

  从上图可以看出,Tumbling window之间是不存在重叠的。Tumbling window的创建可以基于数量(比如每5个元素构成一个窗口)或者基于时间(如上图每隔10s创建一个窗口)。

Sliding Window

  Sliding Window是在流数据中进行滑动,窗口之间可以重叠,它可以在传入的数据流中进行平滑聚合。Sliding Window如下图所示:

Tumbling Windows和Sliding Windows区别与联系

和Tumbling window一样,我们可以根据需求创建基于数量或者基于时间窗口。

Tumbling Windows vs Sliding Windows区别

我们可以将Tumbling Windows看作是Sliding Windows的特殊情况,当Sliding Windows的滑动时间和窗口时间是一样的时候,这时候Sliding Windows窗口之间就不会重叠,这就是Tumbling Windows。

  在当前的Spark版本中(甚至是Spark 2.0)是没有提供直接创建Tumbling Windows的API,但是我们可以通过将Sliding Windows的window duration和slide duration设置成一样来构成Tumbling Windows。

  而在Flink中存在非常丰富的窗口函数,包括Global Windows、Tumbling Windows、Sliding Windows以及Session Windows等等,这也是Flink功能强大的一面。

今天的文章Tumbling Windows和Sliding Windows区别与联系分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/66955.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注