History

초기에는 Click Stream을 기록하기 위한 수단으로서 활용되었음

기존 관계형DB가 아닌 TSDB와 거의 비슷한 개념임

가능한 Group by 조합에 모두 Index를 부과하여 퍼포먼스를 제고하는 방식

다만 TSDB와는 달리 통계량을 뽑아내는 것에 대해 퍼포먼스를 높이도록 조직됨

기존에 이런 방식으로 작동하는 OLAB이 있었으나 솔루션 가격이 매우 비쌌음

그러던 중 Imply Data라는 곳에서 자신들의 기술력을 알리기 위해 OLAB 기반으로 개발하여

아파치 재단을 통해 오픈소스로 출범시켜 버림[각주:1]

이후 에어비엔비에서 드루이드를 기반한 솔루션을 개발한 것이 Superset임

초기 Superset은 연결할 수 있는 Database로 드루이드만 지원됐으나,

지금은 Postgre, Mysql 등 다양한 DB와 Connection 할 수 있게 발전함

특징

Druid와 비슷한 TSDB로 Click House, SnowFlake, BigQuery(구글), RedShift(아마존)가 있음

다만 TSDB와는 달리 Join하기가 어려움

따라서 Join하지 않아도 되는 큰 테이블을 만들어 처리하는 것이 편리

오픈소스이기 때문에 시스템이 안정적이진 않음[각주:2]

Superset은 문자형 컬럼, 숫자형 컬럼으로 나뉨

숫자형 컬럼을 Dimension으로 선택하면 새로운 통계량을 그래프로 쉽게 나타낼 수 있음

데이터를 요청자 스스로 조정하여 Group-by graph를 얻는 데 용이함

 

개발

ETL을 통해 Database에 올림

Ingestion은 Job History가 나오고 Query탭을 통해 업로드한 Data를 확인할 수 있음

보통 Dictionary로 데이터를 저장하고 JSON 형태로 Transform함

TS 기반이면서 실시간성을 띌 수 있게 조직되었기 때문에 데이터 분할 term에 대한 segment가 존재함[각주:3]

가령 Hour segment라면 1시 1분에 올리고 1시 59분에 올리면 덮어쓰기가 됨

Data Update가 어려운 TSDB 특성상 Segment 단위를 통째로 다시 올려야 제대로 업데이트가 됨

기준 데이터에서 컬럼을 삭제하면 바로 적용되어 제대로 출력되지 않음

컬럼을 추가하는 경우 'Sync Columns From Source'를 눌러 새로고침함

  1. 이로인해 OLAB의 가격이 급락하며 어떤 분야든 데이터 분석 시대가 도래했다는 후문 [본문으로]
  2. 불안정한데도 Druid의 유지비용이 다른 솔루션들에 비해 저렴한 편은 아니라고 함 [본문으로]
  3. 이를 Granularity라고 한다. 작은 양을 짧게 자주한다면 fine-grained 반대로 큰 양을 가끔한다면 coarse-grained라고 한다. Granularity는 이 두 개념의 합집합 정도로 생각할 수 있다. [본문으로]

+ Recent posts