기은P
시간이 멈추는 장소
기은P
  • Programming (272)
    • 개발노트 (1)
    • FrontEnd (56)
      • ES&JS 문법 (14)
      • HTML&CSS (4)
      • React 기본 (18)
      • React 심화 (12)
      • React 이슈 (2)
      • Project 연습 (1)
      • Next.js (5)
    • Backend&Devops (33)
      • AWS (2)
      • Docker (9)
      • Jenkins (6)
      • Nginx (6)
      • Node.js (1)
      • ElasticSearch (5)
      • 프레임워크&아키텍처 (2)
      • 암호화 (0)
      • 기타 (2)
    • 알고리즘 (3)
    • C# (8)
      • WPF (8)
    • Java (51)
      • 순수 Java (18)
      • RDF&Jena (12)
      • RCP&GEF (9)
      • JMX (5)
      • JMapper (3)
      • 오류해결 (4)
    • Database (21)
      • RDBMS (9)
      • NoSQL (2)
      • TSDB (1)
      • GraphQL (1)
      • Hibernate (3)
      • 데이터베이스 이론 (4)
      • Redis (1)
    • 프로토콜 (11)
      • Netty (4)
      • gRPC (5)
      • 프로토콜 개념 (2)
    • Server (4)
      • Linux (4)
    • 2020 정보처리기사 필기 (43)
      • 목차 (1)
      • 기출문제 (1)
      • 1과목 - 소프트웨어 설계 (6)
      • 2과목 - 소프트웨어 개발 (7)
      • 3과목 - 데이터베이스 구축 (8)
      • 4과목 - 프로그래밍 언어 활용 (7)
      • 5과목 - 정보시스템 구축 관리 (10)
    • 2020 정보처리기사 실기 (31)
      • 목차 (4)
      • 기출예상문제 (19)
      • 실기요약 (8)
    • 빅데이터분석기사 필기 (4)
      • 목차 (0)
      • 필기 요약 (3)
    • 전기 공학 (1)
      • CIM (1)
    • 산업자동화시스템 (3)
      • SCADA (1)
      • OPC UA (2)
    • 디자인패턴 (1)
    • 휴지통 (0)

공지사항

  • 공지사항/포스팅 예정 항목

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
기은P

시간이 멈추는 장소

[InfluxDB] 설치 및 사용법
Database/TSDB

[InfluxDB] 설치 및 사용법

2021. 4. 28. 15:29
반응형

[InfluxDB] 설치 및 사용 방법

 

 

 

1. InfluxDB란

TSDB(시계열 데이터베이스; Time Series Database)로 이루어진 데이터 베이스다.

시계열 데이터는 즉 시간과 값이 한 쌍을 이루는 데이터인데, 시간에 따라 순차적으로 저장하고 서비스하는 시스템이 바로 이 TSDB이다.

스마트 팩토리와 빅데이터가 등장하면서 데이터에 대한 가치가 높아지고, 데이터를 가공하고 처리하는 기술이 중요해졌는데, 특히 수많은 센서들로부터 나오는 센서 데이터 즉, 실시간으로 변화하는 데이터를 처리하는데 용이한 데이터베이스가 필요해졌다.

이런 실시간 데이터는 수 초 단위로 쌓이게 되고, 이 수많은 데이터를 처리하기에는 기존의 RDBMS, 관계형 데이터베이스로는 한계가 생기기 시작했다.

관계형 데이터베이스로 시계열 데이터를 저장하려면 시간과 값을 각각 따로 저장하여 이를 연관시켜야 하고, 하나의 시간에 여러 종류의 데이터가 입력될 때 또는 데이터를 삭제할 때 성능과 속도 저하의 문제가 생긴다.

이러한 시계열 데이터 기반으로 작동되는 InfluxDB는 Go 언어로 작성되었고, TSDB 오픈소스들 중 가장 인기가 많은 TSDB다.

 

 

특징

  • 구글에서 만든 key/value database인 levelDB를 사용함
  • MongoDB와 같이 Schemaless Design이다.
  • Continuous Queries(CQ)를 지원한다.
  • Resi API를 제공한다.

 

 

 

