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) 

Ссылка: https://docs.aws.amazon.com/timestream/latest/developerguide/timeseries-specific-constructs.functions.interpolation.html

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