influxDB 서버 접속 및 조회 테스트를 위해 로컬에 설치해보았다.
직접 데이터를 쌓기 위함이 아니라 단순 조회용이기 때문에 아주 깊이 있는 이해를 토대로 하지는 않았다.
influxDB란?
오픈 소스 시계열 데이터베이스(TSDB:Time Series DataBase)이며 Go 언어로 작성되었다.
일정한 주기로 데이터를 처리 및 삭제하는 기능이 있어 대량의 시계열 데이터를 보다 편리하게 처리할 수 있다.
1. influxDB 설치
https://portal.influxdata.com/downloads/
Downloads
Telegraf open source data collector Telegraf is a plugin-driven server agent for collecting and sending metrics and events from databases, systems, and IoT sensors. Telegraf is written in Go and compiles into a single binary with no external dependencies,
portal.influxdata.com
링크로 이동하여 version과 Platform을 선택해준다.
아래 CLI 부분 중 wget 뒤에 오는 url을 웹브라우저 주소창에 입력하면 파일을 다운로드 한다.
다운로드 한 zip 파일을 압축 해제하면 설치는 완료이다.
2. 서버 실행
influxd.exe를 실행하면 influx 서버가 실행되는 것이다. 필요에 따라 이 프로그램을 실행/종료하면 된다.
3. 데이터베이스 생성 및 사용
influx.exe를 실행하면 influxDB를 사용할 수 있는 콘솔이 뜬다.
기본 port는 8086이다.
CREATE DATABASE [dbName]
데이터베이스 생성 쿼리문을 입력한다.
SHOW DATABASE
생성된 데이터베이스 목록을 확인해본다.
처음 데이터베이스를 생성한 후 확인해보면 _internal과 생성한 DB 두 개가 보일 것이다.
USE [dbName]
생성한 데이터베이스를 사용하기 위한 쿼리문을 입력한다.
다음은 데이터를 입력해야 하는데 익숙한 개념과는 차이가 좀 있어서 정리가 필요하다.
시계열 DB를 관계형 DB와 비교해보면 아래와 같다.
RDB | influxDB |
table | measurement |
column | key |
indexed column | tag |
unindexed column | field |
row | point |
measurement에 데이터가 쌓이면 각각의 데이터는 point가 된다. point는 여러 key를 가지게 되는데 여기에 tag, field 가 있다.
INSERT [MeasurementName],[tag1=tagData1],[tag2=tagData1] [field1=fieldData1],[field2=fieldData2]
데이터 저장 쿼리문을 입력한다.
콤마 사이에는 공백을 넣지 않으며 tag와 field 사이에는 공백이 한 칸 있다.
SELECT * FROM measurementName
DELETE FROM measurementName [WHERE]
저장된 데이터를 확인하는 조회 쿼리나 데이터를 삭제하는 쿼리는 RDBMS와 동일하다.
DROP MEASUREMENT [measurementName]
DROP DATABASE [dbName]
데이터베이스나 measurement를 삭제하고 싶다면 DROP을 사용한다.