Google BigQuery

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

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

ほんの出来心で「オープンソース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. 最速で理解したい人のためのIT用語集

関連記事

  1. Adobe Analytics

    Adobe Analytics:自動で分析してくれる貢献度分析(異常値検出)機能

    こんにちは、CEOの原田です。今回は随分前から公開されてるのに…

  2. Web解析

    Safari ITP2.xの次なる標的は?

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

  3. Metabase

    Metabotを使ってSlackにMetabaseのグラフを投稿する

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

  4. Web解析

    コラム:Web解析から顧客体験分析(CXA)に

    こんにちは。CEOの原田です。今日は少し普段と経路の違う話を書いて…

  5. Google Cloud Platform

    Google Compute EngineのUbuntu VMにスワップ領域を作成する

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

  6. Google Analytics

    Cloud FunctionsとOpenWeather APIを使ってGoogle Analytic…

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

最近の記事

  1. 【GA4/GTM】dataLayerを使ってカスタムイベント…
  2. KARTE を使ってサイト外でも接客を
  3. 【GA4/GTM】dataLayerを活用しよう
  4. ジャーニーマップをデジタルマーケティングの視点で
  5. ChatGPT ProからClaude3 Proへ移行した話…
  1. IT用語集

    インスタンス(化)(Instance)って何?
  2. Adobe Analytics

    続・SafariのITP2.x対策として別サーバー使ってクッキーを永続化する
  3. Adobe Analytics

    Adobe Analytics: DatafeedをGoogle BigQuer…
  4. KARTE

    KARTE 成果の出るアイデアを考える_ツールを活用できていないと感じたら
  5. Adobe Cloud Platform Auditor

    Adobe Cloud Platform Auditor (Powered by…
PAGE TOP