지난 포스팅에 이어서, superset에 대해 더 자세히 알아보고 docker로 설치해보겠다.
Superset이란?
Airbnb에서 시각된 오픈소스로, Airflow를 만든 Maxim이 같이 시작한 오픈소스이다.
- 깃허브 (https://github.com/apache/superset) 있음
- 상용화 서비스 시작됨
- Maxim이 직접 창업했으며 https://preset.io 가서 계정 생성 후 실습 가능함
1. 특징
- 다양한 Visualization 가능하며 직관적인 UI
- 대시보드 공유
- 보안과 권한 제어 기능 제공
- SQLAlchemy와 연동되어, SQLAlchemey와 연동되는 모든 데이터베이스를 사용가능함 ✨
- Druid.io연동하여 실시간 데이터 시각화 가능
- API와 플러그인이 있어 확장성 좋음
- role 기반으로 대시보드의 사용자 권한 지정 가능함✨
2. 구조
- python으로 제작됨
- 웹UI는 Flask와 React JS로 구성됨
- 기본적으로 sqlite를 메타데이터 데이터베이스로 사용함
- 이는 병렬성 떨어지기때문에 Mysql나 PostgreSQL를 주로 사용함
- Redis를 캐싱 레이어로 사용하여 성능 최적화함 ✨
- SQLAlchemy가 백엔드 DB 접근에 사용됨✨
3. 🌟용어🌟
Superset에서는 테이블을 Dataset이라고 표현한다
Database : 관계형 데이터베이스 (백엔드 DB) (ex. Redshift)
Dataset : 테이블
Dashboad/chart : Dashboard는 하나 이상의 chart로 구성됨
4. 설치/사용 방법
Superset은
(1) Preset.io 에 가서 온라인으로 사용하거나 혹은
(2) 오픈소스이므로 git에서 다운받아서 docker로 실행하는 방법
총 2가지가 있다.
- Docker에 익숙하고 개인컴퓨터 사양이 충분히 좋다면 Docker가 더 좋다.
(1) Preset.io 에서 이용하기
- Preset.io는 회사 이메일이 있어야만 무료플랜 사용가능하다
- Preset.io은 Superset 오픈소스를 기반으로 변경된 버전을 사용하는 형태로 오픈소스 버전과 크게 다르지 않다.
- Preset의 Workspace는 하나의 Superset에 해당하고, 여러 Workspace를 넘나드는 사용자와 팀 설정이 가능함
- 무료 계정은 workspace 1개까지만 가능
- workspace 안에는 여러개의 database 만들고 작업할 수 있음
- 여러 database를 연동할 수 있으며, redshift와 연동시에는 옵션에서 'Amazon Redshift' 선택하면 된다.
(2) Docker로 설치하고 사용하기
Preset.io에서 온라인으로 무료로 사용하려면 , 회사 계정이 필요하므로
docker를 이용하여 설치해보겠다.
나는 이미 Windows10에 Docker가 설치되어 있기에 바로 docker compose로 생성해보겠다.
Docker Compose로 Superset 로컬 설치 in Windows10
1. 작업 환경 폴더 생성 및 이동
cd E:\\docker\\superset
2. git 클론
git clone https://github.com/apache/superset.git
cd superset
3. docker-compose 명령어 실행
docker-compose -f docker-compose-non-dev.yml pull
docker-compose -f docker-compose-non-dev.yml up
‼ docker compose pull하고 up 하는데 시간 많이 드니까, 실행해두고 다른 이론 먼저 학습하는 것을 추천한다!
만약 최신 버전/특정 버전을 다운로드하려면 아래를 먼저 실행한다.
git checkout 1.4.0
참고로 실습에 사용한 Superset 버전은 최신버전 2.1.0이다.
*docker-compose란 여러 컨테이너로 구성된 애플리케이션을 정의하고 실행하기 위한 도구로, 단일 호스트에서 여러 컨테이너 간의 관계, 설정 및 서비스 구성을 관리할 수 있다.
4. 접속하기
http://localhost:8088 으로 웹 UI 로그인 가능하다.
- 오픈소스 버전에는 database 연결할때 redshift가 없기때문에, redshift와 호환이 되는 postgresql을 선택하여 redshift 계정과 연동한다.
- 그리고 참고로 superset에 연결하고 나면 테이블 정보가 뜨는데, 이는 데이터를 모두 갖고 있는게 아니고 우리가 데이터를 사용할때 그때 redshfit에서 데이터를 불러옴
Superset에 대해 알아보고 Docker로 설치해서 잘 실행되는 것까지 확인했다.
이제는 실전이다.!
AWS Redshift의 데이터를 가져와 Superset으로 chart2개를 만들고 대시보드 만드는 실습을 진행해보자 🙌
실습은 다음 포스팅에 이어 작성하겠다!
'#️⃣ Data Engineering > BI,DashBoard' 카테고리의 다른 글
Superset의 시각화 Chart 종류 (0) | 2023.05.30 |
---|---|
Superset에서 Redshift테이블을 시각화하기(KPI 대시보드) (0) | 2023.05.26 |
시각화 툴과 종류 알아보기 (0) | 2023.05.26 |