首页 > 解决方案 > 通过在 ksqlDB 中翻转窗口生成零计数的可能方法

问题描述

对于翻滚的窗口查询,例如

CREATE TABLE rating_count
    WITH (kafka_topic='rating_count') AS
    SELECT title,
           COUNT(*) AS rating_count,
           TIMESTAMPTOSTRING(window_start, 'yyy-MM-dd HH:mm:ss', 'UTC') as window_start,
           TIMESTAMPTOSTRING(window_end, 'yyy-MM-dd HH:mm:ss', 'UTC') as window_end
    FROM ratings
    WINDOW TUMBLING (SIZE 1 HOURS)
    GROUP BY title
    EMIT FINAL;

如果没有在窗口边界内摄取的组的记录,是否有任何方法可以为某些组(此处为标题)生成零计数?

换句话说,我想知道每次触发窗口聚合时是否可以生成固定数量的组的计数。例如

+--------------------+--------------------+--------------------+--------------------+
|TITLE               |RATING_COUNT        |WINDOW_START        |WINDOW_END          |
+--------------------+--------------------+--------------------+--------------------+
|Die Hard            |0                   |2019-07-09 00:00:00 |2019-07-09 01:00:00 |
|Tree of Life        |2                   |2019-07-09 00:00:00 |2019-07-09 01:00:00 |
|A Walk in the Clouds|1                   |2019-07-09 00:00:00 |2019-07-09 01:00:00 |
|Die Hard            |1                   |2019-07-09 01:00:00 |2019-07-09 02:00:00 |
|Tree of Life        |0                   |2019-07-09 01:00:00 |2019-07-09 02:00:00 |
|A Walk in the Clouds|2                   |2019-07-09 01:00:00 |2019-07-09 02:00:00 |
|Die Hard            |1                   |2019-07-09 02:00:00 |2019-07-09 03:00:00 |
|Tree of Life        |2                   |2019-07-09 02:00:00 |2019-07-09 03:00:00 |
|A Walk in the Clouds|0                   |2019-07-09 02:00:00 |2019-07-09 03:00:00 |
+-----------------------------------------------------------------------------------+

标签: apache-kafkaksqldb

解决方案


推荐阅读