InfluxDB 1.8 version 사용

InfluxDB를 선택한 이유
- 실시간 기반으로 데이터의 저장 공간 필요
- 실시간으로 쌓이는 데이터의 주기 설정
- 데이터 베이스에 여러 개의 보존기간 설정 가능
- 차트를 제공하기 위한 연속적인 쿼리 필요
- 빠른 쓰기 및 읽기가 가능한 오픈소스
스프링 세팅
build.gradle 의존성 추가
Implementation
group: 'org.influxdb’, name: 'influxdb-java’, version: '2.22’
implementation
'com.github.miwurster:spring-data-influxdb:1.8'
InfluxDBConfiguration 작성

- connectionFactory메소드를 통해 DB커넥트 가능
@configuration 등록
application-influxDB.properties 작성

- 작성된
properties를 통해 매개변수로 받음
- 보존정책은 기본 정책을 사용하였음
Data Write
- 필자는 실시간으로 쌓이는 Sensor Data를 적재하였음
해당 센서의 Measurement 클래스가 있어야 함

- TSDB이므로
@TimeColumn을 사용해줘야 함InfluxDBTemplate를 통해 적재하는 방법

- 시간을 현재 시간으로 입력
결과

Data Read

- 시간을 기점으로 SQL문 작성
- Query라는 InfluxDB 외부 라이브러리를 통해 작성된 Query문 등록
- Query의 결과를 반환하는 서비스
InfluxDB 1.8
본 InfluxDB는 도커 이미지를 사용함
TSDB를 처음 도입 해보니 시행착오가 많았었다.
1.8버전 이후 2.0버전부터는 쿼리문도 다르고 대쉬보드도 지원해서2.0이후 버전을 공부해야겠다.
스프링을 통해 적용사례도 적다보니 공부하기 힘들었다.