Google BigQuery

オープンソースBI「Metabase」の使い勝手が丁度良かった

こんにちは、エクスチュアの權泳東(コン・ヨンドン)です。

Twitter:@exturekwon

ほんの出来心で「オープンソースBIってどんなものがあるのか?」と物色してたところ、評判が良い「Metabase」を知ったので試して見ました。

私は主にGoogle BigQueryを使ってますが、MetabaseはBigQueryも簡単に接続できます。

Metabaseを試す

そして何よりも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を入力します。
それぞれ注意書きのリンク先で作成・取得出来るので手順どおりに進みます。

BigQueryと接続

 

SQLでデータを抽出

さて、セットアップが終わったらログインしてトップ画面に進みます。

ログイン直後の画面

ここからはBigQueryに対してSQLでデータを抽出して行きます。
※データをブラウズしてカラムをマウスで選択していく方法もあります。

画面右上の「Write SQL」ボタンをクリックして、SQLエディタ画面を開きます。

Write SQL

SQLエディタに直接SQLを書きこみます。
使い慣れた他のエディタで作成したSQLをコピペするのもいいでしょう。

試しに下記のようなクエリを作成して、BigQueryにストアされたAdobeAnalyticsのデータから「日別ページビュー数」を抽出してみました。

クエリを作成

上記クエリの中で {{date_start}}{{date_end}} という二重の大括弧に囲まれたものは「変数」です。

クエリ本文内に変数が出現すると、エディタの右には自動的に変数設定メニューが現れます。

変数設定メニュー

ここではクエリの抽出期間を日付形式でUIから指定出来るように、BETWEEN句で指定する開始日と終了日を変数で指定出来るようにした訳です。

そしてクエリを実行します。
ショートカットキーは [Ctrl+Enter] です。

するとBigQueryから結果が帰ってきます。

 

結果データをビジュアライズ

結果データの下に「Visualize」ボタンがあるので、これをクリックします。

BigQueryの結果をビジュアライズ

グラフ選択メニューが出てくるので、適切なビジュアルを選びます。
今回は日別ページビュー数なので棒グラフを選びました。

棒グラフを選択

すると先ほどの結果データが棒グラフに変わります。
これはお手軽です。

DisplayオプションやAxesオプションで見た目をカスタマイズします。
カスタマイズ言うほど選択肢がないのも分かりやすくて丁度良いw

色やラベルを変更

設定を変えたら右上の「Save」を押してグラフを保存します。

グラフを保存

保存する際に、このグラフを含むレポートの名前を決めます。
そして「ダッシュボードに保存するか?」と聞かれるので、「Yes」を選択します。
まだダッシュボードが存在してない場合は新たに作成されます。

そしてグラフをどこに配置するか決めて、これまた右上の「Save」でダッシュボードに保存されます。

グラフをダッシュボードに追加

とても簡単です!

とにかくSQLを書く→ビジュアライズする、の繰り返しでダッシュボードをどんどん作って行く事が出来ます。
「変数」機能を使ってフィルタリングや絞り込みに使いたいカラムを指定する方法だけ覚えれば条件指定も出来るので、覚える事が少なくて使いやすい。

簡単にダッシュボードを構築可能

 

ダッシュボード全体のフィルタを追加

ダッシュボードに並べたグラフの日付を一括で変更するためのフィルタを追加します。
なお、すべてのグラフ作成時に使ったSQLに {{date_start}} と {{date_end}} の変数を埋め込んでおきます。

画面右上の「Add a filter」ボタンを押して、日付フィルタを追加します。

フィルターを追加

フィルタタイプを「Sigle Date」タイプにして、「Date Start」フィルタを追加します。
ここで、各グラフの {{date_start}}変数とダッシュボードのフィルタを関連付けて行きます。

[Date Start]フィルタを各グラフと関連付け

同じ要領で「Date End」のフィルタも追加します。

保存すると、ダッシュボードの日付期間をカレンダーから変更出来るようになりました。

集計期間を変更できる

とっても簡単なお手軽ダッシュボードの出来上がりです。

 

番外編: SSLでアクセスしたい

ローカルで使う分には気になりませんが、GCP(GCE)のVM上で動かしてるので、以下のとおりSSLでMetabaseにアクセス出来るようにしました。

  • VMのIPアドレスを固定
  • DNSにAレコードを追加
  • nginxでリバースプロキシを作成
  • LetsEncryptでSSL証明書を取得

これで、IPアドレスではなくSSLでMetabaseが稼働するホストに接続出来るようになります。

Metabase構成図

 

TL;DR

Metabaseはとても簡単で使いやすいオープンソースBIです。
無料で使えるのでぜひお試ししてみましょう!

 
弊社では各種マーテックツールの導入支援とデータ分析基盤構築支援を主に行っております。
お問い合わせはこちらからどうぞ

 

関連記事

  1. Adobe Analytics

    Adobe Analytics: データフィードをGoogle Compute EngineのLin…

    こんにちは、エクスチュアCTOの権です。Twitter:@ex…

  2. Adobe Analytics

    Adobe Analytics: BigQueryにロードしたデータフィードをDataStudioで…

    こんにちは、エクスチュアCTOの権です。Twitter:@ex…

  3. Adobe Analytics

    AdobeAnalytics: スクロールで目標に到達したらカスタムリンク

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。Twitt…

  4. Google Cloud Platform

    Google Compute Engine: 一定時間経過したらタスクを強制終了する

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。Twi…

  5. Firebase Analytics

    Firebase Analyticsの新しいBigQueryスキーマを試す

    こんにちは、エクチュアの権泳東(コン・ヨンドン)です。「お名前なん…

  6. Adobe Analytics

    AdobeAnalytics Datafeed: BigQueryのSIGN関数を使った小ワザ

    こんにちは、エクスチュアの権泳東/コン・ヨンドン(@exturekwo…

最近の記事

  1. GTMのdataLayerをAdobeAnalyticsの「…
  2. Metabase: カスタムマップで日本地図を追加する
  3. オープンソースBI「Metabase」の使い勝手が丁度良かっ…
  4. OWOX BI: GoogleSheetsアドオンでBigQ…
  5. Adobe AEP SDK: リバースプロキシを使ったアプリ…
  1. Adobe Analytics

    Adobe Analytics: Webサイト内で発生したJavascriptエ…
  2. Segment

    Segmentでデータ管理を一元化する
  3. Google BigQuery

    GoogleNext 2019レポート:3日目
  4. Adobe Analytics

    Adobe Analytics: Legacy s_code.jsからAppMe…
  5. Adobe Analytics

    Adobe Mobile SDK 4.xからAEP SDKに移行する
PAGE TOP