こんにちは、エクスチュアの權泳東(コン・ヨンドン)です。
ほんの出来心で「オープンソースBIってどんなものがあるのか?」と物色してたところ、評判が良い「Metabase」を知ったので試して見ました。
私は主にGoogle BigQueryを使ってますが、MetabaseはBigQueryも簡単に接続できます。
そして何よりもAGPLライセンスで無償利用可能なオープンソースBIというのが素晴らしい。
使い始めて30分で「めっちゃ簡単で使いやすい!俺はこれでいいや!」という結論が出ました。※私の主観です。
さて、そんなMetabaseの何が良かったのかを含めて導入セットアップから操作まで簡単に紹介します。
ダウンロード
下記のページから「Dockerイメージ」や「JARファイル形式(Java Archive)」でダウンロード出来ます。
https://www.metabase.com/start/
で、Ubuntuでサクっと試したかったのでJARにしました。
※なお、JARファイルを動作させるためにはJDK8をインストールしておく必要があります。
参考: Ubuntu: OpenJSK 8 をインストール – 二代目俺のメモ
起動
metabase.jarをダウンロード後、下記のコマンドで起動します。
$ java -jar metabase.jar
起動後、tcp:3000番ポートにアクセスします。
ローカルホストで試してる場合は http://localhost:3000/ で開きます。
いざアクセス
ブラウザでMetabaseが稼働するホストの3000番ポートにアクセスするとセットアップが始まります。
まずは管理者アカウントを作成します。
その後データベースの選択に進むので、BigQueryを選択しました。
プロジェクトとデータセットを選択したのち、ClientID/Secretを入力し、最後にAuthCodeを入力します。
それぞれ注意書きのリンク先で作成・取得出来るので手順どおりに進みます。
SQLでデータを抽出
さて、セットアップが終わったらログインしてトップ画面に進みます。
ここからはBigQueryに対してSQLでデータを抽出して行きます。
※データをブラウズしてカラムをマウスで選択していく方法もあります。
画面右上の「Write SQL」ボタンをクリックして、SQLエディタ画面を開きます。
SQLエディタに直接SQLを書きこみます。
使い慣れた他のエディタで作成したSQLをコピペするのもいいでしょう。
試しに下記のようなクエリを作成して、BigQueryにストアされたAdobeAnalyticsのデータから「日別ページビュー数」を抽出してみました。
上記クエリの中で {{date_start}} と {{date_end}} という二重の大括弧に囲まれたものは「変数」です。
クエリ本文内に変数が出現すると、エディタの右には自動的に変数設定メニューが現れます。
ここではクエリの抽出期間を日付形式でUIから指定出来るように、BETWEEN句で指定する開始日と終了日を変数で指定出来るようにした訳です。
そしてクエリを実行します。
ショートカットキーは [Ctrl+Enter] です。
するとBigQueryから結果が帰ってきます。
結果データをビジュアライズ
結果データの下に「Visualize」ボタンがあるので、これをクリックします。
グラフ選択メニューが出てくるので、適切なビジュアルを選びます。
今回は日別ページビュー数なので棒グラフを選びました。
すると先ほどの結果データが棒グラフに変わります。
これはお手軽です。
DisplayオプションやAxesオプションで見た目をカスタマイズします。
カスタマイズ言うほど選択肢がないのも分かりやすくて丁度良いw
設定を変えたら右上の「Save」を押してグラフを保存します。
保存する際に、このグラフを含むレポートの名前を決めます。
そして「ダッシュボードに保存するか?」と聞かれるので、「Yes」を選択します。
まだダッシュボードが存在してない場合は新たに作成されます。
そしてグラフをどこに配置するか決めて、これまた右上の「Save」でダッシュボードに保存されます。
とても簡単です!
とにかくSQLを書く→ビジュアライズする、の繰り返しでダッシュボードをどんどん作って行く事が出来ます。
「変数」機能を使ってフィルタリングや絞り込みに使いたいカラムを指定する方法だけ覚えれば条件指定も出来るので、覚える事が少なくて使いやすい。
ダッシュボード全体のフィルタを追加
ダッシュボードに並べたグラフの日付を一括で変更するためのフィルタを追加します。
なお、すべてのグラフ作成時に使ったSQLに {{date_start}} と {{date_end}} の変数を埋め込んでおきます。
画面右上の「Add a filter」ボタンを押して、日付フィルタを追加します。
フィルタタイプを「Sigle Date」タイプにして、「Date Start」フィルタを追加します。
ここで、各グラフの {{date_start}}変数とダッシュボードのフィルタを関連付けて行きます。
同じ要領で「Date End」のフィルタも追加します。
保存すると、ダッシュボードの日付期間をカレンダーから変更出来るようになりました。
とっても簡単なお手軽ダッシュボードの出来上がりです。
番外編: SSLでアクセスしたい
ローカルで使う分には気になりませんが、GCP(GCE)のVM上で動かしてるので、以下のとおりSSLでMetabaseにアクセス出来るようにしました。
- VMのIPアドレスを固定
- DNSにAレコードを追加
- nginxでリバースプロキシを作成
- LetsEncryptでSSL証明書を取得
これで、IPアドレスではなくSSLでMetabaseが稼働するホストに接続出来るようになります。
TL;DR
Metabaseはとても簡単で使いやすいオープンソースBIです。
無料で使えるのでぜひお試ししてみましょう!
弊社では各種マーテックツールの導入支援とデータ分析基盤構築支援を主に行っております。
お問い合わせはこちらからどうぞ。