[데이터 엔지니어링 데브코스 2기] TIL-8주차-파트06 데이터 웨어하우스 관리와 고급 SQL과 BI 대시보드(5)

이재호·2023년 12월 1일
0

1. 시각화 툴

  • 대시보드 혹은 BI(Business Intelligence) 툴이라고 부르기도 함.
  • KPI(Key Performance Indicator)와 같은 지표와 데이터 등을, 데이터를 기반으로 계산/분석/표시해 주는 툴.
  • 데이터 결정권자들에게 많은 도움이 됨.
    • 데이터 기반 결정(Data-Driven Decision)
    • 데이터 참고 결정(Data-Informed Decision)
  • 혹은 현업 종사자(Citizen Data Analysist)들이 데이터 분석을 쉽게 할 수 있도록 해 줌.
  • EDA(Exploratory Data Analysis): 데이터 탐방. 에도 수행될 수 있음.

1-1. 툴 종류

  • Excel, Google Spreadsheet
  • Python
  • Looker
  • Tableau
  • Power BI
  • Apache Superset
  • Mode Analytics, ReDash
  • Google Studio
  • AWS Quicksight

1-2. Looker(구글)

  • LookML 자체 언어로 데이터 모델을 만드는 것으로 시작.
  • 내/외부 고객을 위한 대시보드 작성 가능.
  • 고가의 라이선스 정책이지만 다양한 기능 제공.
  • 한 번 대시보드를 만들어 놓으면 수정이 매우 쉬움. (템플릿을 사용하기에 용이함.)
  • 하지만 대시보드 디스커버리 문제가 발생할 수 있음.

1-3. Tableau(세일즈포스)

  • 다양한 제품군 보유, 일부는 사용이 무료.
  • 제대로 배우려면 시간이 꽤 필요하지만 강력한 대시보드 작성 가능.
  • Looker가 나오기 전까지는 오랫동안 마켓 리더로 군림했었음.
  • 극히 일부의 전문 인력만 대시보드 작성 가능.

1-4. Mode Analytics

  • SQL, R, Python 등을 기반으로 데이터 분석 가능.
  • 테크니컬한 기술 필요.
  • KPI 대시보드보다는 EDA 툴에 적합함.

1-5. 어떤 시각화 툴을 선택할 것인가?

  • Looker 혹은 Tableau가 가장 많이 사용되는 추세임.

    • 두 툴 모두 처음 배우는 데 시간이 필요.
    • Tableau의 가격이 더 저렴하고 투명하며 무료 버전도 존재함.
  • 중요한 관점은 셀프서비스 대시보드를 만드는 것.

    • 데이터 민주화/탈중앙화가 필요.
    • 해당 측면에서는 Looker가 더 적합하지만, 가격이 더욱 비쌈.

2. Superset

  • Airbnb에서 시작된 오픈소스.
  • 상용화 서비스도 존재.
  • 다양한 형태의 시각화와 손쉬운 인터페이스 지원.
  • 대시보드 공유 지원.
  • 기업 수준의 보안과 권한 제어 기능 제공.
  • SQLAlchemy와 연동.
  • Druid.io와 연동하여 실시간 데이터의 시각화도 가능.
  • API와 플러그인 아키텍처 제공으로 인한 높은 확장성.

2-1. Superset 구조와 용어

  • Flask와 React JS로 구성됨.
  • 기본으로 sqlite을 메타데이터 데이터베이스로 사용.
  • Redis를 캐싱 레이어로 사용.
  • SQLAlchemy가 백엔드 DB 접근에 사용됨.
  • Database/Dataset:
    • Database : 관계형 DB. (예: Redshift)
    • Dataset : 테이블
  • Dashboard/Chart : 대시보드는 하나 이상의 차트로 구성.

2-2. 실습용 대시보드

  • Database로 Redshift 사용.
  • 채널별 Monthly Active User 차트.
  • Monthly Cohort 차트.
  • 위 두 개의 차트로 하나의 대시보드를 생성.

2-3. 코호트 분석이란?

  • 코호트(Cohort)란?
    • 특정 속성을 바탕으로 나뉘어진 사용자 그룹.
    • 보통 속성은 사용자의 서비스 등록 월.
  • 코호트 분석이란?
    • 코호트를 기반으로 다음을 계산.
    • 사용자의 이탈률, 잔존률, 총 소비 금액 등.
  • 코호트 기반 사용자 잔존률 (Retention)
    • 보통 월 기반으로 시각화해서 보는 것이 일반적.

2-4. 스프레드시트로 해보는 실습

  • mau와 monthly cohort에 대한 대시보드.

  • Python에서 gspread라는 모듈을 통해 구글 스프레드시트 조작 가능함.


3. Superset 설치

  • Docker 혹은 https://preset.io/에 있는 서비스 사용.
  • Docker는 Superset 오픈 소스를 그대로 쓰는 형태.
  • Preset.io는 무료 Starter 플랜이 있으나 회사 계정 필요.

Docker란,

  • 특정 프로그램과 해당 프로그램에 필요한 기타 소프트웨어들을 하나의 패키지로 만듦으로써 해당 프로그램의 개발과 사용을 도와주는 오픈 소스 플랫폼.
- 이 패키지를 파일 시스템 형태로 만드는데, 이를 Docker Image라고 함.
- Image 공유소를 Docker Hub이라고 함.
- Docker Image를 실행시킨 것을 Docker Container(일종의 가상 컴퓨터)라고 부르며, 이 안에서 프로그램이 실행됨. (Docker Engine이 실행되고 있는 상태에서 가능.)

3-1. Docker Superset 실행

  • 기본 조건: 윈도우는 8GB의 메모리, 맥은 6GB의 메모리 필요.

  • 터미널 실행 및 적당한 폴더로 이동.

  • Superset Github repo를 클론. git clone https://github.com/apache/superset.git

  • superset 폴더로 이동.

  • 아래 두 명령어 입력. (docker engine이 켜저 있는 상태에서.)

    	- 만약 최신 버전을 원한다면, ```git checkout 1.4.0 ```	입력.	
    • docker-compose -f docker-compose-non-dev.yml pull : Image 다운로드.
    • docker-compose -f docker-compose-non-dev.yml up : 컨테이너로 실행.
  • http://localhost:8088로 웹 UI 로그인 (id: admin / pw: admin)


4. Superset 실습

  1. 메인 페이지에서 Settings에서 Databases를 선택한 후, Database를 추가한다. (다만, Superset의 경우, Redshift가 없기 때문에 이와 연동되는 PostgreSQL로 설정한다.)

  2. 메인 페이지에서 Datasets에 들어가서 +Dataset을 한다. (원하는 Database, Schema, table을 선택. 실제로 데이터를 가져오지는 않고, 메타 정보만 가져 옴.)

    업로드중..

  3. 다음으로 차트를 선택하여 생성한다. (차트 종류는 다양하게 있으니, 서치하여 적당한 차트를 선택한다.)

    업로드중..

  4. 그래프에 필요한 정보를 입력한 후, UPDATE CHART를 수행한다. (필요 시 해당 차트를 SAVE한다.)

    업로드중..

profile
천천히, 그리고 꾸준히.

0개의 댓글