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



我想构建 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 秒"或"SIZE 3600 秒"时,它会从流的开头还是从最新的开始启动窗口?

窗口的开始日期和时间基于 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/

最新更新