소개
Apache Superset은 데이터 시각화 및 비즈니스 인텔리전스(Business Intelligence, BI) 플랫폼으로, 데이터 분석 및 대시보드 작성을 위한 다양한 기능과 도구를 제공합니다. 다음은 Apache Superset의 주요 특징과 장단점입니다:
장점
다양한 데이터 소스 지원: Apache Superset은 다양한 데이터 소스에 대한 연결과 쿼리 작성을 지원합니다. 주요 데이터베이스 시스템과 연동하여 데이터를 시각화하고 대시보드를 생성할 수 있습니다.
시각화 기능: Superset은 다양한 시각화 차트와 그래프를 제공하여 데이터를 직관적으로 이해하고 전달할 수 있습니다. 사용자는 차트 유형, 축 설정, 필터링 등을 사용하여 데이터를 시각적으로 탐색하고 인사이트를 발견할 수 있습니다.
대시보드 및 리포트 작성: Apache Superset은 대시보드 및 리포트를 작성하기 위한 사용자 친화적인 인터페이스를 제공합니다. 사용자는 다양한 차트와 필터를 조합하여 대시보드를 구성하고, 대시보드를 공유하거나 내보내는 기능을 활용할 수 있습니다.
확장성: Superset은 Apache Software Foundation의 프로젝트로 개발되었으며, 커뮤니티의 지속적인 지원과 개선이 이루어지고 있습니다. 다양한 플러그인과 확장 기능을 제공하여 사용자의 요구에 맞게 커스터마이징할 수 있습니다.
단점
학습 곡선: Superset은 다양한 기능과 설정을 제공하기 때문에 처음 사용자에게는 학습 곡선이 있을 수 있습니다. 사용자는 Superset의 기능과 설정을 충분히 이해하고 활용하기 위해 시간과 노력을 투자해야 합니다.
사용자 정의 기능의 한계: Apache Superset은 다양한 기능을 제공하지만, 특정한 사용자 정의 요구사항을 충족시키기 위해서는 추가적인 개발 노력이 필요할 수 있습니다. 사용자가 특정한 요구사항을 가지고 있다면, Superset의 확장성과 사용자 정의 기능 제공 여부를 사전에 확인해야 합니다.
시스템 요구 사항: Superset은 대량의 데이터를 처리하고 다양한 차트와 대시보드를 생성하기 위한 리소스가 필요합니다. 대규모 데이터베이스 및 시스템 환경에서 최적의 성능을 발휘하기 위해 적절한 하드웨어 및 인프라 구성이 필요할 수 있습니다.
일단 superset은 도커 컨테이너 위에 설치하는 방법, 그리고 도커 컨테이너 없이 설치하는 방법이 있습니다. 우선 저는 도커 없이 WSL에 설치해보겠습니다.
- 설치 환경
- server : WSL
- OS : Ubuntu
- Python : 3.10
설치
0. 깃허브
https://github.com/apache/superset
공식 APACHE SUPERSET 레퍼지토리가 있습니다. 여기서 버전 확인해가면서 설치하면 좋습니다.
1. 종속성 패키지 설치
호스트에 설치하는 경우 os 환경에 대한 종속성을 가집니다. 설치에는 root 권한이 필요합니다!
apt update
apt install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev
2. (권장, 선택사항) python 가상환경 생성
# 가상 환경 생성
python3 -m venv superset
# 활성화
source superset/bin/activate
기존 python 환경에 영향이 없도록, 별도의 가상환경을 생성해서 사용하겠습니다. 설치하다가 실수가 발생할 수도 있으니, 웬만하면 가상환경 생성 후 진행하시는 것이 좋습니다.
3. wheel 설치
pip install wheel
ERROR : Failed building wheel for apache-superset <- 이 에러가 발생할 수도 있으니, 한번 설치해서 업데이트해줍니다.
4. Superset 설치
pip install apache-superset
5. Superset 설치 확인
superset --help
6. cryptography 의존성 확인 및 설치
버전별로 업데이트가 잘되어있습니다. 공식 github 브랜치 들어가서 버전에 맞춰서 들어간 다음 requirements -> base.txt 확인합니다. 제 경우엔 Superset이 2.10버전이 설치 되어서, 그에 맞게 cryptography==39.0.0 설치 했습니다.
https://github.com/apache/superset/blob/2.1/requirements/base.txt
실행
1. 데이터베이스 초기화
superset db upgrade
db 명령어가 없다고 하면
export FLASK_APP=superset
pip install wtforms==2.3.3
이렇게 FLASK_APP 환경변수 설정 후, 라이브러리 wtforms 라이브러리를 설치합니다.
2. 관리자 계정 생성
export FLASK_APP=superset
superset fab create-admin
환경변수 설정하고, 관리자 계정 설정해줍니다. id 비밀번호 입력하라고 나옵니다.
3. 기본 역할 및 권한 생성
superset init
4. superset 실행
로컬 호스트일 때
superset run -p 8088 --with-threads --reload --debugger
외부접속이 불가피한 EC2의 경우
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger
5. 접속 및 로그인
EC2에서는 "<EC2 엔드포인트>:<PORT>" 또는 "<EC2 IP>:<PORT>"로 접근할 수 있습니다. TLS 구성을 하지 않았다면 http를 사용하면 됩니다. 일단 저는 wsl에 설치해서 localhost:8088로 접속했습니다.
에러 관련 대처법
1. FLAGS
- 에러
module 'sqlparse.keywords' has no attribute 'FLAGS'
- 해결법
pip install sqlparse=='0.4.3'
sqlparse 다운그레이드해주시면 됩니다
https://github.com/apache/superset/issues/23742
2. flask run Error: Could Not Import "App" and "App.py"
제 경우엔 이상하게 환경변수가 꼬여있어서, 실행파일이 이상하게 지정되어있었는데, 이건 공식 레포지토리 들어가서, 실행파일 지정만 잘해주면 됩니다.
export FLASK_APP="superset.app:create_app()"
export FLASK_ENV="development"
https://github.com/apache/superset/blob/2.1/.flaskenv
'데이터 분석 및 시각화 > 데이터 시각화' 카테고리의 다른 글
[SUPERSET] 대시보드 REACT 임베딩 하는법(동적 쿼리) (4) | 2023.06.06 |
---|---|
[Python] folium (0) | 2023.01.31 |
[Python] Seaborn(stripplot, swarmplot, catplot, jointplot, pairplot, Pandas pivot table), Pandas Pivot table (0) | 2023.01.27 |
[Python] Seaborn(barplot, boxplot, violinplot) (0) | 2023.01.27 |
[Python] Seaborn(style 세팅, 카운트 플롯, 히스토그램(displot)) (0) | 2023.01.26 |