데이터분석데브코스 8/이론
7주차 4. Superset 소개와 대시보드 생성
by DataJ
2025. 5. 21.
🧩 1. 시각화 툴과 대시보드란?
📌 시각화 툴의 정의
- BI 툴(Business Intelligence) 또는 대시보드 툴이라고 불림
- KPI, 주요 지표, 데이터 포인트들을 시각적으로 표현하여
- 데이터 기반 의사결정(Data-Driven Decision)을 돕는 도구
📌 주요 시각화 툴
툴명 특징
Excel / Google Sheet |
가장 널리 사용되는 기본 툴 |
Tableau (세일즈포스) |
시각화 다양, 대중적 사용률 높음 |
Looker (구글) |
LookML 사용, 고급 사용자 대상 |
Power BI (MS) |
MS 생태계 연동에 강점 |
Apache Superset |
오픈소스 기반, 기업용 대시보드 가능 |
Mode Analytics |
SQL, R, Python 통합 분석 |
ReDash |
오픈소스, 쿼리 에디터 강점 |
Google Data Studio / AWS QuickSight |
클라우드 환경 최적화 툴 |
🧭 2. Superset 소개
📌 Superset 개요
📌 주요 기능
- 시각화 차트/대시보드 생성 및 공유
- SQLAlchemy 기반 다양한 DB 지원 (Redshift, MySQL 등)
- 실시간 데이터 시각화 가능 (Druid.io 연동 시)
- API, 플러그인 아키텍처를 통한 확장성
- 엔터프라이즈급 보안/권한 관리
📌 기술 스택
구성요소 설명
Frontend |
React.js |
Backend |
Flask (Python) |
Metadata DB |
기본 SQLite 사용 |
캐시 레이어 |
Redis |
DB 접근 |
SQLAlchemy 이용 |
📊 4. MAU (Monthly Active Users) 차트 생성
📌 입력 테이블 생성
CREATE TABLE analytics.user_session_summary AS
SELECT usc.*, t.ts
FROM raw_data.user_session_channel usc
LEFT JOIN raw_data.session_timestamp t
ON t.sessionid = usc.sessionid;
📌 MAU 집계 쿼리 예시
SELECT
LEFT(ts, 7) AS "month",
COUNT(DISTINCT userid) AS mau
FROM analytics.user_session_summary
GROUP BY 1
ORDER BY 1;
📌 Superset 차트 설정
- Chart Type: Line Chart
- Metrics: COUNT_DISTINCT(userid)
- Time Column: ts, Grain: Month
- Dimension: channel
📊 5. Cohort 차트 생성
📌 Cohort Summary 테이블 생성
CREATE TABLE analytics.cohort_summary AS
SELECT cohort_month, visited_month, cohort.userid
FROM (
SELECT userid, date_trunc('month', MIN(ts)) cohort_month
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp t ON t.sessionid = usc.sessionid
GROUP BY 1
) cohort
JOIN (
SELECT DISTINCT userid, date_trunc('month', ts) visited_month
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp t ON t.sessionid = usc.sessionid
) visit
ON cohort.cohort_month <= visit.visited_month AND cohort.userid = visit.userid;
📌 Cohort 집계 쿼리 예시
SELECT
DATEDIFF(month, cohort_month, visited_month) AS month,
cohort_month,
COUNT(userid) AS users
FROM analytics.cohort_summary
GROUP BY 1, 2
ORDER BY 1, 2;
📌 Superset 차트 설정
설정 항목 값
Chart Type |
Heatmap |
Rows |
cohort_month |
Columns |
visited_month 또는 DATEDIFF(month, cohort_month, visited_month) |
Metrics |
COUNT(userid) |