Apache Supersetを公式Dockerイメージで構築してみた

2021.01.29

こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。

モダンデータ探索・視覚化プラットフォーム(BIウェブアプリケーション)の「Apache Superset」というオープンソースのアプリケーションがあります。Airbnbによって開発され、2017年にはApache Incubatorプロジェクトになりました。

先日、このApache Supersetがトップレベルプロジェクトになったとのことで、実際にどのようなものなのか触ってみました。

前提

環境は以下で試しています。

  • OS
    • macOS Catalina
  • Docker Desktop
    • 2.3.0.3

セットアップ

まずはDockerfiledocker-compose.ymlファイルを作成します。調べてみると、以前は「公式のイメージがなかった」、「公式のイメージがあってもうまく動かなかった」という情報をいくつか見かけたのですが、現在は公式イメージもあるようなので、まずは試してみます。(なお、結果としてちゃんと動きました)

公式イメージはこちらになります。イメージの利用方法についても記載があるので、こちらを参考にしつつ、Dockerfiledocker-compose.ymlファイルを作成していきます。

ディレクトリ構成

ディレクトリ構成としては、今回は以下のようにしました。

superset
┣ build
┃ ┗ superset
┃   ┗ Dockerfile
┗ docker-compose.yml

Dockerfile

Dockerfileは以下のようにしています。アカウント情報は公式ページのサンプルのままですが、適宜変更してください。

FROM apache/incubator-superset:latest

# Setup local admin account
RUN superset fab create-admin \
                 --username admin \
                 --firstname Superset \
                 --lastname Admin \
                 --email admin@superset.com \
                 --password admin

# Migrate local DB to latest
RUN superset db upgrade

# Load Examples
RUN superset load_examples

# Setup roles
RUN superset init

docker-compose.yml

docker-compose.ymlは以下のとおりです。ポートのマッピングはそのまま8080にマッピングしました。

version: "3.7"

services:
  superset:
    build:
      context: ./build/superset
    ports:
      - "8080:8080"

ビルド&立ち上げ

あとはdocker-compose.ymlファイルと同階層に移動して、docker-composeコマンドで、ビルド&立ち上げを行います。

$ docker-compose up -d

しばらくして(数分程度) Creating superset_superset_1 ... done と表示されたら完了です。

実際にアクセスしてみる

では、実際にブラウザでアクセスしてみます。http://localhost:8080 にアクセスするとログイン画面が表示されます。

ここにはDockerfileに記載したユーザ名とパスワード(今回はadmin,admin)を入力してログインします。ログインすると、サンプルのダッシュボードがいくつかあるので見てみます。

こちらはVideo Games Salesというダッシュボードです。データは2017年頃までのデータのようなので、ちょっと古いですね。

トレンド情報を見てみると、グローバル市場でのゲームの売上トップが「Kinect Adventures!」なのが分かりますね。(意外!)GTAやCall of Dutyが強いのは、なんとなく納得です。

他にもいくつかサンプルダッシュボードがあり、全部で10個のダッシュボードがありました。

まとめ

以上、Apache Supersetを公式Dockerイメージで構築してみました。

Dockerイメージがあるので、サクッとBI環境が構築できて良い感じですね。今回は環境の構築まででしたが、今後は実際にBIダッシュボードの作成や、色々なデータソースへの接続を試してみたいと思います。

どなたかのお役に立てば幸いです。それでは!