티스토리 뷰

InfluxDB란?

  • Go 언어로 개발된 오픈소스 Time Series Database(시계열 데이터베이스)
  • Influx DB는 Distributed, Scale horizontally하게 설계되어 새로운 노드만 추가하면 손쉽게 scale-out할 수 있다. 즉 데이터 샤딩이 가능하다.
  • Restful API를 제공하고 있어 CRUD API 통신이 가능하다. 최근 InfluxDB 2.x의 경우 자체 UI를 제공하며 서버 접근용 토큰을 발급할 수 있다. 자세한 내용은 여기에서 확인할 수 있다.

즉, 가장 유명한 TSDB 이고, 많은 쓰기 작업 및 쿼리 부하를 위한 DB이며, Rest API 제공한다.

 


InfluxDB의 핵심 기능

☞ InfluxDB는 2가지 핵심 기능을 제공하고 있다.

  • 일정 주기마다 데이터를 처리하는 기능 Continuous Query(Task)
  • 일정 주기마다 데이터를 자동으로 삭제하는 기능 Retention Policy(Retention Period)

 

Continuous Query(Task)

Influx DB의 핵심 목적은 시간에 따른 데이터(시계열 데이터)의 처리이다. InfluxDB는 데이터를 처리하여 새롭게 저장하는 Down Sampling(다운 샘플링)을 일정 주기마다 실행되도록 하는 Continous Query(연속적인 쿼리)를 제공하고 있다.

InfluxDB2에서는 Continous Query를 대체하는 Task를 제공하고 있다.

 

Retention Policy(Retention Period)

Influx DB의 핵심 목적은 시간에 따른 데이터의 삽입과 조회이므로 직접 Delete를 이용하는 경우는 거의 없기 때문에 데이터가 계속해서 쌓이면 저장 공간 및 처리 속도 등에 문제가 생기므로 데이터를 자동으로 삭제해주는 Retention Policy(보존 정책)를 지원하고 있다. 데이터베이스 또는 버켓(2.x 버전) 단위로 정의되며 일반적으로 1개의 데이터베이스는 여러 개의 보존 정책을 가지고 있다.

만약 별도의 설정을 하지 않았다면 autogen이라는 기본 정책으로 적용된다. autogen은 보존 기간이 무제한이므로, 별도의 설정을 해주지 않으면 데이터가 계속해서 쌓이고 문제를 일으키게 된다. 그러므로 별도의 설정을 해줌으로써 오래된 데이터들을 관리하는 작업이 필요하다.

InfluxDB2에서는 Retention Policy를 대체하는 Retention Period를 제공하고 있다.

 


DB 용어 및 구성

Influx는 일반 DB랑 조금 다른 단위를 쓰고 버전 2.x 부터는 Database에서 Bucket이라는 명칭으로 바뀌었다.

일반 데이터 베이스 InfluxDB 1.x InfluxDB 2.x
Database Database Bucket
Table Measurement Measurement
Column Key Field
Indexed Column Tag Tag
Unindexed Column Field Field
Row Point Point

일반 데이터베이스 / InfluxDB / InfluxDB2 비교

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함