InfluxDB
(TSDB, Time-series Database)
1. 정의
오픈소스 시계열 데이터베이스(TSDB)
Go 언어로 작성되었으며 운영 모니터링, 실시간 분석 등 분야에서 시계열 데이터의 고속의 고가용성(HA)의 저장 및 검색에 최적화되어 있다.
사용목적
사용자 ID, 게시글 등 관계형 데이터를 저장하는 것이 아니라 지속적으로 수집되는 값들을 시간의 차원에서 쉽게 다룰 수 있도록 한다.
특징
1) 오픈소스이다 보니 외부 의존성이 없으며, SQL 계열 언어를 제공하고 8086 포트를 리스닝한다.
2) Key-value 쌍으로 함께 묶으면 이를 태그셋(tagset)이라고 부르며 이를 통해 시리즈를 정의한다.
3) 모든 Row가 Time이라고 불리는 고유한 시간 값을 가진다.
4) Rest API를 제공, 8086 포트를 통해 Rest API를 사용할 수 있도록 Listen 상태로 설정한다.
용어정리
1) measurements
= 테이블이란 용어 대신에 사용하며 별도로 생성할 필요 없기 때문에 데이터를 insert하면 measurements를 사용할 수 있다. 또한 컬럼이라는 이름 대신 '태그(Tag)' 라는 이름으로 데이터를 분류한다.
2) field key
= key 중에서 tag key를 제외한 나머지 key인데, 주로 측정된 값 데이터가 들어간다.
3) tag key
= RDB에서 index key와 유사한 것으로 select문으로 조회할 때 기준이 된다. 항상 문자열 형태만 들어올 수 있기 때문에 따옴표로 감싸줘야 한다.
RDB | InfluxDB |
database | database |
table | measurement |
column | key |
PK or indexed column | tag key (only string) |
unindexed column |
field key |
2. 설치방법
* 설치대상: Ubuntu 20.4.1
1) Linux 시간대 설정
dpkg-reconfigure tzdata
2) Ubuntu Linux에 InfluxDB 패키지 다운로드
mkdir /downloads
cd /downloads
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.8_amd64.deb
dpkg -i influxdb_1.7.8_amd64.deb
3) 상태 확인하기
systemctl enable --now influxdb
systemctl status influxdb
4) DB 명령 연결
influx -precision rfc3339
https://portal.influxdata.com/downloads/
3. 명령어
DB 생성
create database DB이름
use DB이름
show DB이름
데이터 삽입
필드 키 목록과 타임 키 사이에는 콤마를 사용하지 않는다.
콤마 뒤에는 공백이 들어와서는 안된다.
insert testtest,company='company',region='SouthKorea' X=15,Y=29,Z=31
데이터 조회
show measurements
show series
series는 measurement와 tag key를 합쳐놓은 구조체라고 생각하면 된다.
select * from measurement 이름
measurement나 DB 삭제
drop measurement DB이름
참고
https://foreverhappiness.tistory.com/60?category=825565
'OS > Database' 카테고리의 다른 글
[DBMS] CouchDB 정의 및 특징 (552) | 2022.01.13 |
---|---|
[DBMS] PostgreSQL 정의 및 설치방법, 보안관점 (1715) | 2021.11.25 |
[DBMS] Redis 정의 및 설치방법, 보안관점 (423) | 2021.11.10 |
[DBMS] Oracle 정의 및 특징 (426) | 2021.06.15 |
[DBMS] SQLite 정의 및 사용법(with Docker) (303) | 2021.06.15 |