History
초기에는 Click Stream을 기록하기 위한 수단으로서 활용되었음
기존 관계형DB가 아닌 TSDB와 거의 비슷한 개념임
가능한 Group by 조합에 모두 Index를 부과하여 퍼포먼스를 제고하는 방식
다만 TSDB와는 달리 통계량을 뽑아내는 것에 대해 퍼포먼스를 높이도록 조직됨
기존에 이런 방식으로 작동하는 OLAB이 있었으나 솔루션 가격이 매우 비쌌음
그러던 중 Imply Data라는 곳에서 자신들의 기술력을 알리기 위해 OLAB 기반으로 개발하여
이후 에어비엔비에서 드루이드를 기반한 솔루션을 개발한 것이 Superset임
초기 Superset은 연결할 수 있는 Database로 드루이드만 지원됐으나,
지금은 Postgre, Mysql 등 다양한 DB와 Connection 할 수 있게 발전함
특징
Druid와 비슷한 TSDB로 Click House, SnowFlake, BigQuery(구글), RedShift(아마존)가 있음
다만 TSDB와는 달리 Join하기가 어려움
따라서 Join하지 않아도 되는 큰 테이블을 만들어 처리하는 것이 편리
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'를 눌러 새로고침함
'ETL 관련' 카테고리의 다른 글
[생각정리] load balancer가 있는 상황에서 output 처리 (0) | 2023.09.13 |
---|---|
df dropna와 NaN replace[groupby시 유의점] (0) | 2023.07.04 |
데이터 병합 시 유의해야 할 data type 문제 (0) | 2023.07.03 |
Druid에 insert와 delete 하는 방식 (0) | 2023.02.15 |
Druid 사용 및 Airflow 자동화 구조 (2) | 2023.02.03 |