ksql:根据时间戳创建表并过滤今天的数据

时间:2017-11-20 07:09:11

标签: apache-kafka ksql

我对KSQL很陌生,只是想知道如何提取今天的聚合数据?说我有以下架构的计数数据流:

Field     | Type
-----------------------------
 ROWTIME   | BIGINT
 ROWKEY    | VARCHAR(STRING)
 TS        | BIGINT
 COUNT     | BIGINT

如何创建一个表,该表将输出今天COUNT之和的快照,其中TS是使用KSQL的UNIX时间戳?

1 个答案:

答案 0 :(得分:2)

您可以使用TIMESTAMPTOSTRING udf将TS值更改为所需的日期格式,然后执行总和。这是一种方法:

CREATE STREAM mystream1 AS SELECT TIMESTAMPTOSTRING(TS, 'yyyy-MM-dd') AS TS, COUNT_VAL FROM mystream;

SELECT TS, sum(COUNT_VAL) FROM mystream1 GROUP BY TS;

您可能希望在流中重命名COUNT列,因为它是KSQL中的函数名称。如果要在窗口上执行此操作,也可以添加WINDOW。