当前位置:   article > 正文

Flink SQL中的窗口函数_flinksql窗口函数

flinksql窗口函数

 

概述

Flink窗口函数是flink的重要特性,而Flink SQL API是Flink批流一体的封装,学习明白本节课,是对Flink学习的很大收益!

窗口函数

窗口函数Flink SQL支持基于无限大窗口的聚合(无需在SQL Query中,显式定义任何窗口)以及对一个特定的窗口的聚合。例如,需要统计在过去的1分钟内有多少用户点击了某个的网页,可以通过定义一个窗口来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。

Flink SQL支持的窗口聚合主要是两种:Window聚合和Over聚合。本文档主要为您介绍Window聚合。Window聚合支持Event Time和Processing Time两种时间属性定义窗口。每种时间属性类型支持三种窗口类型:滚动窗口(TUMBLE)、滑动窗口(HOP)和会话窗口(SESSION)。

时间属性

Flink SQL支持以下两种时间属性。实时计算可以基于这两种时间属性对数据进行窗口聚合。

  • Event Time:您提供的事件时间(通常是数据的最原始的创建时间),Event Time一定是您提供在Schema里的数据。
  • Processing Time:对事件进行处理的本地系统时间。

概念性的东西不说了,参考:https://help.aliyun.com/document_detail/62510.html?spm=a2c4g.11186623.6.761.5778319bX6nU52

https://blog.csdn.net/huahuaxiaoshao/article/details/107520208

2 分组窗口

2.1 分组窗口的类型

      SQL查询的分组窗口是通过GROUP BY子句定义的。类似于使用常规GROUP BY语句的查询,窗口分组语句的GROUP BY子句中带有一个窗口函数为每个分组计算出一个结果。以下是批处理和流出理表支持的分组窗口函数:
(1)TUMBLE(time_attr, interval)
      定义一个滚动窗口。滚动窗口把行分配到有固定持续时间(interval)的不重叠的连续窗口。比如,5分钟的滚动窗口以5分钟为间隔对行进行分组。滚动窗口可以定义在事件时间(批处理、流处理)或处理时间(流处理)上。
(2)HOP(time_attr, interval, interval)
      定义一个跳跃窗口(在Table API中成为滑动窗口)。滑动窗口有一个固定的持续时间(第二个interval参数)以及一个滑动的间隔(第一个interval参数)。若滑动间隔小于窗口的持续时间,滑动窗口则会出现重叠;因此,行将会被分配到多个窗口中。比如,一个大小为15分钟的滑动窗口,其滑动间隔为5分钟,将会把每一行数据分配到3个15分钟的窗口中。滑动窗口可以定义咋事件时间(批处理、流处理)或处理时间(流处理)上。
(3)SESSION(time_attr, interval)
      定义一个会话时间窗口。会话时间窗口没有一个固定的持续时间,但是它们的边界会根据interval所定义的不活跃时间所确定;即一个会话时间窗口在定义的间隔时间内没有新纪录出现,该窗口会被关闭。例如时间窗口的间隔时间是30分钟,当其不活跃的时间达到30分钟后,若观测到新的记录,则会启动一个新的会话时间窗口(否则该行数据会被添加到当前的窗口),且若在30分钟内没有观测到新纪录,这个窗口将会被关闭。会话时间窗口可以使用事件时间(批处理、流处理)或处理时间(流处理)。

2.2 时间属性

      在流处理表中的SQL查询中,分组窗口函数的time_attr参数必须引用一个合法的时间属性,且该属性需要指定行的处理时间或事件时间。
对于批处理的SQL查询,分组窗口函数的time_attr参数必须是一个TIMESTAMP类型的属性。

2.3 选择分组窗口的开始和结束时间戳(辅助函数)

(1)返回相对应的滚动、滑动和会话窗口的开始时间(包含边界)

  1. TUMBLE_START(time_attr, interval)
  2. HOP_START(time_attr, interval, interval)
  3. SESSION_START(time_attr, interval)

(2)返回相对应的滚动、滑动和会话窗口的结束时间(包含边界)

  1. TUMBLE_END(time_attr, interval)
  2. HOP_END(time_attr, interval, interval)
  3. SESSION_END(time_attr, interval)

      

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/639035
推荐阅读
相关标签
  

闽ICP备14008679号