2. InfluxDB 설치법

https://portal.influxdata.com/downloads/

위의 주소에 접속해서 “Are you interested in InfluxDB 1.x?” 밑에서 플랫폼을 선택해준다. 현재 버최신 버전은 2.x 이상이 나왔지만 안정화된 버전은 1.8.x버전이기 때문에 1.8.x버전을 받아준다.

 

 

Window기반은 Windows Binaries(64 bit)를 선택하면 되고, 그 외는 운영체제에 맞게 선택해서 설치해주면 된다.

 

 

 

 

파워 쉘을 관리자 모드로 실행시키고 위의 명령어를 입력해주면 위와 같은 경로에서 파일이 설치가 된 것을 확인할 수 있다.

 

 

 

 

후에 influxd.exe를 실행시키고 위와 같은 화면이 나오면 정상적으로 설치가 완료가 된 것이다.

 

 

 

 

Influxd.exe를 실행시키고, influx.exe를 실행시키면 위와 같이 서버가 정상적으로 작동한다.

Show databases 명령어를 입력하면 현재 서버에서 작동중인 데이터베이스 목록을 확인할 수 있다.

 

 

 

 

3. 사용법

일반적으로 RDBMS와 시계열 데이터베이스와는 차이가 있기 때문에 별도로 사용법을 숙지를 해야 한다.

시계열 데이터베이스에서의 Table은 측정의 의미를 가지는 Measurement라고 불린다.

하나의 데이터베이스 안에는 여러 개의 Measurement가 있을 수가 있으며, 이 Measurement의 구조에 대해서 자세하게 알아두어야 한다.

Table에 Row가 쌓이는 것처럼, Measurement 안에는 Point라고 하는 데이터가 쌓이게 된다.

이 Point는 데이터를 입력하는 순간 시간적인 지점인 Point를 의미하는 것이며, 이 Point 내부에는 여러 개의 Key가 존재한다.

 

 

Key

  • Tag Key : RDB에서 Index와 유사한 것으로 Select문으로 조회할 때의 기준이 된다. 또한 항상 String(문자열)의 형태로 들어올 수 있기 때문에 따옴표를 통해 감싸주어야 한다.
  • Field Key : 데이터 그 자체라고 보면 된다.
  • Time Key : 측정 시점의 시간이 들어가는데 자동으로 입력되기 때문에 별도로 건드릴 필요는 없다.

 

 

 

일반적으로 데이터를 삽입하는 방법은 아래와 같다.

INSERT [measurement 이름],[태그 이름1]=[태그 값1],[태그 이름2]=[태그 값2],… [필드이름1]=[필드값1],[필드이름2]=[필드값2],… [time key]

여기서 주의해야 할 점은 태그키 목록과 필드키 목록, 필드키 목록과 타임키 사이에는 (콤마)를 사용하지 않는다.

그리고 콤마 뒤에는 공백이 들어오면 안된다.

Time key는 자동으로 생성되지만 명시적으로 넣을 수도 있다.

 

 

 

INSERT test_db,user=’1’,name=John, number=1000

공백과 콤마를 잘 사용하지 않으면 influxdb invalid boolean 이라는 error가 발생하기 때문에 주의깊게 넣어야 한다.(사실 Java나 Node.js로 쿼리를 구현해서 사용하기 때문에 크게 신경 쓰지 않아도 될듯함)

 

 

 

 

명령어

설명

use [database 이름]

현재 데이터베이스 지정

show measurements

measurement(테이블) 목록 보기

show tag keys

모든 measurement의 모든 tag key 목록 보기

show field keys

모든 measurement의 모든 field key 목록 보기

show series

모든 measurement의 서로소인 tag key 튜플의 목록 보기

기본적인 TSDB의 사용법은 위와 같다.

 

 

 

반응형
저작자표시 변경금지 (새창열림)
    기은P
    기은P
    기은P의 블로그 일상과 개발 관련 포스팅 #React #Typescript #Next #Nest https://github.com/kimdongjang

    티스토리툴바