
ETL, ELT, Redshift, 데이터 분석/처리용 고급SQL, BI대시보드 (5)
그 외
Docker를 실행하고 설정 메뉴에서 Resources를 선택하고 메모리 할당 부분을 체크
- 맥에서는 6GB가 필요
- 윈도우에서는 8GB가 필요
Superset의 Docker 기반 설치 문서 참조
1. 터미널 프로그램을 실행
2. 적당한 폴더로 이동
3. Superset Github repo를 클론
git clone https://github.com/apache/superset.git
4. superset 폴더로 이동
cd superset
5. 다음 2개의 명령을 수행
docker-compose -f docker-compose-non-dev.yml pull
docker-compose -f docker-compose-non-dev.yml up
아래는 최신 버전을 다운로드. 특정 버전을 다운로드하려면 아래를 먼저 실행
git checkout 1.4.0
6. http://localhost:8088으로 웹 UI 로그인
- admin:admin 사용
두 개의 차트로 하나의 대시보드 생성
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
session 단의 완전한 정보를 갖게 만든 테이블
이를 바탕으로 시각화를 구현할 예정
SELECT
LEFT(ts, 7) "month",
COUNT(DISTINCT userid) mau
FROM analytics.user_session_summary
GROUP BY 1
ORDER BY 1;
위의 내용을 다운로드 받아 mau.csv로 저장
이 파일을 Google Spreadsheet로 로딩, 이를 차트 기능을 사용해서 시각화 수행
방문한 사용자 수가 아니라 유의미한 행동을 한 사용자가 얼마나 되는지 분석 할 수 있다면 더 의미 있는 분석이 될 것이다.
아래 summary 테이블을 Redshift 단에 생성
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.csv로 저장
SELECT
DATEDIFF(month, cohort_month, visited_month) month,
cohort_month,
COUNT(userid) users
FROM analytics.cohort_summary
GROUP BY 1, 2
ORDER BY 1, 2;
이 파일을 Google Spreadsheet로 로딩, 이를 피봇 테이블 기능을 사용해서 시각화 수행
우측 상단 Settings에서 Database Connections 클릭

+DATABASE를 누르고 PostgreSQL 선택해서 데이터베이스 생성
Datasets 탭에서 +DATASET 클릭
DATABASE에서 Redshift, SCHEMA에서 analytics 선택
Select datbase table에서 user_session_summary 선택하고 CREATE DATASET AND CREATE CHART 실행
차트 유형을 선택하고 CREATE NEW CHART 클릭
다음과 같이 설정한다.
SAVE를 눌러 저장한다.
상단의 CHARTS에서 만든 차트를 확인할 수 있다.
위와 마찬가지로 cohort_summary 테이블을 Dataset으로 추가한다.
이번에는 다음과 같은 두가지 모양의 차트를 만든다.
첫번째는 특정 월에 방문한 사용자가 차례대로 그 다음 월에 얼마나 방문했는지 보여준다.
두번째는 cohort_month로 부터 특정 기간 후의 사용자 수를 보여준다.
차트 유형에서 pivot table을 선택한다.
다음과 같이 설정한다.
차트 1에서 Columns만 DATEDIFF(month, cohort_month,
visited_month)로 바꿔준다.
SAVE & GO TO NEW DASHBOARD를 선택하고 KPI Dashboard를 선택해 저장한다.
Dashboards에서 KPI Dashboard를 볼 수 있다.
Charts에서 MAU(Monthly Active User)를 선택해 마찬가지로 SAVE & GO TO NEW DASHBOARD 해준다.