こんにちは、WEBサービス開発グループの伊達です。前回に引き続き、可視化ツール(BIツール)についてです。
Apache Supersetは、Airbnb社が開発していたBIツールです。2017/5/2にApache Incubatorへ参加して、その後も活発に開発が続けられています。
前回の記事に書きました通り、ニフティのウェブサービスでは、データを可視化して共有するツールとしてRedashを活用しています。
このRedashはKPIを定点観測する目的には便利ですが、探索的なデータ分析にはあまり向いていません。
探索的なデータ分析は、可視化を通じてデータから洞察を得ることであり、例えばグラフの種類や表示する項目、どの項目同士をクロス集計するかなどを次々に変えて試行錯誤し、当たりを見つける作業となります。一般的には、Excelでこれを行っている人が多いのではないでしょうか。
この分野の商用のソフトウェアとしてはTableauが有名ですが、今回はOSSのBIツールであるSupersetを試してみました。
Supersetでできること
- MySQLを始めとして様々なRDBをデータソースにできる
- GUIで可視化できる(SQL不要)
- 折れ線グラフ、円グラフといった良くあるグラフから、Google Analyticsの行動フローでおなじみ?のサンキーダイアグラム、ヒートマップやツリーマップなど多種多様なチャートが作成できる
- チャートを集めたダッシュボードを作成できる
Redashと似ていますが、GUIで試行錯誤しながらチャートを作成できる点が最も異なっており、ここがSupersetの特色だと思っています。
デモ環境を構築してみる
サンプルデータを使ったデモ環境を構築してみましょう。公式にはDocker対応していませんが、コミュニティの人が作ったDockerイメージを使うと構築が楽です。
1 2 3 4 5 6 7 |
$ git clone https://github.com/amancevice/superset.git $ cd superset $ docker-compose up -d redis mysql # Wait for MySQL to come online... $ docker-compose up -d superset # Wait for Superset to come online... $ docker-compose exec superset demo |
以上でデモ環境ができあがります。
docker-compose exec superset demo
を実行すると、adminユーザとパスワードの設定、デモのデータやダッシュボード、グラフの作成をしてくれます。
デモを触ってみる
使ったDockerイメージでは、Supersetは8088ポートで起動します。http://<IPアドレス>:8088/ にアクセスしてください。
まずはダッシュボードの選択画面です。デモでは、Misc Charts、Births、World’s Bank Dataの3種が用意されています。ここでは、World’s Bank Dataを選ぶことにします。
すると、このようなダッシュボードが表示されます。
地図、テーブル、折れ線グラフ、バブルチャートなど色々な方法で世界の人口が表されています。左上の Region Filterで絞り込みも可能です。
ダッシュボードを構成する一つ一つのグラフなどはSupersetではスライスと呼ばれます(filterもスライス)。スライスをマウスカーソルでポイントすると、メニューが表示されます。
そこでExplore chartをクリックすると、設定を変更できます。
これはGrowth Rateのスライスです。チャートの種類によって設定が異なります。グラフは基本的には時系列データを対象にしています。
ここで例えばチャートの種類を Time Series – Stacked に変えると、すぐに反映され上図のようになります。
2軸の折れ線グラフも作成できます。
いかがでしょうか。データの見せ方を変えながらの分析が比較的容易にできそうではないでしょうか。
Tableauと比べると以下の部分がまだ発展途上ですが、いずれ対応・改善されるのではと期待しています。
- CSVの取り込みができないので、手元のデータを分析するにもRDBに投入する一手間が必要
- 複数のメトリクスをクロス集計して可視化することができない(pivot tableは可能)
- UIの使いやすさ
ビジネスサイドの人が使うにはまだ難しく、エンジニアならSQLを駆使すれば良いので、今のところ導入には至っていませんが、引き続きSupersetの機能追加など追っていきたいと思っています。