SuperSet이란?

Apache(글 작성 기준 아직은 인큐베이팅)에 속한 오픈소스 웹기반의 데이터 시각화 툴입니다. 소개글엔 직관적이고 예쁘게 시각화를 할 수 있고, 가볍고 빠르다고 합니다. 자세한 사항은 Github Repository를 참고해주세요.

설치 및 실행

준비물

  • Python - Python 2.7과 3.4에서 테스트가 완료되었다고 한다. Airbnb에서는 2.7을 사용중이며, 2.6 이하는 지원 할 예정이 없다고 함.

  • virtualenv - 당연히 있겠죠? (라고 썼는데 막상 없어서 글쓰다가 pyenv설치함)

  • OS Dependencies: Cryptography 위해 운영체제 Dependency 가 존재한다고 한다. 각 운영체제에 맞게 다음 명령어를 입력해준다.

    • Ubuntu and Debian

      sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev

      • Ubuntu 16.04의 경우 아래 명령어 또한 추가해준다.

        sudo apt-get install build-essential libssl-dev libffi-dev python3.5-dev python-pip libsasl2-dev libldap2-dev

    • Fedora and RHEL

      sudo yum upgrade python-setuptools
      sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
      
    • OSX

      brew install pkg-config libffi openssl python
      env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography==1.9
          
      # 문서에는 안 나와있는 내용인데, 진행중 에러가 발생하여 추가함.
      pip install contextlib2
      

설치와 초기화

진행에 앞서 공식 문서에는 나와 있지 않지만, 아래의 명령어를 입력하고 시작한다. 현재 dependency 관련 문제가 있는 듯 보인다.

pip install 'Flask<1.0.0'
pip install 'SQLAlchemy-Utils~=0.0,<0.33'

다음 명령어를 입력해준다.

# Superset 설치, 
pip install superset

# 어드민 유저를 생성한다. (contextlib2 모듈 임포트 관련 에러가 발생하면 pip로 설치해준다.)
fabmanager create-admin --app superset

# DB 초기화
superset db upgrade

# 가지고 놀 데이터 예제 가져오기
superset load_examples

# 퍼미션과 기본적인 롤 초기화
superset init

# 기본적으로 8088 포트로 올라가며, 다른 포트 사용 원할시 -p 옵션을 사용한다.
# superset runserver -d

사이트 접속

http://localhost:8088 로 접속하여, 아까 입력했던 어드민 정보로 로그인 한다. 로그인 하면 아래와 같은 화면을 볼 수 있다.

Imgur

아까 예제 가져오기를 했기 때문에 기본적인 샘플데이터가 있고, 따로 DB를 설정하기 위해선 아래와 같은 방법으로 진행한다.

DB 설정

상단 메뉴에서 [Sources] -> [Databases] 클릭

Imgur

우측 상단의 + 버튼 클릭

Imgur

Database 이름을 입력한 뒤 MySQL 기준으로 다음과 같이 URI를 설정해준다.

mysql://{username}:{password}@{hostname}/{database_name}

Imgur

Test Connection을 눌러서 정상적으로 연결 되었는 지 확인한뒤, Save를 눌러서 저장해준다.

같은 방법으로 [Datasources] -> [Tables] 에서 테이블을 등록해준다. Schema를 적는 칸이 있지만 Postgres, Redshift, DB2를 사용하지 않는다면 가볍게 무시해주고 Table Name만 적어준다.

마무리

사실 차트위주로 하고 싶었는데, 데이터 특성상 공개할 수 없는 면과 차트 관련은 어렵지 않게 할 수 있을 것 같아서 일단 생략한다.