본문으로 바로가기

InfluxDB Function 총정리

category 2. Database/2_3 InfluxDB 2021. 1. 21. 20:40

 

 

이번 글에서는 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에서 설정한 시간 값으로 설정됨

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')