aws Timestream: получить пустые интервалы
Я хочу использовать поток времени aws для отслеживания запросов пользователей к нашему API. На первом этапе я просто сохраняю идентификатор пользователя для каждого запроса к API. Для диаграммы я хочу получить количество запросов от пользователя за определенные промежутки времени. Этот SQL получает запросы от пользователя 2 в течение последних двух часов с интервалом в 10 минут:
SELECT user_id, COUNT(user_id) AS n, bin(time, 10m) AS btime
FROM db_api.t_access
WHERE time > ago(2h) AND user_id IN ('2')
GROUP BY user_id, bin(time, 10m)
ORDER BY btime DESC
Результат:
2021-03-06 00:20:00.000000000 user_id:2 Count:1
2021-03-06 00:10:00.000000000 user_id:2 Count:4
2021-03-05 23:40:00.000000000 user_id:2 Count:2
Интервалы без запросов не возвращаются, здесь 00:00 и 23:50. Есть ли способ получить эти пустые интервалы с Count = 0 в SQL? Или мне нужно написать собственный код, чтобы получить все интервалы из набора результатов (я использую aws PHP API)?
1 ответ
Вы можете использовать:
interpolate_fill(timeseries, array[timestamp], double)