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

인플럭스DB(InfluxDB) #3 - 용어 정리

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란 어떤 것인지 파악하는 정도로만 생각하시면 될듯합니다.

 


InfulxDB 용어

용어

설명

aggregation

 집합에 대해 집계된 값을 반환하는 InfluxQL 함수.

batch

InfluxDB 라인 프로토콜 형식의 데이터 포인트 모음이며 newlines(0x0A) 구분.

쓰기 엔드 포인트에 대한 단일 HTTP 요청을 사용하여 데이터베이스에 일괄 처리 점을 제출.

HTTP 오버헤드를 대폭 줄임으로써 InfluxDB API 사용하여 쓰기 작업을 훨씬  효율적으로 수행

InfluxData batch 크기가 5,000-10,000포인트를 권장하지만, 상당히 다른 크기의 배치를 사용하면 다른 유스케이스가  효율적으로 제공.

continuous

 query (CQ)

데이터베이스 내에서 자동으로 주기적으로 실행되는 InfluxQL 쿼리.

연속 쿼리는 SELECT절에 함수가 필요하며 절을 포함해야 .

database

사용자, 보존 정책, 연속 쿼리  시계열 데이터에 대한 논리 컨테이너.

duration

InfluxDB 데이터를 저장하는 기간을 결정하는 보유 정책의 속성.

기간보다 오래된 데이터는 데이터베이스에서 자동으로 삭제.

field

메타 데이터와 실제 데이터 값을 기록하는 InfluxDB 데이터 구조의 - 

필드는 InfluxDB 데이터 구조에 필요하며 인덱싱되지 않음.

필드 값에 대한 쿼리는 지정된 시간 범위와 일치하는 모든 점을 스캔하므로 결과적으로 태그와 관련하여 성능이 다름.

field key

필드를 구성하는 - 쌍의 핵심 부분.

필드 키는 문자열이며 메타 데이터를 저장.

field set

 지점의 필드   필드  컬렉션.

field value

필드를 구성하는 - 쌍의  부분.

필드 값은 실제 데이터로 strings, floats, integers, boolean

필드 값은 항상 타임스탬프와 연관.

필드 값은 인덱싱되지 않음.

필드 값에 대한 쿼리는 지정된 시간 범위와 일치하는 모든 점을 스캔하므로 결과적으로 성능이 떨어짐.

function

InfluxQL aggregations, selectors, transformations.

InfluxQL 함수의 전체 목록

identifier

연속 쿼리 이름, 데이터베이스 이름, 필드 , 측정 이름, 보존 정책 이름, 구독 이름, 태그   사용자 이름을 참조하는 토큰 쿼리 언어

InfluxDB

line protocol

InfluxDB 포인트를 쓰는 텍스트 기반 형식

measurement

관련 필드에 저장된 데이터를 설명하는 InfluxDB 데이터 구조의 일부.

측정값은 문자열.

metastore

시스템 상태에 대한 내부 정보.

사용자 정보, 데이터베이스, 보존 정책, 샤드 메타 데이터, 연속 쿼리  구독이 포함.

node

독립적인 influxd 프로세스.

now()

로컬 서버의 나노초 타임스탬프.

point

InfluxDB 데이터 구조의 일부로 일련의 필드 집합으로 구성.

 포인트는 시리즈와 타임스탬프로 고유하게 식별.

같은 시리즈에 동일한 타임스탬프가 있는  이상의 점을 저장할  없다.

대신, 해당 시리즈의 기존 포인트와 동일한 타임스탬프를 사용하여 같은 시리즈에  포인트를 작성하면 필드 세트가 이전 필드 세트와  필드 세트의 합집합.

points

per second

InfluxDB 데이터가 지속되는 속도의 사용되지 않는 측정.

스키마는   여러 메트릭 값의 기록을 허용하거나 심지어 권장.

초당 렌더링 지점이 모호.

쓰기 속도는 일반적으로 초당 값으로 표시되며 보다 정확한 메트릭.

 

query

InfluxDB에서 데이터를 검색하는 작업.

replication

factor

클러스터에 동시에 저장하거나 보관할 데이터 복사본 수를 결정하는 보유 정책의 특성.

복사본을 복제하면 데이터 노드(또는  이상) 사용할  없을  데이터를 사용할  있다.

 노드 이하의 경우 기본 복제 요소는 데이터 노드 수와 같다. 노드   이상이면 기본 복제 요소는 3.

기본 복제 요소를 변경하려면 보존 정책에서 복제 요소를 지정.

retention

policy

(RP)

InfluxDB 데이터(지속 시간), 클러스터에 저장할 데이터의 복사본 (복제 인수)  shard그룹이 적용되는 시간 범위(shard그룹 지속 시간) 유지하는 기간을 설명.

RP 데이터베이스마다 고유하며 측정  태그 세트는 시리즈를 정의.

데이터베이스를 만들면 InfluxDB autogen 무한 지속 기간, 복제 계수를 1 설정하고 shard그룹 기간을 7일로 설정하여 보존 정책을 만듦.

schema

nfluxDB에서 데이터가 구성되는 방식.

InfluxDB 스키마의 기본은 데이터베이스, 보존 정책, 계열, 측정, 태그 , 태그   필드 .

selector

지정한 점의 범위에서 단일 점을 반환하는 InfluxQL 함수.

series

측정, 태그 세트  보존 정책을 공유하는 InfluxDB 데이터 구조의 데이터 모음.

series

cardinality

InfluxDB 인스턴스의 고유한 데이터베이스, 측정 , 태그 세트  필드  조합 .

ex) InfluxDB 인스턴스에 단일 데이터베이스와 하나의 측정 항목이 있다고 가정.

- 단일 측정은  개의 태그 키를 email status 가진다.

- 서로 다른  가지 email 있고  메일 주소가 서로 다른  개의 statuses 연결되어있는 경우 측정의 series cardinality 6(3*2=6).

server

InfluxDB 실행 중인 가상 머신 또는 실제 머신.

서버당 하나의 InfluxDB 프로세스만 있어야 한다.

shard

shard 실제 인코딩되고 압축된 데이터를 포함하며 디스크의 TSM 파일로 표현.

모든 shard 하나의 shard그룹에 속함. 하나의 shard그룹에 여러 shard 있을  있음.  조각에는 일련의 특정 세트가 들어있음.

주어진 shard그룹에서 주어진 시리즈에 속하는 모든 포인트는 디스크의 같은 shard(TSM 파일) 저장.

shard

duration

샤드기간은  샤드그룹이 걸리는 시간을 결정.

특정 간격은 보존 정책의 SHARD DURATION 의해 결정.

ex) SHARD DURATION 1w 설정된 보유정책이 주어지면  샤드 그룹은  주에 걸쳐 해당 주에 타임스탬프가 있는 모든 지점을 포함.

shard

group

샤드 그룹은 샤드의 논리 컨테이너.

샤드 그룹은 시간  보존 정책에 따라 구성.

데이터가 포함된 모든 보존 정책에는 하나 이상의 관련 샤드 그룹이 있다.

주어진 샤드 그룹에는 샤드 그룹이 속한 간격의 데이터가 있는 모든 샤드가 들어 있다.

 샤드 그룹에 걸친 간격은 샤드 기간.

subscription

subscription 통해 Kapacitor 쿼리 데이터를 기반으로  Pull모델이 아닌 Push모델로 InfluxDB에서 데이터를 수신.

Kapacitor InfluxDB 작동하도록 구성되면 subscription InfluxDB에서 subscription 데이터베이스의 모든 쓰기를 Kapacitor 자동으로 푸시.

TCP 또는 UDP 사용하여 쓰기 전송.

tag

메타 데이터를 기록하는 InfluxDB 데이터 구조의 - .

태그는 데이터 구조의 선택적 부분이지만 일반적으로 쿼리되는 메타 데이터를 저장하는  유용.

태그는 태그에 대한 쿼리가 실행될  있도록 Index 생성.

tag key

태그를 구성하는 - 쌍의 핵심 부분. 태그 키는 문자열이며 메타 데이터를 저장. 태그 키는 태그 키에 대한 쿼리가 실행되도록 인덱싱.

tag set

 지점에서 태그   태그 값의 모음.

tag value

태그를 구성하는 - 쌍의  부분. 태그 값은 문자열이며 메타 데이터를 저장. 태그 값은 태그 값에 대한 쿼리가 실행될  있도록 인덱싱.

timestamp

 지점과 관련된 날짜와 시간. InfluxDB 모든 시간은 UTC.

transformation

지정된 점에서 계산된  또는  집합을 반환하지만 해당 점에서 집계된 값을 반환하지 않는 InfluxQL함수.

tsm

(Time

Structuredv

Merge tree)

InfluxDB 목적으로 구축된 데이터 저장 형식.

TSM 기존의 B + 또는 LSM 트리 구현보다   압축  쓰기  읽기 처리량을 허용

user

관리자는 모든 데이터베이스에 대한 READ  WRITE 권한과 관리 쿼리  사용자 관리 명령에 대한 모든 권한을 가지고 있다.

관리자가 아닌 사용자는 데이터베이스당 READ, WRITE 또는 ALL (읽기  쓰기 모두) 액세스 권한을 갖는다.

인증이 활성화되면 InfluxDB 유효한 사용자 이름과 암호로 전송된 HTTP 요청만 실행.

values per

second

데이터가 InfluxDB 유지되는 속도의 기본 측정.

초당 값을 계산하려면 초당 기록  포인트의 수에 포인트  저장된 값의 수를 곱한다.

wal

(Write Ahead

Log)

최근 기록한 포인트의 임시 캐시.

영구 저장소 파일에 액세스하는 빈도를 줄이기 위해 InfluxDB  크기 또는 수명이 영구 저장소에 플러시  때까지 WAL 새로운 지점을 캐시.

WAL 포인트는 쿼리   ​​있으며 시스템 재부팅을 통해 유지.

프로세스가 시작되면 시스템이 새로운 쓰기를 허용하기 전에 WAL 모든 포인트를 플러시해야한다.

 

728x90

댓글