시계열 차원

시계열 차원 (Time series dimensions)

시계열 데이터는 종종 단일 시리즈 이상을 포함하며, 여러 시계열의 집합이에요. 많은 Grafana 데이터 소스가 이런 유형의 데이터를 지원하죠. 이 문서는 시계열 데이터에서 차원(dimension)이 무엇이고, Grafana가 이를 라벨(label)로 어떻게 저장하고 시리즈를 식별하는지 설명합니다.

출처: Time series dimensions

본문

시계열 소개에서 라벨(label, tag라고도 함) 개념이 소개돼요: "TSDB의 또 다른 기능은 태그를 사용해 측정값을 필터링하는 능력이에요. 각 데이터 포인트에는 측정이 이루어진 위치 같은 컨텍스트 정보를 추가하는 태그가 붙어 있어요."

일반적인 경우는 측정 하나에 대해 추가 속성(차원 역할)을 하나 이상 붙여 단일 쿼리를 실행하는 것이에요. 예를 들어 온도 측정을 location 속성과 함께 쿼리하는 경우가 있어요. 이 경우 단일 쿼리에서 여러 시리즈가 반환되고, 각 시리즈는 차원으로서의 고유한 location을 가져요.

시계열 집합 안에서 고유한 시리즈를 식별하기 위해 Grafana는 차원을 라벨에 저장해요.

라벨 (Labels)

Grafana의 각 시계열은 선택적으로 라벨을 가져요. 라벨은 차원을 식별하기 위한 키/값 쌍의 집합이에요. 예시 라벨은 {location=us} 또는 {country=us,state=ma,city=boston}이에요. 시계열 집합 안에서 이름과 라벨의 조합이 각 시리즈를 식별해요. 예를 들어 temperature {country=us,state=ma,city=boston}은 미국 보스턴 시의 온도 값 시리즈를 식별할 수 있어요.

시계열 데이터의 다양한 소스는 차원을 네이티브하게 저장하거나, 데이터를 차원으로 추출할 수 있게 하는 공통 저장 패턴을 가져요.

  • 시계열 데이터베이스(TSDB)는 보통 네이티브로 차원성을 지원해요. Prometheus도 차원을 라벨로 저장해요. Graphite나 OpenTSDB 같은 TSDB에서는 tags라는 용어를 대신 사용해요.
  • SQL 같은 테이블 데이터베이스에서는 이러한 차원이 일반적으로 쿼리의 GROUP BY 파라미터예요.

테이블 형식의 여러 차원 (Multiple dimensions in table format)

테이블 응답을 반환하는 SQL 또는 SQL 유사 데이터베이스에서 추가 차원은 보통 쿼리 응답 테이블의 열로 표현돼요.

단일 차원 (Single dimension):

예를 들어 다음 쿼리를 고려해 봐요.

SELECT BUCKET(StartTime, 1h), AVG(Temperature) AS Temp, Location FROM T
  GROUP BY BUCKET(StartTime, 1h), Location
  ORDER BY time asc

이 쿼리는 각각 time, number, string 데이터 유형을 가진 세 개의 열이 있는 테이블을 반환해요.

StartTime Temp Location
09:00 24 LGA
09:00 20 BOS
10:00 26 LGA
10:00 22 BOS

이 테이블 형식은 long(또는 tall) 형식의 시계열이에요. 반복되는 타임스탬프와 Location의 반복 값이 있어요. 이 경우 집합에는 Temp {Location=LGA}Temp {Location=BOS}로 식별되는 두 시계열이 있어요. 집합의 개별 시계열은 time 유형 열 StartTime을 시계열의 시간 인덱스로, 숫자 유형 열 Temp를 시리즈 이름으로, string 유형 열 Location의 이름과 값으로 Location=LGA 같은 라벨을 만들어 추출돼요.

여러 차원 (Multiple dimensions):

쿼리가 둘 이상의 문자열 열을 선택하고 그룹화하도록 업데이트되면, 예를 들어 GROUP BY BUCKET(StartTime, 1h), Location, Sensor, 추가 차원이 더해져요.

StartTime Temp Location Sensor
09:00 24 LGA A
09:00 24.1 LGA B
09:00 20 BOS A
09:00 20.2 BOS B
10:00 26 LGA A
10:00 26.1 LGA B
10:00 22 BOS A
10:00 22.2 BOS B

이 경우 차원을 나타내는 라벨은 두 개의 string 유형 열 LocationSensor를 기반으로 두 개의 키를 가지게 돼요. 이 데이터는 네 개의 시리즈를 만들어요: Temp {Location=LGA,Sensor=A}, Temp {Location=LGA,Sensor=B}, Temp {Location=BOS,Sensor=A}, Temp {Location=BOS,Sensor=B}.

참고: 둘 이상의 차원은 현재 버전 7.1 기준 Azure Monitor 서비스 내의 Logs 쿼리에서만 지원돼요.

참고: 여러 차원은 Grafana의 여러 알림에 매핑되는 방식으로는 지원되지 않아요. 대신 단일 알림에 대한 여러 조건으로 취급돼요. 자세한 내용은 여러 시리즈로 알림 만들기 문서를 참고하세요.

여러 값 (Multiple values)

SQL 유사 데이터 소스의 경우 차원으로 사용할 추가 문자열 열이 있거나 없이 둘 이상의 숫자 열을 선택할 수 있어요. 예: AVG(Temperature) AS AvgTemp, MAX(Temperature) AS MaxTemp. 이는 여러 차원과 결합하면 많은 시리즈가 될 수 있어요. 여러 값을 선택하는 것은 현재 시각화에만 사용하도록 설계되어 있어요.

표 형식 시계열 형식과 차원이 어떻게 추출되는지에 대한 추가 기술 정보는 데이터 프레임을 시계열로 개발자 문서에서 찾을 수 있어요.

더 알아보기 (Learn more)