티스토리 뷰
※InfluxDB 2.1
모든 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를 출력하고 가시화하도록 한다.
'influxdb' 카테고리의 다른 글
[influxdb] influxd 의 config 파일 설정 (0) | 2022.05.24 |
---|---|
[influxdb2.1] measurement, tag key, tag value 조회 (0) | 2022.01.26 |
[influxdb] API 를 이용하여 influxDB 접근 방법 (0) | 2022.01.14 |
[influxdb] 생성한 measurement 삭제하는 방법 (influxCLI) (0) | 2022.01.14 |
[ InfluxDB ] InfluxDB 2.1 설치 방법 (0) | 2021.12.09 |