본문 바로가기
개발관련 자료

인플럭스DB(InfluxDB) #1 - 개요 및 특징

by jinu957 2020. 6. 11.
728x90

이번 포스팅은 요즘 핫한 InfluxDB에 대하여 작성하도록 하겠습니다.

InfluxDB 역시 작년 기상청 프로젝트에서 전국에서 관측되는 데이터를 효과적으로 처리하기 위하여 검토되었고 그때 자료조사를 한 내용입니다.

 

순서는 

 

2020/06/11 - [개발관련 자료] - InfluxDB #1 - 개요 및 특징

2020/06/11 - [개발관련 자료] - InfluxDB #2 - 주요 개념

2020/06/11 - [개발관련 자료] - InfluxDB #3 - 용어 정리

2020/06/11 - [개발관련 자료] - InfluxDB #4 - SQL DB와 비교

2020/06/11 - [개발관련 자료] - InfluxDB #5 - Schema설계 및 데이터Layout

2020/06/11 - [분류 전체보기] - InfluxDB #6 - In-Memory Indexing과 TSM(Time-Structured Merge Tree)

2020/06/11 - [개발관련 자료] - InfluxDB #7 - TSI(Time Series Index) 개요

2020/06/11 - [개발관련 자료] - InfluxDB #8 - TSI(Time Series Index) 세부 정보

2020/06/11 - [개발관련 자료] - InfluxDB #9 - Linux CentOS 설치

2020/06/12 - [개발관련 자료] - InfluxDB #10 - 사용법 

 

으로 진행되며 도입 검토 차원에서 이루어진 조사라서 실무적용 보다는 InfluxDB란 어떤 것인지 파악하는 정도로만 생각하시면 될듯합니다.

 


1. 개요

 

  • InfluxDB 높은 쓰기  쿼리로드를 처리하도록 설계된 시계열 데이터베이스입니다.
  • InfluxDB DevOps 모니터링, 응용 프로그램 메트릭, IoT 센서 데이터  실시간 분석을 포함하여 많은 양의 타임스탬프가 적용된 모든 유스케이스의 백업 저장소로 사용됩니다.
  • InfluxDB data store 위해 구글이 만든 key/value database library LevelDB 사용하고 있습니다. 따라서, 다음과 같은 LevelDB 특징을 가지고 있습니다.(다음버전에는 RocksDB 이동예정)

      - 기본적으로 데이터를 compression하기 때문에 읽기와 삭제에 다소 느릴  있습니다. 그러나 LevelDB 다르게 SQL-like query language 지원합니다.

      - group by, join,  복수개의 time series merge하는 것도 가능합니다.

 

 

2. 주요 특징

 

  • 시계열 데이터를 위해 특별히 작성된 사용자 정의 고성능 데이터 스토어 TSM 엔진은 높은  속도  데이터 압축을 허용함.
  • 전체적으로 Go 작성되었습니다. 외부 종속성 없이 단일 바이너리로 컴파일됨.
  • 간단하고 고성능의 HTTP API 작성  쿼리.
  • 집계된 데이터를 쉽게 쿼리   ​​있도록 맞춤 설정된 표현형 SQL 유사한 쿼리 언어.
  • 태그를 사용하면 빠르고 효율적인 쿼리를 위해 시리즈를 인덱싱   있음.
  • 보존 정책은 유효하지 않은 데이터를 자동으로 만료시킴.
  • 연속 쿼리는 자동으로 집계 데이터를 계산하여 자주 쿼리를 하는  보다 효율적임.
  • distributed and scale horizontally하게 설계되었음. 따라서, cluster 새로운 node 추가하면 쉽게 scale-out   있음. (Enterprise 버전)

 

3. InfulxDB 1.x 버전

 

○ Telegraf

  • Telegraf 메트릭을 수집하고 보고하는 플러그인 기반 서버 에이전트입니다. Telegraf 플러그인은 실행되는 시스템에서 직접 다양한 메트릭을 가져오고 타사 API에서 메트릭을 가져 오거나 StatsD  Kafka 소비자 서비스를 통해 메트릭을 수신합니다.
  • 또한 InfluxDB, Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ  기타 여러 데이터 스토어, 서비스  메시지 대기열에 메트릭을 전송하는 출력 플러그인이 있습니다.

