1

我有一个名为 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 模式。

4

1 回答 1

3

您可以使用HOPPINGwindow 来模拟 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请参阅以下页面:

于 2018-10-18T20:38:45.083 回答