我正在阅读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;
以下是定义查询:
下面的查询与上面的查询相同,该查询计算30秒跳转窗口的计数,该窗口前进10秒。
这是否意味着在30秒内取出数据而延迟10秒?
什么时候可以跳窗?
发布于 2020-07-07 21:59:29
窗口允许您通过时间对记录进行分组。因此,这类似于查询中的GROUP BY子句,并提供了进一步的分组。
跳跃窗口和翻滚窗口之间的区别是聚合的结束时间。随着翻滚,您将在固定的时间间隔内从启动时间(WINDOWSTART())到结束时间(WINDOWEND())进行分组。一旦结束时间发生,开始时间就会重新开始。
使用跳转Windows,启动时间不必等待结束时间才能开始下一个窗口,因此窗口可以重叠。滚动窗口和跳转窗口上的大小与聚合的大小或时间长度相同。由在跳转窗口中的前进是在启动下一个聚合之前的延迟。
因此,一个示例,如果您要聚合区域6中的女性用户数量,通过一个跳转窗口、一个聚合数据点或女性用户页面视图,可以属于两个窗口。通过滚动窗口,窗口的时间框架是不同的,并且不重叠,因此每个时间段只计算一次数据点。
在这个文档中有一些很好的图表来显示窗口是如何通过时间重叠或不重叠的。
https://stackoverflow.com/questions/62783298
复制相似问题