○ InfluxDB

  • InfluxDB 높은 쓰기  쿼리로드를 처리하기 위해 처음부터 빌드  시계열 데이터베이스입니다.
  • InfluxDB 타임 스탬프 데이터 전용으로 작성된 맞춤형 고성능 데이터 저장소이며 특히 DevOps 모니터링 , IoT 모니터링  실시간 분석과 같은 사용 사례에 유용합니다.
  • 정의  시간 동안 데이터를 보관하도록 InfluxDB 구성하고 시스템에서 불필요한 데이터를 자동으로 만료  삭제하여 시스템의 공간을 절약합니다.
  • 또한 InfluxDB 데이터와 상호 작용할 수있는 SQL 유사한 쿼리 언어를 제공합니다.

○ Chronograf

  • - Chronograf 스택의 관리 사용자 인터페이스  시각화 엔진입니다.
  • 이를 통해 인프라에 대한 모니터링  경고를 쉽게 설정하고 유지 관리   ​​있습니다.
  • 사용이 간편하며 데이터를 실시간으로 시각화하여 대시 보드를 빠르게 작성하고 경고  자동화 규칙을 쉽게 작성할 수있는 템플릿  라이브러리가 포함되어 있습니다.

○ Kapacitor

  • Kapacitor 원시 데이터 처리 엔진입니다.
  • InfluxDB에서 스트림  배치 데이터를 모두 처리   ​​있습니다.
  • Kapacitor 사용하면 동적 임계값을 사용하여 경고를 처리하고 패턴의 메트릭을 일치 시키며 통계적 이상을 계산하고 동적로드 재조정과 같은 이러한 경고를 기반으로 특정 작업을 수행하는 사용자 정의 논리 또는 사용자 정의 함수를 연결할  있습니다.
  • Kapacitor  HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack 등을 통합합니다

InfluxDB 1.x

 

4. InfulxDB 2.0 버전

 

시간 단축 (Faster time to awesome)

  • InfluxDB 2.0에는 single binary – multi-tenanted time series database, UI  대시 보드 도구, 백그라운드 처리  모니터링 에이전트 등이 모두 단일 API 제공되는 시계열 플랫폼에서 필요한 모든 것이 있습니다.
  • InfluxDB 1.x 에서  사람들에게는 TICK Stack "I, C, K" 기본적으로 하나의 이진 파일로 축소되었습니다.
  • 우리는 공유   있는 대시 보드, 경고  특정 작업 부하  솔루션에 최적화  쿼리를 보유하고 있습니다.

깊은 통찰력과 분석 (Deep insights and analytics)

  • Flux 현재 InfluxDB 1.x에서 사용할  있지만 InfluxDB 2.0에서는 Flux 모든 기능을 사용할  있습니다.
  • Flux 데이터 스크립팅, ETL, 모니터링  경고용으로 설계된 4 세대 프로그래밍 언어입니다.

개발자 생산성 최적화 (Optimized for developer productivity)

  • Inbound, 쿼리, 저장  시각화와 같은 InfluxDB 모든 기능이 이제 통합 API에서 액세스   있습니다.
  • 플랫폼의 모든 내용을 프로그래밍 방식으로 액세스하고 제어   있으므로 개발자가 시간을 단축할  있습니다.
  • InfluxDB Cloud 2.0 사용하면 단일 바이너리로 다운로드하거나 free tier 액세스   있으며 통합 대시 보드, 경고  모니터링 에이전트의 모든 기능을 바로 사용할  있습니다.
  • Go, Java, PHP  Python 같은 인기있는 언어로  강력한 클라이언트 라이브러리를 사용하면 개발자가   안에 실행됩니다.

네이티브 프로메테우스 지원 (Native Prometheus support)

  • InfluxDB Prometheus 설명 형식에 대한 일등급 지원을 제공하며 메트릭 스크레이퍼의 역할을 수행하여 푸시   모델을 모두 지원합니다.
  • 우리는 올해 말에 출시  기본 PromQL 지원을 위해 노력하고 있습니다.

InfluxDB 2.0

728x90

댓글