스프링과 InfluxDB 1.8

문상원·2022년 12월 16일
post-thumbnail

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를 통해 적재하는 방법

  • 시간을 현재 시간으로 입력

결과

  • 시간을 @Column으로 작성됨
  • UTC를 사용하다보니 시간변환을 해줘야 가시적임
    		precision rfc 3339 -- 시간변환 명령어

Data Read

  • 시간을 기점으로 SQL문 작성
  • Query라는 InfluxDB 외부 라이브러리를 통해 작성된 Query문 등록
  • Query의 결과를 반환하는 서비스

InfluxDB 1.8

본 InfluxDB는 도커 이미지를 사용함

TSDB를 처음 도입 해보니 시행착오가 많았었다.
1.8버전 이후 2.0버전부터는 쿼리문도 다르고 대쉬보드도 지원해서2.0이후 버전을 공부해야겠다.
스프링을 통해 적용사례도 적다보니 공부하기 힘들었다.

profile
백엔드 공부중인 문상원입니다. !

0개의 댓글