Найти последние 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
обратитесь к следующим страницам: