我有两个关于在使用窗口的 KSQL wrt 查询中查询的问题:
假设我有以下聚合查询:
SELECT id, COUNT(*) FROM testtopic_stream WINDOW TUMBLING (SIZE 30 DAYS) GROUP BY id;
上述聚合的结果是仅使用进来的新报价计算得出的,还是实际上会遍历过去 30 天的所有数据,然后执行聚合?
- 查询的最大可能窗口大小是多少?我看到我可以设置一个窗口甚至 30 天,并且查询现在似乎工作正常。有推荐的最大窗口大小吗?
我有两个关于在使用窗口的 KSQL wrt 查询中查询的问题:
假设我有以下聚合查询:
SELECT id, COUNT(*) FROM testtopic_stream WINDOW TUMBLING (SIZE 30 DAYS) GROUP BY id;
上述聚合的结果是仅使用进来的新报价计算得出的,还是实际上会遍历过去 30 天的所有数据,然后执行聚合?
这取决于auto.offset.reset
策略。如果将其设置为"earliest"
,则查询将使用来自底层流/主题的所有数据(注意,“全部”实际上是指存储在主题中的所有数据,即,它取决于主题保留设置这将是多少数据)。如果您将配置设置为"latest"
- 默认值 - 查询将仅处理上游生产者在查询启动后写入的数据。
在这两种情况下,窗口的大小都不会影响将要处理的数据。
窗口大小没有限制。你可以选择任何你想要的尺寸。注意:对于翻滚窗口,较小的窗口大小实际上会增加存储需求,而较大的窗口大小会减少存储需求,因为需要并行维护的窗口较少。