2016-12-07 12 views
1

저는 Riak TS에서 최근에 추가 된 그룹을 파악하려고합니다.Riak TS에서 분 단위로 계산

검색 결과를 1 분 단위로 그룹화하는 방법을 찾을 수 없습니다. 예 : 카운트. 아래 예를 보여 드리겠습니다.

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; 

결과는 Riak을 사용하여 분당 발생 수를 계산하는 방법

+--------+--------------------+ |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| +--------+--------------------+

입니다 TS?

감사합니다.

답변

2

퀀텀은 쿼리 작업을 간소화하기 위해 백엔드의 데이터를 구성하는 데 사용되며 group by는 지정된 필드의 정확한 값을 사용합니다. 2017-12-07T12:05:45Z2017-12-07T12:05:46Z 타임 스탬프는 동일한 분 내에 발생하므로 디스크의 동일한 위치에 저장되지만 두 번째 해상도 타임 스탬프 값으로 별도로 그룹화되어 저장됩니다.

분 단위로 그룹화 할 수 있도록하려면 삽입 할 때 타임 스탬프를 반올림하거나 그룹화 할 수있는 분개 필드를 포함하도록 테이블을 수정해야합니다.

+0

감사합니다. Joe! 문서가이 기능과 관련하여 오해의 소지가 있다고 생각합니다. 예를 들어, "GROUP BY는 일정 기간 동안 장치의 속성을 집계하는 데 유용합니다 (예 : 지난 24 시간 동안 30 분마다 평균값을 가져올 수 있습니다)." 귀하의 답변을 통해 30 분마다를 나타내는 필드를 만들어야한다는 것을 의미하며, 나중에 매 15 분마다 그룹화하여 다른 필드를 만들려는 경우에 한합니다. 어색해. –

+0

Ricardo 혼란 스럽지만 TS에서 GROUP BY는 표준 RDBMS에서 GROUP BY와 동일하게 작동한다는 점에 유의해야합니다. 즉, 그룹화하려는 필드가 동일한 값을 보유해야한다는 것입니다. 예제의 타임 스탬프가 각 고유 한 '시간'값과 일치하지 않으므로 결과 집합에 자체 행이 만들어집니다. – Craig

+1

안녕하세요 크레이그! 의견을 주셔서 감사합니다! 나는 포인트를 얻었지만 IMO는 시계열 DB로, Riak TS는 기본 작업으로 시간 작업을 처리 할 수있었습니다. 로드맵에 있기를 바랍니다. 참조 : https://kairosdb.github.io/docs/build/html/restapi/TimeGrouping.html https://docs.influxdata.com/influxdb/v1.1/query_language/data_exploration/#group-by- 시간 간격 –