Blog logo콜로리 블로그
개발 > 데이터
2달 전

시계열 데이터베이스 InfluxDB 사용해보기 - 3편 - 데이터 구조

Post thumbnailImage

이전글 - 시계열 데이터베이스 InfluxDB 사용해보기 - 2편 - 설정



InfluxDB는 RDBMS에서 사용되는 테이블 구조와 다른 개념들을 사용한다.

데이터를 다루기 전에 InfluxDB에서는 데이터를 어떤 형식과 단위로 저장을 하는지 알아보자.




Influx DB 데이터 구조

Bucket

  • 시계열 데이터를 저장하기 위한 데이터베이스로 여러개의 Measurement 포함된다.


Measurement

  • 시계열 데이터를 논리적인 단위로 그룹화한다. RDBMS의 테이블과 유사하다고 이해하면 쉽다.
  • Measurement에는 여러개의 태그와 필드가 포함되어 구성된다.


Tag

  • 조회에 사용되는 데이터를 포함하는 Key-Value 로 이루어진 데이터다.
  • 태그의 키는 String만 사용 가능하다.
  • RDBMS에서 인덱스 데이터로 조회에 사용되는것과 유사하다고 보면 된다.
  • 조회에 사용되며 자주 변경되지 않는 데이터를 Tag로 이용하는것이 권장된다.


Field

  • 시간에 따라 변화하는 데이터가 Key-Value 형태로 저장된다.


Timestamp

  • 데이터의 타임스탬프 값으로 쿼리 할 때 해당 시간 순으로 정렬이 된다.
  • 나노(ns)초 단위까지 저장이 된다.




Influx 데이터 단위

Point: 단일 레코드 단위로 measurement, tag keys, tag values, field key, timestamp 값을 가진다.

Series: 쿼리를 질의해서 가져온 포인트들의 그룹.




데이터 예시

일단위 주식 가격 데이터를 저장하는 것으로 예시를 들어보겠다.


DB 구조

  • Measurement
  • tickers (참조: 가격 표시기를 ticker라고 한다.)
  • Tags
  • market_code: 마켓 코드 (KOSPI..)
  • stock_code: 종목 코드
  • Fields
  • open_price: 시가
  • high_price: 고가
  • low_price: 저가
  • close_price: 종가
  • volume: 거래량


종목 및 마켓 코드와 같이 거의 변하지 않는 특성을 가지며 조회시 키로 활용 될 수 있는 데이터는 Tag로 분류하고,

나머지 데이터들은 Field로 구성하였다.


보통은 종목 단위의 차트를 확인하거나, 시장 단위의 기간별 분석데이터를 쿼리하는 패턴으로 활용 될 것으로 예상했다.




다음 장에서 실제로 데이터를 다루어보도록 하겠다.


#시계열 DB#InfluxDB#데이터베이스#구조