• 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    1 . 注意点一

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

  • 相关阅读:
    spring Aop
    术语与定义
    (附源码)spring boot动力电池数据管理系统 毕业设计 301559
    一次企业网丢包故障定位过程
    latex给文字添加阴影--链接中转站
    堪称神级,GitHub上标星157K的Java教程,只讲重点
    含泪整理Redis相关面试题大全
    Linux下快速搭建YApi接口管理平台
    C#访问修饰符
    安全的 PHP 注销脚本
  • 原文地址:https://blog.csdn.net/weixin_43446246/article/details/128002100