이번 글에서는 InfluxDB에서 제공하는 Function들에 대해 알아보겠습니다.
디테일하게는 아니고 간단하게 표로 기능에 대해서만 나열해보도록 하겠습니다.
Aggregate functions
Funciton |
설명 |
COUNT |
지정된 Column에 대해 NULL이 아닌 값을 포함하여 수를 계산 EX) SELECT COUNT(column_name) FROM measurement_name |
DISTINCT |
지정된 열에 대해 고유한 값을 반환 EX) SELECT DISTINCT(column_name) FROM measurement_name |
INTEGRAL |
적분을 계산할 때 주로 사용 (첫 번째 인자: 컬럼명, 두 번째 인자: N값) |
MEAN |
지정된 Column의 평균을 반환 (INT, FLOAT만 가능) EX) SELECT MEAN(column_name) FROM measurement_name |
MEDIAN |
지정된 Column에 대해 정렬된 값 집합에서 중간 값을 반환 EX) SELECT MEDIAN(column_name) FROM measurement_name |
MODE |
지정된 Column에서 가장 빈번한 값을 반환, 빈번한 값의 수가 동일할 경우 여러 행 반환 (INT, FLOAT만 가능) EX) SELECT MODE(column_name) FROM masurement_name |
Selectors functions
Function |
설명 |
TOP / BOTTOM |
첫 번째 인자로는 컬럼이 필요하고 두 번째 인자로는 반환 결과의 top, bottom을 입력 EX) SELECT TOP(column_name, N), BOTTOM(column_name, N) FROM measurement_name |
FIRST / LAST |
지정된 Column에서 첫 번째 행 혹은 마지막 행 값을 반환 EX) SELECT FIRST(column_name), LAST(column_name) FROM measurement_name |
MAX / MIN |
지정된 Cclumn에서 가장 큰 값 혹은 작은 값을 반환 (INT, FLOAT만 가능) EX) SELECT MAX(column_name), MIN(column_name) FROM measurement_name |
PERCENTILE |
지정된 열에 대해 N번째 백분위 수를 반환 (첫 번째 인자: 컬럼명, 두 번째 인자: 0~100 사이 정수 및 부동 소수점 숫자) EX) SELECT PERCENTILE(column_name, N) FROM measurement_name |
Transformations functions
Function |
설명 |
DERIVATIVE |
미분 함수로 후속 레코드 간의 시간당 변경 비율을 계산 EX) SELECT DERIVATIVE(column_name, 1m) FROM measurement_name |
SPREAD |
지정된 Column의 최소값과 최댓값의 차이를 반환 EX) SELECT SPREAD(column_name) FROM measurement_name |
DIFFERENCE |
지정된 Column에서 각 그룹의 첫 번째 값과 마지막 값의 차이를 간격별로 출력 EX) SELECT DIFFERENCE(column_name) FROM measurement_name |
MOVING_AVERAGE |
NULL값을 제외하고 그룹화된 Column의 값의 평균을 계산 EX) SELECT MOVING_AVERAGE(column_name) FROM measurement_name |
COMULATIVE_SUM |
지정된 Column에서 NULL이 아닌 결과에 대한 누적 합계를 계산 EX) SELECT COMULATIVE_SUM(column_name) FROM measurement_name |
STDDEV |
지정된 Column의 표준 편차를 반환 EX) SELECT STDDEV(column_name) FROM measurement_name |
ELAPSED |
후속 레코드 사이의 시간을 반환 (반환되는 단위 시간 기본값은 1s) EX) SELECT ELAPSED(column_name) FROM measurement_name |
Predictors functions
Function |
설명 |
HOLT_WINTERS |
N개의 예측 값을 반환 데이터 값이 주어진 임계 값을 초과할 때 예측 예측 값과 실제 값을 비교하여 데이터의 이상을 감지 EX) SELECT HOLT_WINTERS_WITH_FIT(FIRST(column_name), 10, 4) FROM measurement_name - 두 번째 인수 10은 10개의 예측 필드 값을 요청 - 세 번째 인수 4는 이전 단계에서 결정한 패턴 |
GROUP BY FUNCITON
time()
- InfluxDB가 시간에 따라 쿼리 결과를 그룹화하는 방법을 결정
- time(12m)은 쿼리 결과를 12분 간격으로 그룹화
- $__interval은 Query Option에서 설정한 시간 값으로 설정됨
fill()
- 데이터가 없는 구간에 대해 주어진 옵션을 보고
Option | 설명 |
Linear | 데이터가 없는 구간을 선으로 표현 |
None | 타임 스탬프 및 값 없음을 보고 |
Null | Null을 보고하지만 타임스탬프를 반환 |
Previous | 이전 시간 간격의 값을 보고 |
그 외의 GROUP BY FUNCITON
Function | 설명 |
LIMIT | 쿼리 결과를 제한하여 조회 가능 EX) SELECT * FROM measurement_name WHERE LIMIT = 3 - 상위 3개의 결과만 호출 |
SLIMIT | 지정된 값에서 시리즈의 모든 데이터를 반환 |
TZ | 지정된 시간에 대한 UTC offset 반환 EX) TZ('America/Chicago') |
'2. Database > 2_3 InfluxDB' 카테고리의 다른 글
InfluxDB & Grafana 쿼리 총정리 (0) | 2021.01.21 |
---|---|
InfluxDB와 Grafana 연동 방법 (0) | 2020.12.16 |
InfluxDB, Telegraf, Grafana 예제 및 총정리 2탄 (1) | 2020.12.16 |
InfluxDB, Telegraf, Grafana 예제 및 총정리 1탄 (0) | 2020.12.15 |