ksql-基于过去1年(365天)的聚合数据

kuarbcqp  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(361)

我想建立sql查询有聚合做了过去1年。在这种情况下,窗口大小为最后365天。有没有可能用ksql来实现呢?像下面的查询

SELECT regionid, regioncity, COUNT(*) FROM pageviews
  WINDOW HOPPING (SIZE 30 SECONDS, ADVANCE BY 10 SECONDS)
  GROUP BY regionid, regioncity ;

我的问题是:当我们指定'size 30 seconds'或'size 3600 seconds'时,它是从流的开始还是从最新开始启动窗口?

vwkv1x7d

vwkv1x7d1#

windows的开始日期和时间基于unix时代。它与源主题上消息的时间戳无关。
超过一天的windows将从unix时代开始,并从那里开始递增。因为没有 YEAR 如果你使用365天,你会发现窗口从12月20日开始(因为闰年)

SELECT TIMESTAMPTOSTRING(WINDOWSTART(),'yyyy-MM-dd HH:mm:ss','Europe/London') AS WINDOW_START_TS, 
             CUSTOMER, 
             SUM(COST) 
        FROM SOURCE_DATA 
                WINDOW TUMBLING (SIZE 365 DAYS) 
        GROUP BY CUSTOMER 
        EMIT CHANGES ;    

+-----------------------+----------+------------+
|WINDOW_START_TS        |CUSTOMER  |KSQL_COL_2  |
+-----------------------+----------+------------+
|2018-12-20 00:00:00    |A         |4           |
|2019-12-20 00:00:00    |A         |2           |

我写在这里:https://rmoff.net/2020/01/09/exploring-ksqldb-window-start-time/

相关问题