1. InfluxDB란?
- 시계열 데이터를 처리하는 소프트웨어 플랫폼 (TSDB)
• 시간과 값을 쌍으로 시계열을 저장하고 서비스하는데 최적화된 소프트웨어 시스템
• 초기 시절엔 데이터 히스토리언 이라고도 함.
- 운영 모니터링, 애플리케이션 매트릭스, 사물인터넷 센서 데이터, 실시간 분석 등 분야에서 시계열 데이터의 고속의 고가용성(HA)의 저장 및 검색에 최적화됨
- 모든 Row가 Time이라고 불리는 고유한 시간값을 가짐
2. 시계열 데이터의 특성
- 시간이 기록된 모든 데이터
- 규칙적 (Metric) and 불규칙적 (Event)시간 간격에 따라 생성
- 거대한 데이터 량
- 실시간이며 시간이 중요
3. RDB와 Influx 용어 비교
4.measurement 구성
- 태그 키, 태그 값 = 합해서 테그셋
- 필드키, 필드 값
: 필드값은 항상 float형, 문자열 안됨.
5. Rest API 제공
6. Down Sampling
- 과거의 데이터를 일정 주기마다 처리해 새롭게 저장하는 역할
- ex> 30분 단위로 a테이블에 평균값을 b테이블에 저장
7. Retention Policy
- 데이터의 저장 기간을 설정해 놓으면 그 이상 기간동안 저장된 데이터는 삭제
8. 단점
- Insert, Select 쿼리 성능을 위하다 보니, Delete, Update는 고려하지 않음
: Timeseries 데이터들은 한 번 Write 되면 수정될 일은 없다고 봐야하기 때문에 Update는 발생하지 않음
: 데이터 또한 삭제될 일이 없다 보니 Retention Policy가 아닌 이상 데이터를 삭제하는 일은 거의 없다고 봐도 무방
: InfluxDB Docs는 InfluxDB가 CRUD 가 아닌 CR-ud 를 지원한다고 말하고 있음
- Timestamp가 오름차순으로 정렬되어 저장되다보니, 랜덤 읽기에서는 성능이 떨어짐
: 애초에 데이터를 Write할 때 오름차순으로 Time을 정렬하기 때문에 랜덤 R/W 에서는 성능이 떨어짐
: 근데 Time Series에서 랜덤 W/R를 할 일이 없을거라봄.
- RDBMS와 다르게, 데이터의 일관성(트랜젝션)은 보장하지 않음
: 일관된(consistent) 데이터를 갖는 것은 그다지 중요하지 않음
: 많은 클라이언트들이 연결해 읽기, 쓰기 작업을 하는 것에 초점을 맞추고 있음
: 따라서 많은 부하가 걸릴 때에는 일관된 반환값을 갖지 않을 수 있음.
9. 편하게 쓰자
- InfluxDB Studio (https://github.com/CymaticLabs/InfluxDBStudio)
출처