개발 > 데이터
8달 전
시계열 데이터베이스 InfluxDB 사용해보기 - 3편 - 데이터 구조
이전글 - 시계열 데이터베이스 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#데이터베이스#구조