티스토리 뷰
개발하는 중에, java를 이용해서 influxdb 에 저장된 데이터를 조회할 일이 있었다. influxdb의 공식 github을 찾아보니 flux-dsl 라이브러리가 있었고, 해당 라이브러리는 좀 더 편리하게 query 문을 작성할 수 있게 제공하였다.
그래서 해당 라이브러리를 이용하여 쿼리문을 작성하던 중, filter에서 문제가 발생하였다. 여러 조건으로 filter를 적용하여, query 문을 작성했는데, 첫 filter 만 적용되고, 나머지는 적용되지 않았다.
초기 코드
위의 코드는 초기 작성한 코드 였으며, 이미지와 같이 filter를 2번 작성하였다.
왜냐하면, influxdb ui에서는 script 에 filter를 여러 번 작성하여도, 조건에 맞춰서 검색이 되었기 때문이다.
그런데, script 를 생각하고 filter를 여러개 작성하였더니, measurement 조건의 filter만 적용되고 나머지 filter는 적용되지 않음을 확인하였다.
그래서 문서를 찾아보니, filter는 한 번만 사용하고, 여러 tag/field 에 대한 조건을 추가하려면 Restrictions를 이용해야 했다.
변경 코드
문서에 있는 내용을 확인하고, Restrictions 을 반영하여 filter를 추가한 결과, intellij 의 디버그를 통해 생성된 query문을 보니 내가 원하는 대로 filter가 잘 적용된 것을 확인할 수 있었다.
Reference
https://github.com/influxdata/influxdb-client-java
'influxdb' 카테고리의 다른 글
[influxdb] token 확인하기 (0) | 2022.12.06 |
---|---|
[influxdb] influxdb-client-java 라이브러리 연동(+ 문제 해결) (0) | 2022.09.14 |
[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 |