티스토리 뷰

influxdb

[influxdb] Query InfluxDB with Flux

tbMaster 2022. 1. 14. 13:28
반응형

※InfluxDB 2.1

https://docs.influxdata.com/influxdb/v2.1/query-data/get-started/query-influxdb/#1-define-your-data-source

 

Query InfluxDB with Flux | InfluxDB OSS 2.1 Documentation

 

docs.influxdata.com

 

 

모든 Flux 쿼리는 아래와 같은 단계가 필요하다.

1. data source

2. time range

3. data filters 

 

 


 

 

입력) test1,sensor=humi_temp_sensor humidity_value=30,temperatrue_value=15 1642101292000000000

//Syntax
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]

쿼리) _measurement 가 test1 인 3일전부터 저장된 데이터를 조회

 

결과)

 

 

 

 


 

 

 

 

1. data source  정의 

- from()

InfluxDB data source를 정의하는 함수

bucket 파라미터를 필요로 함

 

 

 

2. time 범위 정의

- range(start, stop)

시간에 연속적인 데이터를 쿼리할 때, 반드시 시간 범위를 지정해야 한다.

"Unbounded" 쿼리는 resource-intensive 하기 때문에, 이에 대한 방안으로  시간 범위를 지정하지 않으면, 데이터베이스에서 쿼리를 실행할 수 없다.

pipe-forward operator " |> " 를 이용하여, data source로부터 range()로 data를 연결한다. range 는 start, stop 파라미터를 가지며, negative duration 또는, tiemstamps를 이용한 absolute 값으로 표현한다.

 

 

 

 

3. data 필터링

-filter([Predicate Function])

filter는  모든 record를 돌면서, Predicate Function 에 record를 입력하여 평가를 진행한다. 결과 값이  "true" 이면 output data로, "false"이면 걸러낸다.

※ Predicate Function : Predicate expression을 이용하여 record를 평가할 함수를 작성한다.

 

 

 

 

4. 쿼리 결과 출력 

- yield()

yield 함수는 각 script의 마지막에 위치하며, Flux가 자동적으로 data를 출력하고 가시화하도록 한다.

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함