読者です 読者をやめる 読者になる 読者になる

そんな今日この頃の技術ネタ

本家側に書くほどでもない小ネタ用

Airbnb版Redash(?)なSupersetをひとまずDockerで立ち上げてみる

データ可視化 Docker Superset

Web上でSQLを記述・保存できて気軽にデータの可視化できるスグレモノRedash。

blue1st-tech.hateblo.jp

Redashはシンプルながらも十分な機能があるのだが、 一方で使い込んでくるともう少しグラフに表現力があれば・・・とか、 ダッシュボードの配置がもっと柔軟なら・・・とか思ったりする場面もある。

そこで代替になりそうなのがAirbnb版RedashとでもいうべきSuperset。

github.com

(以前のまだ「Caravel」という名前だった頃から試してみようとは思いつつ時間を取れないでいたら、 いつの間にか名前が変わってた。)

今回はひとまずDockerで導入を行ってみた。


おおよそは手順は公式のドキュメントに従えばよいのだが、 いくつかそのままではすんなり行かない点もあった。

Installation & Configuration — Superset's documentation documentation

  1. 環境によっては「gcc-c++」を入れる必要がある
  2. pipで「flask-sqlalchemy==2.0」を入れる必要がある(以降のバージョンではコマンドが失敗する)

これらを盛り込んでDockerfileを記述すると以下のようになる。

(本来はAlpineかせめてDebianを使うのがイメージサイズ的にベターなんだが、諸般の事情でCentOSで)

FROM centos:7

RUN yum update -y
RUN yum upgrade python-setuptools
RUN yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel mysql-devel postgresql-devel

RUN curl -kL https://bootstrap.pypa.io/get-pip.py | python
RUN pip install --upgrade setuptools pip
RUN pip install flask-sqlalchemy==2.0 superset
# 必要に応じて色々導入する
RUN pip install mysqlclient psycopg2 #pyhive cx_Oracle sqlalchemy-redshift impylapy mssql

RUN fabmanager create-admin --app superset --username admin --firstname admin --lastname admin --email test@example.com --password admin
RUN superset db upgrade
RUN superset load_examples
RUN superset init

CMD ["superset", "runserver", "-p", "80"]

上記をDockerfileとして保存し、 イメージを生成して立ち上げれば良い。

$ docker build -t superset .
$ docker run -it -p 80:80 superset

Web画面が立ち上がったら、admin/adminでログインできる。

素でインストールする場合もDockerfileの手順をなぞればまず問題なく導入できるだろう。


詳しい使い勝手なんかは後日に回したいと思う(眠い)が、 サクッといじってみた感触では、 見た目は綺麗なのだがちょっとUIが直感的ではなくて慣れを要しそうな感じ。

(これは同じくAirbnb製のワークフローエンジンAirflowにも共通する感想。)

データソース接続まわりの設定なんかもRedashに比べるといささか不親切な感がある。

あと、Bigqueryに繋げないのはマイナス点。


一方でRedashよりも表現の選択肢が多く、ダッシュボードごとのカスタム性が高そうな感じなのは面白い。

何より導入が簡単で、やんごとなき事情でDockerもUbuntuもだめな会社勤めな人でも気軽に試せそうなのは良いかも。

データ分析が支えるスマホゲーム開発 ?ユーザー動向から見えてくるアプリケーションの姿?

データ分析が支えるスマホゲーム開発 ?ユーザー動向から見えてくるアプリケーションの姿?