关于flink:flinksql之窗口函数1定时计算

86次阅读

共计 903 个字符,预计需要花费 3 分钟才能阅读完成。

引言

实时工作的解决流程通常分 3 步,前 2 步建设好数据源与数据指标,之后再写数据计算的逻辑,实现对流式数据的剖析解决,如下图所示:

窗口函数

窗口函数 Flink SQL 反对基于无限大窗口的聚合(无需显式定义在 SQL Query 中增加任何的窗口)以及对一个特定的窗口的聚合。

Flink SQL 反对的窗口聚合次要是两种:Window 聚合和 Over 聚合。Window 聚合反对两种工夫属性定义窗口:Event Time 和 Processing Time。每种工夫属性类型反对三种窗口类型:滚动窗口(TUMBLE)、滑动窗口(HOP)和会话窗口(SESSION),本文将以滚动窗口(TUMBLE)为例,具体介绍窗口函数的应用。

-- 滚动窗口【proctime】-- 2019-09-17 10:52:34

-- moxian

-- 滚动窗口(TUMBLE)将每个元素调配到一个指定大小的窗口中。通常滚动窗口有一个固定的大小,并且不会呈现重叠。-- 例如:如果指定了一个 5 分钟大小的滚动窗口,有限流的数据会依据工夫划分成 [0:00 - 0:05)、[0:05, 0:10)、[0:10, 0:15) 等窗口

insert into user_clicks_result

select 

 cast(TIMESTAMPADD(HOUR,8,tumble_start(PROCTIME,interval '1' minute)) as varchar) as window_start, -- 返回窗口的起始工夫, 如窗口区间 [00:00,01:00], 返回 [00:00]

 cast(TIMESTAMPADD(HOUR,8,tumble_end(PROCTIME,interval '1' minute)) as varchar) as window_end, -- 返回窗口的起始工夫, 如窗口区间 [00:00,01:00], 返回 [01:00]

 username,

 cast(count(click_url) as varchar) as clicks

from user_clicks

group by 

 tumble(PROCTIME,interval '1' minute),username --tumble(time-attr, 窗口大小)

正文完
 0