iceberg-flink 八:累积窗口使用。(CUMULATE)

一:为什么出现累计窗口(CUMULATE)

在flink中有滑动窗口,滚动窗口,会话窗口。前俩者是公司常用的,他们统计的是某个时间段内的数据。但是我们有些时候,有需求,求每一天,从当天0:00开始,进行计算,例如:双十一,统计当天的销售额度。遇到这种需求,前俩者解决此类问题会比较麻烦。所以在新版本的flink当中,开源了CUMULATE窗口。

二:CUMULATE是什么窗口。

可以将CUMULATE窗口看作是升级版本的滚动窗口。将某一时间段内滚动窗口求出的值进行累加。

三:怎么使用?

SELECT 
    cast(PROCTIME() as timestamp_ltz) as window_end_time,
    manufacturer_name,
    event_id,
    case when state is null then -1 else state end ,
    cast(sum(agg)as string ) as agg
FROM TABLE(CUMULATE(
       TABLE dm_cumulate
       , DESCRIPTOR(ts1)
       , INTERVAL '5' MINUTES
       , INTERVAL '1' DAY(9)))
GROUP BY
          window_end
         ,window_start
         ,manufacturer_name
         ,event_id
         ,case when state is null then -1 else state end

1 . 注意点一

CUMULATE 共有四个参数。
第一个 table 表名。
第二个 时间字段。
第三个 累计的步长。
第四个 累计的时间。
注:第四个参数,如果写1 day,那么就是从今天的0:00到今晚24:00 进行统计,明天开始,又会从新的0:00开始统计。
如果写2,或者更多,意味着从前俩天开始一直统计。在0:00的时候,会继续进行累加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值