LoginSignup
11
5

More than 5 years have passed since last update.

Superset on Docker

Last updated at Posted at 2017-04-02

背景と目的

実は、BIツール詳しくありません。
なので、勉強するためにまず環境を作ることから始めています。
先日は、Redashの環境をDockerで作りました。
今回は、Supersetの環境をDockerで作ります。
今後は、AWSのQuickSight、GoogleのData StudioとTableauを確認して比較評価出来ればと思います。

Dockerfileを作成するのも面倒な人用に、Docker Cloudにイメージをアップしました。
バージョンは、0.22.1です。

$ docker run -d -p 8088:8088 maedamikio/superset

あとは、ブラウザで localhost を開いて、
Username: admin
Password: admin
でOKです!!!

概要

Supersetとは?
対応データベース
インストール手順の確認
Dockerfileの作成
イメージの作成とコンテナの起動

Supersetとは?

Airbnbを利用している方いると思います。
Supersetは、Airbnbから公開されているBIツールです。
GitHubを確認すると興味深い画像が多数あります。

参考
https://github.com/airbnb/superset

対応データベース

有名なデータベースは対応してます。さらに、SqlAlchemy経由でデータベースにアクセス出来るのでさらに幅が広がりますね。

  • MySQL
  • Postgres
  • Presto
  • Oracle
  • SQLite
  • Redshift
  • Microsoft SQL Server
  • Impala
  • SparkSQL
  • Greenplum

SqlAlchemy経由

  • MySQL
  • Postgres
  • Oracle
  • SQLite
  • Microsoft SQL Server
  • Firebird
  • Sybase
  • IBM DB2、Informix
  • Redshift
  • EXAsolution
  • MonetDB
  • Snowflake
  • BigQuery

インストール手順の確認

公式インストール手順

パッと見た感じ、簡単そうでした。
そして、GitHubにDockerへのリンクがあり、こちらを使えば良いのですが、Dockerfileを見た所、最低限のデータベースのみ追加されている様です。
RedshiftとBigQueryを今後の検証で利用したいので、自分用にDockerfileを作成することにしました。

参考
https://hub.docker.com/r/amancevice/superset/

Dockerfileの作成

追加したデータベースのライブラリは以下です。

  • MySQL
  • Postgres
  • Presto
  • SQLite
  • Redshift
  • Microsoft SQL Server
  • Impala
  • SparkSQL
  • Greenplum
  • BigQuery

Dockerfile

FROM ubuntu:latest

ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

RUN apt-get update && apt-get install -y \
    build-essential \
    curl \
    libffi-dev \
    libldap2-dev \
    libmysqlclient-dev \
    libsasl2-dev \
    libssl-dev \
    python3-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN curl -sL https://bootstrap.pypa.io/get-pip.py | python3
RUN pip install \
    impyla \
    mysqlclient \
    psycopg2 \
    pyhive \
    pymssql \
    sqlalchemy-bigquery \
    sqlalchemy-redshift \
    superset

RUN fabmanager create-admin \
    --app superset \
    --username admin \
    --firstname admin \
    --lastname user \
    --email admin@fab.org \
    --password admin
RUN superset db upgrade
RUN superset load_examples
RUN superset init

EXPOSE 8088

CMD ["superset", "runserver"]

イメージの作成とコンテナの起動

イメージの作成は、まあまあ時間がかかります。

$ docker build -t superset .

コンテナの起動も、まあまあ時間がかかります。
起動後も動作がもたつきます。本格的に利用するにはスペックが必要ですね。

$ docker run -d -p 8088:8088 superset

まとめ

  • Dockerでイメージを作成しておけば、必要になったらコンテナを起動して、終わったら削除でスッキリできますね。環境を汚さなくて済むのが精神衛生的に嬉しいです。
  • ユーザ管理もしっかりしていて、 以下などが利用できるそうです。本格的に高スペックサーバを用意して、ユーザで共有して利用するときは重要ですね。
    • OpenID
    • LDAP
    • OAuth
    • REMOTE_USER through Flask AppBuiler
11
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5