BigQUery | Скользящее окно 5 секунд в столбце отметки времени, а затем вычисление KPI - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть данные таким образом в sample_table

user_id    accesses_type   table      start_time
User1       READ           Table1     2019-12-18 00:00:00.090 UTC
User2       READ           Table1     2019-12-18 00:00:01.100 UTC
User2       WRITE          Table1     2019-12-18 00:00:01.520 UTC
User1       READ           Table2     2019-12-18 00:00:04.420 UTC
User1       READ           Table1     2019-12-18 00:00:10.460 UTC
.
.
.

Я пытаюсь найти скользящее окно из текущего start_time плюс 5 секунд от себя, а затем пытаюсь захватить отдельный идентификатор user_id для каждой таблицы в соответствии с типом доступа , Я также хочу напечатать всех пользователей, обращающихся к этой таблице, в виде списка

. В приведенном выше примере ожидаемый результат для первых 4 строк, поскольку они попадают в окно 5 секунд, начиная с 1-й строки, будет следующим:

count_distinct_user_id    table    accesses_type  user_id_list 
      2                   Table1     READ         [User1,User2]
      1                   Table1     WRITE        [User2]
      1                   Table2     READ         [User1]

Мой запрос выглядит примерно так: select count(distinct user_id) over (PARTITION BY table,accesses_type ORDER BY start_time ROWS BETWEEN CURRENT ROW AND TIMESTAMP_ADD(start_time, INTERVAL 5 SECOND) FOLLOWING) count_distinct_user_id,table, accesses_type, /*array_logic for arranging the user_id*/ from sample_table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...