시계열 데이터베이스 (TSDB)
데이터베이스에는 여러 종류가 존재하는데 그 중 InfluxDB의 경우 시계열 데이터베이스(time series database), 즉 TSDB의 일종이다.
TSDB는 하나 이상의 시간과 하나 이상의 값을 통해 시계열을 저장하는 데이터베이스이다.
그렇다면 TSDB는 어떠한 특성을 가지고 있을까?
TSDB는 시간의 흐름에 따라 수집된 데이터를 저장, 집계 및 조회 하는데 특화된 데이터베이스이다.
물론 관계형 데이터베이스를 사용하는 것도 가능하지만 TSDB는 시계열을 다루는데 특화된 데이터베이스이기 때문에 시계열을 중점적으로 다룬다면 TSDB를 선택하는 편이 좋다.
TSDB는 주식처럼 시간의 흐름에 따라 데이터를 저장하기 때문에 한 번 저장되고 나면 값이 바뀌지 않는 데이터 처리에 용이하다.
특정 시간에 기록된 주가는 이미 지나간 사실이기 때문에 값이 바뀔 일이 없다.
InfluxDB
InfluxDB는 인플럭스데이터에서 개발한 TSDB로 TSDB 중 1위를 차지하고 있다.
간단히 용어 및 구조를 알아보자.
우선 기본적인 데이터베이스에 저장된 데이터는 다음과 같은 형식이다.
이제 기본적인 용어를 알아보자.
메저먼트(measurement) 구성 요소
InfluxDB는 TSDB이기 때문에 time이라는 컬럼을 반드시 포함하고 있다.
time을 제외하면 4개의 컬럼을 확인할 수 있다.
그 중 butterflies와 honeybees 컬럼부터 확인해보자.
이 컬럼 이름을 필드 키(field key)라고 하며 컬럼 값을 필드 값(field value)라고 한다.
필드 값은 여러 타입을 가질 수 있지만 필드 키는 문자열이다.
이제 나머지 두 location, scientist 컬럼을 확인해보자.
이 두 컬럼 이름을 태그 키(tag key)라고 하며 컬럼 값을 태그 값(tag value)라고 한다.
필드의 경우 인덱싱이 되지 않기 때문에 필드를 기준으로 검색하려면 모든 데이터를 검색한다.
그에 비해 태그는 인덱싱이 되기 때문에 검색에 용이하다.
그리고 태그 값의 경우 String 타입만 취급을 하며 필드 값의 경우 String, Float, Integer, Boolean 등의 타입을 취급한다.
메저먼트(measurement)는 time, field, tag를 가지고 있는 컨테이너이고 데이터베이스를 설정할 수 있는 retention policy를 가진다.
이 retention policy를 통해 고가용성으로 구성할 수도 있다.
시리즈(series)
시리즈는 메저먼트(measurement), 태그 셋(tag set), 필드 키(field key)를 공유하는 포인트(point)들의 집합이다.
InfluxDB 사용법
이제 windows에서 InfluxDB를 설치하고 간단한 사용법을 알아볼 예정이다.
아래 주소로 접속한다.
https://portal.influxdata.com/downloads/
InfluxDB에서 Platform을 Windows로 선택한다.
그러면 아래와 같이 명령어가 나올텐데 관리자 권한으로 실행한 powershell에서 해당 명령어를 한 줄씩 입력한다.
그 후 'C:\Program Files\InfluxData\influx'로 이동해서 powershell을 통해 influxd를 실행한다.
influxd를 powershell에서 실행하는 명령어는 다음과 같다.
start influxd.exe
창이 하나 뜰텐데 influxDB를 사용하기 위해서는 이 창이 계속 떠있어야 한다.
influxd.exe를 실행하고나서 localhost:8086으로 접속하면 influxDB 설정을 할 수 있다.
localhost:8086으로 접속 후 get started를 누르고 설정을 한다.
세팅을 완료하면 아래처럼 관리자 토큰을 받을 수 있다 잘 복사해두자.
보안을 위해서는 관리자 토큰을 직접 사용하기 보다는 All-Access token을 생성해서 사용하는 편이 좋다고 한다.
CLI를 통해 influxDB에 접근하려면 아래 주소에서 influx CLI를 설치한다.
https://docs.influxdata.com/influxdb/v2.7/tools/influx-cli/?t=Windows
Windows에서 influx CLI를 다운받는다.
압축을 해제하면 influx.exe를 확인할 수 있다.
influx CLI를 사용하기 전에 influx config를 세팅하자.
influx config를 세팅하면 명령어를 입력할 때마다 전송해야하는 정보를 스킵할 수 있다.
localhost:8086에서 세팅했던 정보를 바탕으로 다음 명령어를 입력한다,.
influx config create --config-name <config-name> --host-url http://localhost:8086 --org <your-org> --token <your-auth-token> --active
이제 influx.exe가 있는 경로로 이동을 해서 다음 명령어를 입력하면 influx CLI를 사용할 수 있다.
./influx v1 shell
데이터베이스를 확인하는 SHOW DATABASES를 입력해보자.
데이터베이스를 확인할 수 있다면 성공적으로 설치를 한 것이다.
다음 포스팅에서는 influxDB 명령어 및 사용법을 알아보려고 한다.
참고
https://docs.influxdata.com/influxdb/v1.8/concepts/key_concepts/#database
https://gurumee92.tistory.com/192
https://docs.influxdata.com/influxdb/v2.7/install/
'공부 > Database' 카테고리의 다른 글
[MySQL] Procedure 사용법 (2) | 2024.09.30 |
---|---|
[Database] InfluxDB 쿼리 (CLI 및 API) (0) | 2023.08.30 |
[Database] 자기 테이프와 CD-ROM의 특성 (0) | 2022.12.22 |
[Database] 트랜잭션(transactioin) 개념과 동시성의 중요성 (0) | 2022.12.03 |
[Database] Index structures (multi-level oredered) B-tree와 B+ tree (0) | 2022.12.02 |
댓글