prometheus storage 와 관련하여 정리하던 도중 promtheus 는 TSDB 를 사용한다는 문구를 접하였다.
TS...DB....?
처음 들어보는 db 형태였기 때문에 이에 대해서 찾아보고 정리해보려 한다.
TSDB 란 Time Series Database(시계열 데이터베이스)의 약자로, 시간에 따라 저장된 데이터 를 의미한다.
시계열 데이터들은 동일한 소스로부터 시간이 지남에 따라 만들어진 데이터들로 구성되므로 시간 경과에 따른 변화를 추적하는데 용이하다
시계열 데이터베이스는 기존의 다른 데이터베이스들과 차별이 되는 핵심적인 아키텍처 디자인 특징이 있는데, 그것은 바로 time-stamp를 기반으로 하는 저장소를 가지고 있다는 것이다. 이를 통해 데이터를 압축하고 요약하는 등의 작업을 진행하여 대규모의 시간 기반 데이터들을 다룰 수 있고, 시간을 기반으로 하는 쿼리를 가능하게 한다.
TSDB는 빠르고 효율적인 방법으로 데이터를 수집하기 위해 만들어졌다. 물론 RDB도 빠르지만 데이터의 양이 증가함에 따라 성능이 급격하게 느려지는 경향이 있다. 특히 테이블에 인덱싱이 걸려있다면 인덱싱의 재정렬 등에 의해 퍼포먼스는 점점 더 떨어지게 된다.
반면에 TSDB에서의 인덱스는 시간에 따라 축적된 데이터들에 최적화되었기 때문에, 시간이 지나도 데이터를 수집하는 속도가 느려지지 않고 빠른 처리 속도를 보여준다.
시간이 난다면 go 로 만들어져 대중적으로 많이 사용되는 influxDB
에 대해서 더 알아보도록 하자