Найти последние 5 минут просмотра страниц

У меня есть тема кафки по имени page_views и поток по имени 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);

но не работает. Это вложенная авро схема.

1 ответ

Ты можешь использовать 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 обратитесь к следующим страницам:

Другие вопросы по тегам