跟我们一起
玩转路由器

聊聊flink Table的Group Windows

本文旨在探讨flink table的group windows。

窗口操作可以为Window设置别名,并在groupBy及select中引用该别名。窗口具有start、end和rowtime属性,其中start和rowtime是包含的,而end是排外的。

Tumbling Windows:

Tumbling Windows按照固定窗口大小移动,因此窗口之间不重叠;over方法用于指定窗口大小;窗口大小可以基于事件时间、处理时间或行数来定义。

Sliding Windows:

当滑动间隔小于窗口大小时,Sliding Windows会导致窗口重叠,因此行可能属于多个窗口;over方法用于指定窗口大小,窗口大小可以基于事件时间、处理时间或行数来定义;every方法用于指定滑动间隔。

Session Windows:

Session Windows没有固定的窗口大小,它基于非活动时间的长度来关闭窗口,withGap方法用于指定两个窗口之间的间隔,作为时间间隔;Session Windows只能使用事件时间或处理时间。

Table类提供了window操作,接收Window参数,并创建WindowedTable对象。

WindowedTable类仅提供groupBy操作,groupBy可以接收String类型的参数,也可以接收Expression类型的参数;String类型的参数会被转换为Expression类型,最终调用的是Expression类型的groupBy方法;如果groupBy操作除了窗口之外没有其他属性,则其并行度为1,只会在单个任务上执行;groupBy方法创建WindowGroupedTable对象。

WindowGroupedTable类仅提供select操作,select可以接收String类型的参数,也可以接收Expression类型的参数;String类型的参数会被转换为Expression类型,最终调用的是Expression类型的select方法;select方法创建新的Table对象,其Project操作的子节点为WindowAggregate。

总结:窗口操作可以为Window设置别名,并在groupBy及select中引用该别名。窗口具有start、end和rowtime属性,其中start和rowtime是包含的,而end是排外的。Tumbling Windows按固定窗口大小移动,不重叠;Sliding Windows在滑动间隔小于窗口大小的情况下会重叠;Session Windows基于非活动时间关闭窗口。Table类提供window操作,创建WindowedTable;WindowedTable提供groupBy操作,创建WindowGroupedTable;WindowGroupedTable提供select操作,创建新的Table,其Project操作的子节点为WindowAggregate。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《聊聊flink Table的Group Windows》
文章链接:https://www.lu-you.com/settings/29084.html
本站资源来源于互联网整理,若有图片影像侵权,联系邮箱429682998@qq.com删除,谢谢。

评论 抢沙发

登录

找回密码

注册