Считать по минутам в Riak TS

Я пытаюсь понять недавно добавленную группу в Riak TS.

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

CREATE TABLE Results
(
   result      VARCHAR   NOT NULL,
   time        TIMESTAMP NOT NULL,
   PRIMARY KEY (
      (QUANTUM(time, 1, 'm')),
      time
   )
)

Вставки

INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:03:45Z');
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:04:45Z');
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:05:45Z'); 
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:05:46Z');

запрос

select count(*) from FreightMinuteResult where time > '2017-12-07 12:01:00Z' and time < '2017-12-07 12:06:00Z' group by time;

Результат

+--------+--------------------+ |COUNT(*)| time | +--------+--------------------+ | 1 |2017-12-07T12:04:45Z| | 1 |2017-12-07T12:03:45Z| | 1 |2017-12-07T12:05:45Z| | 1 |2017-12-07T12:05:46Z| +--------+--------------------+

Как посчитать количество вхождений в минуту, используя Riak TS?

Благодарю.

1 ответ

Решение

Квант используется для организации данных в бэкэнде, чтобы упростить операции запроса, в то время как группировка использует точное значение указанного поля. Метки времени 2017-12-07T12:05:45Z а также 2017-12-07T12:05:46Z происходят в одну и ту же минуту и ​​поэтому будут храниться в том же месте на диске, но они по-прежнему будут храниться в виде отдельных значений меток времени второго разрешения, которые будут сгруппированы отдельно.

Если вы хотите иметь возможность группировать по минутам, вам нужно либо округлить временные метки при вставке, либо изменить таблицу, включив в нее поле минут, которое можно сгруппировать.

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