Apache Superset(incubating) 정리

1. 소개


AirBnB에서 오픈소스(Apache2.0 라이센스)로 공개했다. Enterprise BI를 포지셔닝하고 있으며, 현재 Apache Incubating 프로젝트이다.
Web Application 형태로 사용 가능, 여담으로 공개되기 전 원래 프로젝트 이름은 Caravel과 Panoramix로 불렸다.
Hortonworks Data Platform 2.6 버전에 비 공식적으로 패키징 되어있다(rpm을 통해 설치 가능)


2. 특징
  •  데이터 탐색 및 시각화를 위한 BI 툴.
  •  대시보드 생성 및 공유 기능
  •  엔터프라이즈 환경 사용을 위한 보안(OpenID, LDAP, OAuth, REMOTE_USER 등)
  •  데이터 엑세스에 대한 세밀한 보안/권한 관리
  •  여러가지 DBMS 지원(MySQL,Postgres,Presto,Oracle,sqlite,Redshift,MSSQL,Impala,SparkSQL,Greenplum,Athena,Vertica + SQLAlchemy)

3. 설치
설치 과정은 OS/Python 버전 등에 따라 다르므로 아래의 문서를 참조.

다음은 CentOS 6, Python3.x 환경에서 설치 과정이다.

 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

 virtualenv venv
 . ./venv/bin/activate

 pip install --upgrade setuptools pip

 # superset 설치
 pip install superset

 # Admin 유저 생성(명령 수행 후 prompt에서 비밀번호 설정)
 fabmanager create-admin --app superset

 # Initialize the database(기본 설치 시 sqlite 사용)
 superset db upgrade

 # Load some data to play with(Optional)
 superset load_examples

 # default role 및 권한 설정
 superset init

 # Superset web 서버 실행 (-p [PORT] 옵션으로 포트 설정가능, default 8088)
 superset runserver

4. 설정
superset_config.py 파일을 생성하여 PYTHONPATH 디렉토리에 넣어주어야 한다. 기본 port, DB uri 등을 설정할 수 있다.
사용하는 DB에 따라 필요한 Python Package를 설치해야 한다. 필요 패키지는 아래 표 참조



database pypi package SQLAlchemy URI prefix
MySQL pip install mysqlclient mysql://
Postgres pip install psycopg2 postgresql+psycopg2://
Presto pip install pyhive presto://
Oracle pip install cx_Oracle oracle://
sqlite   sqlite://
Redshift pip install sqlalchemy-redshift postgresql+psycopg2://
MSSQL pip install pymssql mssql://
Impala pip install impyla impala://
SparkSQL pip install pyhive jdbc+hive://
Greenplum pip install psycopg2 postgresql+psycopg2://
Athena pip install "PyAthenaJDBC>1.0.9" awsathena+jdbc://
Vertica pip install sqlalchemy-vertica-python vertica+vertica_python://
ClickHouse pip install sqlalchemy-clickhouse clickhouse://

superset_config.py 파일


# Superset specific config
#---------------------------------------------------------
ROW_LIMIT = 5000
SUPERSET_WORKERS = 4

SUPERSET_WEBSERVER_PORT = 8088
#---------------------------------------------------------

#---------------------------------------------------------
# Flask App Builder configuration
#---------------------------------------------------------
# Your App secret key
SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h'

# The SQLAlchemy connection string to your database backend
# This connection defines the path to the database that stores your
# superset metadata (slices, connections, tables, dashboards, ...).
# Note that the connection information to connect to the datasources
# you want to explore are managed directly in the web UI
SQLALCHEMY_DATABASE_URI = 'sqlite:////path/to/superset.db'

# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True

# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''


4. Screen Shot & Demo




5. 참고 페이지
AirBnB 프로젝트 페이지 - http://airbnb.io/projects/superset/ 
Github - https://github.com/apache/incubator-superset
Apache 문서 - https://superset.incubator.apache.org/index.html

댓글

이 블로그의 인기 게시물

YARN & MRv2 리소스 설정

자주 쓰이는 Ambari REST API 정리