Ponz Dev Log

ゆるくてマイペースな開発日記

MetabaseがRedashの苦労を吹き飛ばすくらい熱い

昨年末からデータ可視化ツールを諸々触る中で Redash おもろいわ〜ってなってたんですが、QiitaでMetabaseの記事を目にしてしまったので使わざるを得なかった。投稿者様ありがとうございます!!
面白さに勢いで書いてしまったので、拙い点はご容赦ください。

qiita.com

結論から言えば、MetabaseはRedashなんかより遥かに使いやすい!!(あくまで可視化系ツールを最初に触る人としてはという枕詞つき)
Docker使ってる身としては、docker composeでシコシコとセットアップしなくても、docker run 一発で起動できるのは楽で助かる。もちろん、docker compose は様々なコンテナをまとめてセットアップする点で楽なのですが、1ツール1コマンドで起動するのに比べたら手間がかかりますしね。

[今回紹介するMetabase] www.metabase.com

[苦労した方のRedash] redash.io

何がすごいの??

MetabaseとRedashで比較してみます。それぞれ数時間しか触ってないですが、雰囲気だけでも伝わればと。

セットアップが楽

公式によると、セットアップの選択肢は結構あるようです。

  • Docker ... コマンド一発で起動する
  • AWS ... Elastic Beastalkで動かす
  • Heroku ... ボタンをポチポチするだけ
  • OSの上に直接のっける (Macでやる方法が最初に紹介されてますが、まだ深くまでは見れてない)
  • JARファイルをダウンロードして、java -jar metabase.jar

私はDockerの勉強がてらDockerのイメージから起動させましたが、JARファイルでやるのも簡単そう!

Dockerだと以下コマンドを叩いて、http://localhost:3000にアクセスすればOKです。

$ docker run -d -p 3000:3000 --name metabase metabase/metabase
xxxxxxyyyyyyyxxaserjaser  <- コンテナID

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
xxxxxxyyyyy        metabase/metabase   "/app/run_metabase.sh"   3 seconds ago       Up 2 seconds        0.0.0.0:3000->3000/tcp   metabase

ハマりポイントとしては、DockerコンテナでMetabaseのデータ取得先のDBを動かしている場合は、--link オプションで動かさないとセットアップで以下のエラーが出て先に進めなくなります。
No matching clause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

解決例としては、以下のようにリンクさせればOK。これはMySQLのコンテナとリンクさせた例。
docker run -d -p 3000:3000 --name metabase --link ponz-mysql:ponz-mysql metabase/metabase

アクセスして約1分待てばHome画面に遷移します。超早い!

f:id:accelerk:20180104211132p:plain

ここから、自分で登録したDBやサンプルで最初から入ってるデータセットを調べたりできます。

f:id:accelerk:20180104213312p:plain

データ可視化までにSQLを使わなくても良い

これがRedashとの最大の違いかなと。
例えば、東京都練馬区の各図書館の蔵書数(平成28年度時点)について調べたいとします。

※ こちらの蔵書数については、区発行のオープンデータを使用させていただきました。元はRedashいじるように使おうとしてました。。。

図書館所蔵資料数:練馬区公式ホームページ

調べたいデータを"New Question -> Custom" から選んで、自分で読み込んだDBのテーブルを選択。あとはプルダウンからサクッとデータ項目を選べば綺麗なチャートがあら簡単。円グラフが作れました。ここから、区分'0001'(図書資料)が圧倒的に多いな〜と分かりますね。
Redashは "Group by" に選んだ項目で絞ったりグラフを描画しても思った通りにならない時があるので、こちらの方が直感的かもしれないです。(個人差はあると思いますよ)

f:id:accelerk:20180104211356p:plain

もちろん、SQLも書いても問題なくいけます。"New Question -> Native Query" でSQLエディターが出てくるので、ここでSQLを打てばOK。
若干Redashの方がグラフのオプションが多い気がします。

f:id:accelerk:20180104211531p:plain

ダッシュボートはグリッド形式で大きさを指定して配置できます。ここも難なくできます。

f:id:accelerk:20180104212418p:plain f:id:accelerk:20180104212256p:plain

雑感

まだバージョンが 0.27.2 (2018/01/04時点) なので、破壊的な変更が入る可能性がなきにしもあらずですが、非常に可能性を感じさせるプロダクトですね!非エンジニアもRedash以上にデータを扱いやすくなりそう...