我正在阅读ksqldb初学者教程。
我遇到过表查询:
CREATE TABLE pageviews_per_region_per_30secs10secs AS
SELECT regionid,
count(*)
FROM pageviews_enriched
WINDOW HOPPING (SIZE 30 SECONDS, ADVANCE BY 10 SECONDS)
WHERE UCASE(gender)='FEMALE' AND LCASE (regionid) LIKE '%_6'
GROUP BY regionid
EMIT CHANGES;
以下是定义查询:
下面的查询与上面的查询相同,它计算提前10秒的30秒跳跃窗口的计数。
这是否意味着在30秒内取出数据,并延迟10秒?
什么时候使用跳窗?
1条答案
按热度按时间jtjikinw1#
窗口化允许您按时间对记录进行分组。因此,这与查询中的GROUPBY子句类似,并提供了进一步的分组。
跳跃窗口和翻滚窗口之间的区别是聚合的结束时间。使用滚动窗口,您可以按固定的间隔从开始时间(windowstart())到结束时间(windowend())进行分组。一旦结束时间出现,开始时间就再次开始。
对于跳转窗口,开始时间不必等待结束时间来开始下一个窗口,因此窗口可以重叠。翻滚和跳跃窗口的大小相同,聚合的大小或时间长度相同。跳转窗口带来的进步是开始下一次聚合之前的延迟。
所以,举个例子,如果你在区域6聚集女性用户的数量,有一个跳跃窗口,一个聚集数据点,或者女性用户页面视图,可以属于两个窗口。对于滚动窗口,窗口时间段是不同的,并且不重叠,因此每个时间段只计算一次数据点。
在这个文档中有一些很好的图表来显示窗口是如何重叠的。