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

ksql: create table and filter today's data based on timestamp

我刚接触KSQL,只是想知道如何提取今天的数据进行聚合?假设我有以下架构的计数数据流:

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

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

您可以使用 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 上执行此操作,您还可以添加 WINDOW。