influxDB에서 실 데이터로 테스트를 좀 해보려고 대량 데이터 집어넣으려다 또 생쇼한거 공유 차원에서 간단히 기록.
1. 용어
내용 이해하려면 influxDB 용어 몇 가지는 이해해야 하므로 influx : RDB 형태로 최대한 간단히 설명하자면
Measurement : 테이블
Point : Record
Tag set : Key 값으로 설정될만한 Column
Field set : 일반적인 값들 들어갈 Column
line protocol : Point 를 DB 에 write(influx 에서는 insert 보다는 이렇게 주로 쓰길래)할 때의 기본 텍스트 포맷. insert 구문 포맷 정도로 이해하면 될 듯.
2. txt 파일 이용한 대량 데이터 등록
대량 데이터 넣으려면 다음과 같은 형식으로 텍스트 파일 만들어 이용하면 된다.# DML
# CONTEXT-DATABASE: database명
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
이렇게 생성한 파일명이 bulk_data.txt 라면 다음과 같은 식으로 실행하면 된다.
influx -import -path=bulk_data.txt -precision=s -database=database명
3. 사용 예
# DML
# CONTEXT-DATABASE: EE_PF
evt_sens,mach_id=T862 cumu_mil_dist=187.26,resid_fuel_amt=26,engn_temp=119,fuel_cons=238.68 1568791880
evt_sens,mach_id=T862 cumu_mil_dist=360.59,resid_fuel_amt=17,engn_temp=63,fuel_cons=126.45 15687919424.
시행착오로 시간 날려먹고 배운 점.
- line protocol에는 공백이 없어야 한다. 공백이 꼭 들어갈 곳은 Tag set과 Field set 그리고 timestamp 구별할 때만
- 텍스트 파일은 unix 포맷이어야만 한다. 즉, 라인 끝에 \r\n 붙으면 에러난다.매뉴얼 안 읽고 샘플 데이터 파일만 보고 작업하다가 위 두 문제로 두 어 시간 날림 ㅜㅠ작업 전 매뉴얼은 가급적 읽자 : https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_reference/
'Slack 채널 정리' 카테고리의 다른 글
'Micrometer는 "메트릭의 SLF4J" (0) | 2019.11.29 |
---|---|
InfluxDB 에 POJO 이용해서 insert 하는 코드 예(Mapstruct 사용) (2) | 2019.11.29 |
minio 설치 및 파이썬 업로드 스크립트 (0) | 2019.11.29 |
[mariadb]st_distance_sphere 만들어 사용하기 (0) | 2019.11.29 |
mariadb 에서 Point 타입으로 위,경도 값 넣어 이동 거리 계산 (0) | 2019.11.29 |