본문 바로가기

Minding's Programming/Knowledge

[BI/시각화] Superset

728x90
반응형

Superset

Looker, Tableau 등 다양한 시각화 도구들이 있지만, 기능이 많은 만큼 배우기 다소 어렵거나 비용이 든다는 단점이 있다. Superset은 Airbnb에서 시작된 시각화 관련 오픈소스로, 다양한 형태의 시각화와 손쉬운 인터페이스를 지원한다. SQLAlchemy와 연동되어 다양한 DB를 지원하고, 실시간 데이터 시각화 및 API와 플러그인 아키텍처로 확장성도 좋다.

 

Superset은 Flask와 React JS로 구성되어 있으며, sqlite를 메타데이터 DB로 사용한다. Redis를 캐싱 레이어로 사용하고, SqlAlchemy가 백엔드 DB 접근에 사용된다.

 

Preset으로 Superset 사용해보기

Superset은 크게 2가지 방법으로 사용해볼 수 있다. 첫 번째 방법은 preset이라는 서비스를 통해 웹 페이지에서 실행하는 것이고, 두 번째 방법은 Docker 상에서 실행하는 것이다.

 

웹에서 실습하기

https://preset.io/

 

Modern BI Powered by Open Source Apache Superset™

Powerful, easy to use data exploration and visualization platform, powered by open-source Apache Superset™. Modern business intelligence for your entire organization.

preset.io

위 링크로 preset 홈페이지에 접속해 회원가입을 진행한다. (Sign up for free)

 

첫 14일 동안에는 Professional 플랜을 무료로 이용할 수 있다고 한다.

 

로그인을 진행하면 위와 같은 대시보드가 노출되는 것을 확인할 수 있다.

 

Docker에서 Superset 설치해 사용하기

Docker 설치는 이 링크를 참고하길 바란다. --> Docker의 개념 및 기본 실행 명령어

 

[Docker] Docker의 개념 및 기본 실행 명령어

Docker Docker는 애플리케이션을 컨테이너라는 독립된 환경에서 실행할 수 있게 해주는 Linux 컨테이너 기반 플랫폼이다. 애플리케이션과 관련된 라이브러리와 종속성을 하나의 패키지로 묶어 어디

minding-deep-learning.tistory.com

 

Docker 설치를 마쳤다면 이제 Superset을 설치할 차례이다. (https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/ <-- Superset docker 설치 공식문서)

터미널 창에 아래 명령어를 입력해 superset을 clone 받는다. (나의 경우는 Windows 환경에서 WSL2를 설치해 Ubuntu에 설치했다.) git clone을 통해 파일을 다운로드 받으면 최신 버전을 다운로드 받는 것이므로, 안정성이 걱정된다면 git checkout 명령어를 이용해 특정 버전을 받는 것도 방법이다.

git clone https://github.com/apache/superset.git

clone을 마쳤다면 해당 폴더로 이동해 2개의 명령을 차례로 실행한다. (이미지를 다운받고 docker 컨테이너 실행)

cd superset

docker compose -f docker-compose-non-dev.yml pull
docker compose -f docker-compose-non-dev.yml up

이미지를 생성하고 컨테이너를 실행하는데 다소 시간이 걸리니 인내의 시간을 가져보도록 하자.

 

Docker Desktop 또는 터미널에서 컨테이너 실행이 확인되면, 기본 admin 주소인 http://localhost:8088/ 에 접속해보자.

 

로그인 화면이 노출될텐데, id와 비밀번호로 모두 'admin'을 입력하면 관리자 계정으로 접속 가능하다.

위와 같은 화면이 노출되고, 이제 데이터베이스를 연결해 사용해볼 수 있다.

 

Redshift를 Superset에 연결해보기

우측 상단 'Settings' 메뉴에 'Database Connections' 항목을 선택한다.

 

또 다시 우측 상단에 있는 '+ Database' 버튼을 클릭한다.

Superset 내에서 사용할 DB 유형을 선택할 수 있다. 나는 PostgreSQL을 선택했다.

 

이제 연결할 Redshift의 정보를 입력한다. Host에는 해당 redshift의 엔드포인트, Port는 5439다. 계정은 관리자 대신 사용자를 따로 만들어 사용하기를 추천한다.

 

 

위와 같이 정상적으로 연결된 것을 확인할 수 있다.

 

Dataset 추가 및 차트 생성

위에서 연결한 redshift에서 테이블을 Dataset으로 추가해보자.

상단 메뉴에서 'Datasets'를 선택한다.

 

우측 상단 '+ Dataset' 클릭

 

좌측에서 원하는 DB, 스키마, 테이블을 선택한다. 그리고 우측 하단 'CREATE DATASET AND CREATE CHART'를 클릭힌다.

 

위와 같은 화면이 나오게 된다. 여기서 원하는 타입의 차트를 선택한 뒤, 'Create new chart'를 누른다.

 

위와 같은 형식으로 원하는 차트를 생성할 수 있다. 컬럼을 지정하거나 SQL문으로 커스텀할 수도 있다.

 

위와 같이 chart가 오른쪽에 보이는 것을 확인할 수 있다. 'Save'를 눌러 이 데이터셋과 차트를 저장할 수 있다.

 

저장 후 상단 Charts 항목에서 방금 생성한 차트를 확인할 수 있다.

 

차트를 Dashboards에 추가하기

우선 Dashboard는 아래 2가지 방법으로 추가할 수 있다.

 

1. 차트 저장 시 대시보드 생성

 

2. Dashboards 탭에서 생성

 

 

위처럼 대시보드를 생성했다면, 아무 대시보드에도 소속되지 않은 차트를 추가할 수 있다.

기존에 만들었던 차트에 진입해서 오른쪽 상단 'Save'버튼을 눌러보자.

 

저장 팝업에서 새로운 대시보드를 선택해 지정할 수 있다!

 

대시보드 편집

생성한 대시보드에 진입해 'Edit dashboard' 클릭

위와 같이 차트의 크기나 위치 등을 조정할 수 있다.

 

 

728x90