ssung_데이터 엔지니어링/7주차_데이터 웨어하우스 관리와 고급 SQL, BI 대시보드

데이터 웨어하우스와 고급 SQL, BI 대시보드 (5)

ssungcohol 2023. 12. 1. 23:37

시각화 툴

  • 대시보드 혹은 BI (Business Intelligence)툴이라고 부름
  • KPI (Key Performance Indicator), 지표, 중요한 데이터 포인트들을 데이터를 기반으로 계산/분석/표시해줌
  • 결정권자들로 하여금 흔히 이야기하는 데이터 기반 의사결정을 가능하게함
    • 데이터 기반 결정 (Data-Driven Decision)
    • 데이터 참고 결정 (Data-Informed-Decision)
  • 현업 종사자들이 데티어 분석을 쉽게 할 수 있도록 함
  • 종류
     - Excel, Google Spreadsheet : 가장 많이 사용
     - Python : 데이터 특성 분석 (EDA : Exploratory Data Analysis)에 더 적합
     - Looker (구글)
     - Tableau (세일즈포스)
     - Power BI (마이크로소프트)
     - Apache Superset (오픈소스)
     - Mode Analytics, ReDash
     - Google Studio
     - AWS Quicksight (다른 툴에 비해 상당히 열악)

Looker

  • LookML이 자체 언어로 데이터 모델을 만드는 것으로 시작
  • 내부 고객뿐만 아니라 외부 고객을 위한 대시보드 작성가능
  • 고가의 라이센스 정책을 갖고 있으나 굉장히 다양한 기능 제공

Tableau

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

ReDash

  • 오픈소스로 시작
     - 이를 바탕으로 서비스를 제공하는 같은 이름의 회사가 존재
  • Superset과 상당히 흡사
     - 강력한 쿼리 에디터를 제공하지만 사용자 권한 관련 기능은 부족

Mode Analytics

  • SQL, R, Python 등을 기반으로 데이터 분석 가능
     - 조금 더 테크니컬한 인력을 대상으로한 애널리틱스 기능 제공
     - KPI 대시보드라기 보다는 EDA (Exploratory Data Analysis)툴에 가까움

시각화 툴 선택

  • Looker 혹은 Tableau가 가장 많이 사용되는 추세
     - 두 툴 모두 처음 배우는데 시간이 필요
     - Tableau의 가격이 더 싸고 투명하며 무료 버전도 존재하여 공부 가능
  • 셀프 서비스 대시보드를 만드는 것이 포인트
     - 그렇지 않으면 매번 사람의 노동이 필요해짐 : 60-70%의 질문을 셀프 서비스 대시보드로 할 수 있다면 성공
     - 사용하기 쉬워야 더 많은 현업 인력들이 직접 대시보드를 만들 수 있음 : 데이터 민주화, 데이터 탈중앙화, 데이터 품질이 점점 더 중요해지며 데이터 거버넌스가 필요한 이유
     - 해당 측면에서는 Looker가 더 좋은 선택이지만 가격이 상당히 비쌈

Superset

  • 다양한 형태의 visualization와 손쉬운 이터페이서 지원
  • 대시보드 공유 지원
  • 엔터프라이즈 수준의 보안과 권한 제어 기능 제공
  • SQLAlchemy와 연동
     - 다양한 데이터베이스 지원
  • Druid.id와 연동하여 실시간 데이터의 시각화도 가능
  • API와 플러그인 아키텍처 제공으로 인한 확장성이 좋음

Superset 구조와 용어

  • Flask와 React JS로 구성
  • 기본으로 sqlite를 메타데이터 데이터베이스로 사용
  • Redis를 캐싱 레이어로 사용
  • SqlAlchemy가 백엔드 DB 접근에 사용
  • Database/Dataset
     - Database == 관계형 데이터베이스
     - Dataset == 테이블
  • Dashboard/Chart
     - Dashboard는 하나 이상의 chart로 구성

Docker

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