데브코스 TIL

BI 대시보드

예니ㅣ 2023. 12. 1. 13:29

강의

시각화 툴

"시각화 툴"은 대시보드 혹은 BI(Business Intelligence)툴이라고 부릅니다.

KPI(Key Performance Indicator), 지표, 데이터 포인트를 데이터 기반(Data-Driven)으로 계산/분석/표시해주는 툴 입니다.

 

시각화 툴 종류

Looker 혹은 Tableau를 많이 사용하는 추세 입니다.

  • Excel, Google Spreadsheet
  • Python
  • Looker
    • LookML : 자체언어로 데이터 모델 생성
    • 내부 및 외부 고객을 위한 대시보드 작성 가능
    • 생성 후 수정 용이
    • 정보 과부하 문제 가능성
  • Tableau
    • 초기 사용이 어렵지만 강력한 대시보드 작성 가능
  • Power BI
  • Apache Surperset
  • Mode Analytics
    • KPI 대시보드보다 EDA(Exploratory Data Analysis)에 가까움
  • ReDash
    • Superset과 매우 유사
    • 쿼리 에디터 용이
    • 사용자 권한 관련 기능 부족
  • Google Studio
  • AWS Quicksight

 


Superset

"Superset"은 시각화 툴 입니다.

  • 다양한 형태의 시각화(visualization) 및 쉬운 인터페이스 지원
  • 대시보드 공유 지원
  • 엔터프라이즈 수준의 보안 및 권한 제어 기능 제공
  • SQLAlchemy 연동
  • Druid.io 연동 → 실시간 데이터 시각화 가능
  • API 및 플러그인 아키덱처 제공 → 확장성 용이

 

Superset 구조

  • Flask 및 React JS로 구성
  • sqlite 기반 메타데이터 데이터베이스
  • Redis 캐싱 레이어 사용
  • SQLAlchemy가 백엔드 DB 접근에 사용

 

Superset 용어

  • Database : 관계형 데이터베이스(ex Redshift)
  • Dataset : 테이블
  • Dashboard : 다수의 Chart로 구성
  • Chart

 

Superset 설치

  • Docker 이용
    • Docker 익숙할 경우
    • 개인 컴퓨터 사양이 충분할 경우
git clone https://github.com/apache/superset.git

cd superset

git checkout 1.4.0

docker-compose -f docker-compose-non-dev.yml pull
docker-compose -f docker-compose-non-dev.yml up
  • Preset.io 서비스 이용
    • 회사 이메일이 있는 경우
  • 리눅스 서버 이용

 


코호트 분석

"코호트"(Cohort)는 특정 속성을 바탕으로 나뉘어진 사용자 그룹 입니다.

"코호트 분석"은 코호트를 기반으로 사용자의 이탈률 혹은 잔존률, 총 소비금액 등을 계산하는 것입니다.

일반적으로 월기반으로 시각화 합니다.

# cohort_summary 생성
CREATE TABLE analytics.cohort_summary as 
	SELECT cohort_month, visited_month, cohort.userid
    FROM (
    	SELECT userid, data_trunc('month', MIN(ts)) as cohort_month
        FROM raw_data.user_session_channel AS USC
        JOIN raw_data.session_timestamp AS T
        	ON T.sessionid = USC.sessionid
        GROUP BY 1
    ) as cohort
    JOIN (
    	SELECT DISTINCT userid, date_trunc('mont', ts) as visited_month
        FROM raw_data.user_session_channel AS USC
        JOIN raw_data.session_timestamp AS T
        	ON T.sessionid = USC.sessionid
    
    ) as visit
    	ON cohort.cohort_month <= visit.visited_month and cohort.userid = visit.userid;
# 코호트 시각화용 전처리
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;

 

 

 

'데브코스 TIL' 카테고리의 다른 글

Github Actions 소개  (0) 2023.12.20
리눅스 이해하기  (0) 2023.12.12
Snowflake 운영과 관리  (0) 2023.11.30
데이터 웨어하우스 옵션  (1) 2023.11.27
상속(Inheritance)과 오버라이딩(Overriding)  (0) 2023.11.06