查找最近5分钟的页面浏览量

时间:2018-10-17 10:37:45

标签: apache-kafka ksql

我有一个以page_views为名称的kafka主题,有一个以pageviews为名称的流。现在我想计算最近5分钟浏览的页面。我正在使用ksql。 尝试过

SELECT after->pageview_id FROM pageviews WHERE after->pageview_id >= NOW() - INTERVAL 10 MINUTE;

SELECT AFTER ->pageview_id FROM pageviews WHERE after->pageview_id >= sysdate - 5/(24*60);

但不起作用。这是嵌套的avro模式。

1 个答案:

答案 0 :(得分:3)

您可以使用HOPPING窗口在KSQL中模拟滑动窗口。对于跳跃窗口,您应该指定窗口大小(在这种情况下为5 minutes)和一个提前值,该值指示窗口如何移动,即滑动(例如,每1秒滑动一次)。因此,您可以编写如下查询:

CREATE STREAM foo AS SELECT after->pageview_id AS pv_id FROM pageviews;

CREATE TABLE bar AS SELECT pv_id, COUNT(pv_id) FROM foo WINDOW HOPPING (SIZE 5 MINUTES, ADVANCE BY 1 SECOND) GROUP BY pv_id;

有关HOPPING WINDOW的更多信息,请参见以下页面: