DB
InfluxDB 설치, 사용법 및 개념(Docker Container)
호기심 많은 1인
2023. 4. 10. 12:30
초기 설정 값 정의 및 컨테이너 생성
source run.sh 명령어를 이용하여 설치(run.sh 파일 생성)
파일 실행 이전에 network 생성 필요 (2023.04.04 - [DevOps] - Docker Desktop 설치)
# run.sh
# passwrord 생성 시 password 생성 규칙을 지켜야함
# bucket name은 소문자로 작성
docker run -d \
--network=iot \
-p 8086:8086 \
-v $PWD/influxdb-data:/var/lib/influxdb2 \
-v $PWD/config:/etc/influxdb2 \
-e DOCKER_INFLUXDB_INIT_MODE=setup \
-e DOCKER_INFLUXDB_INIT_USERNAME=[username] \
-e DOCKER_INFLUXDB_INIT_PASSWORD=[password] \
-e DOCKER_INFLUXDB_INIT_ORG=[oranigzation] \
-e DOCKER_INFLUXDB_INIT_BUCKET=[bucketname] \
--name influxdb24 \
influxdb:2.4
InfluxDB 개념 (TSDB)
TSDB : Time series data
공식 URL : https://docs.influxdata.com/influxdb/v2.7/get-started/
InfluxDB는 시계열 데이터를 수집, 저장, 처리 및 시각화하기 위한 플랫폼
시계열 데이터는 시간 순서로 인덱싱된 데이터 포인터 (ex. 산업용 센서 데이터, 서버 성능 지표 등)
Influx 2.X로 바뀌면서 Bucket 추가, flux(이전에 influxql) 사용
Data organization (데이터 구성)
Bucket | 시계열 데이터가 저장되는 이름이 지정된 위치 Bucket 안에는 Measurement 포함 RDB의 database와 데이터 보존 기간 정책(retention policy)가 합쳐진 개념, 보존 기간이 지나면 삭제 |
Measurement | RDB의 table과 유사 |
Tags | Key-value 형태로 변경이 자주 발생하지 않는 데이터 RDB의 PK or indexed column과 유사 |
Fields | Key-value 형태로 변경이 자주 발생하는 데이터 (ex. 온도, 압력 등) RDB의 unindexed column과 유사 |
Timestamp | 모든 데이터는 시간 순으로 정렬 |
point | measurement, tag keys, tag values, field key 및 timestamp 로 식별되는 단일 데이터 레코드 |
series | measurement, tag keys 및 tag values이 동일한 포인트 그룹 |
Point와 Series 예시
Line protocol elements (data point 작성 format)
tag set | 쉼표로 구분 태그 키와 값은 인용 부호가 없는 문자열 공백, 쉼표 및 등가 문자는 escape 필요(이스케이프 : 백슬레시) |
field set | 쉼표로 구분 필드 키는 인용 부호가 없는 문자열 공백과 쉼표는 escape 필요 지원 타입 : strings(quoted), floats, integers, unsigned integers, booleans |
timestamp | Unix 타임스탬프 최대 nanoseconds 지원 (nanoseconds가 아닐 경우 별도 지정 필요) |
\n | 줄 바꿈으로 줄을 구분 |
Query 사용법
Install completion scripts (자동완성)
influx completion bash
# Mac with bash
source <(influx completion bash)