1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JARで動く無料のBIツールMetabase初心者ガイド

Last updated at Posted at 2024-08-31

はじめに

Metabaseは、データ分析と可視化を簡単に行えるオープンソースのBIツールです。直感的なインターフェースと強力な機能を備え、技術者でなくてもデータから洞察を得ることができます。

1. Metabaseの概要

Metabaseは、データベースに接続し、クエリを実行し、結果をグラフやダッシュボードとして表示するツールです。主な特徴は以下の通りです:

  • 無料で使用可能
  • 多様なデータベースに対応
  • ドラッグ&ドロップでの簡単な操作
  • SQLクエリの実行も可能

2. インストール方法

Metabaseは、Javaアプリケーションとして実行するか、Dockerを使用してインストールできます。

Javaを使用する場合:

wget https://downloads.metabase.com/v0.44.6/metabase.jar
java -jar metabase.jar

Dockerを使用する場合:

docker run -d -p 3000:3000 --name metabase metabase/metabase

3. 初期設定

インストール後、ブラウザでhttp://localhost:3000にアクセスし、以下の手順で初期設定を行います:

  1. 管理者アカウントの作成
  2. データベースの接続設定
  3. データの収集方法の選択

4. データベース接続

Metabaseは多くのデータベースに対応しています。接続設定の例(MySQLの場合):

ホスト名: localhost
ポート: 3306
データベース名: mydb
ユーザー名: root
パスワード: password

5. クエリの作成

Metabaseでは、GUIを使用したクエリビルダーとSQLエディタの2つの方法でクエリを作成できます。

クエリビルダーの例:

  1. 「新しい質問」をクリック
  2. データソースを選択
  3. フィールドをドラッグ&ドロップ
  4. フィルターや集計を設定

SQLエディタの例:

SELECT 
  date_trunc('month', created_at) AS month,
  COUNT(*) AS total_orders
FROM orders
GROUP BY 1
ORDER BY 1

6. グラフの作成

クエリ結果を基に、様々なグラフを作成できます。

  1. 「可視化」タブを選択
  2. グラフタイプを選択(棒グラフ、折れ線グラフなど)
  3. X軸とY軸を設定
  4. 色分けやソートを調整

7. ダッシュボードの作成

複数のグラフやクエリ結果をまとめて表示するダッシュボードを作成できます。

  1. 「新しいダッシュボード」をクリック
  2. タイトルを入力
  3. 「カードを追加」で既存のグラフを追加
  4. ドラッグ&ドロップでレイアウトを調整

8. ユーザー管理

Metabaseでは、ユーザーごとに権限を設定できます。

  1. 管理画面から「ユーザー」を選択
  2. 「ユーザーを追加」をクリック
  3. メールアドレスと名前を入力
  4. グループを選択(管理者、一般ユーザーなど)

9. データモデルの設定

データの関連性や型を定義し、より使いやすくできます。

  1. 管理画面から「データモデル」を選択
  2. テーブルを選択
  3. フィールドの型や関連を設定
  4. 表示名や説明を追加

10. スケジュール設定

定期的にクエリを実行し、結果をメールで送信できます。

  1. クエリの詳細画面で「スケジュール」をクリック
  2. 実行頻度を設定(毎日、毎週など)
  3. 送信先メールアドレスを入力

11. APIの利用

MetabaseのAPIを使用して、外部からデータにアクセスできます。

import requests

url = "http://localhost:3000/api/card/1/query"
headers = {"X-Metabase-Session": "your-session-token"}

response = requests.post(url, headers=headers)
data = response.json()

12. カスタムフィールドの作成

既存のフィールドを組み合わせて、新しいフィールドを作成できます。

  1. クエリビルダーで「カスタムカラム」をクリック
  2. 数式を入力(例:[価格] * [数量]
  3. 名前を付けて保存

13. パラメータの利用

ユーザーが入力した値に基づいてクエリを動的に変更できます。

  1. SQLエディタで変数を定義(例:{{date}}
  2. 「変数の追加」をクリック
  3. 変数の型と名前を設定

14. エンベッド機能

Metabaseのグラフやダッシュボードを外部のウェブサイトに埋め込めます。

  1. グラフの詳細画面で「共有」をクリック
  2. 「公開リンク」を有効化
  3. 生成されたiframeコードをコピー

15. トラブルシューティング

よくある問題と解決方法:

  • データベース接続エラー:ファイアウォールの設定を確認
  • パフォーマンス問題:インデックスの追加やクエリの最適化を検討
  • メモリ不足:Javaのヒープサイズを増やす(-Xmx4gオプションを追加)

16. Metabaseの実践的活用例:eコマース企業の売上分析

ここでは、架空のeコマース企業「TechGadgets」を例に、Metabaseを使用した売上分析の実践的なシナリオを紹介します。

背景

TechGadgetsは、最新のテクノロジーガジェットを販売するオンラインショップです。経営陣は、製品カテゴリ別の売上傾向を把握し、マーケティング戦略を最適化したいと考えています。

データ構造

TechGadgetsのデータベースには以下のテーブルがあります:

  1. orders: 注文情報
  2. products: 製品情報
  3. categories: 製品カテゴリ情報

サンプルデータ

以下に、各テーブルのサンプルデータを示します。

orders テーブル

order_id customer_id product_id order_date quantity total_amount
1 101 1 2024-08-01 2 599.98
2 102 3 2024-08-02 1 129.99
3 103 2 2024-08-03 3 747.00

products テーブル

id product_name category_id price
1 スマートウォッチX 1 299.99
2 ワイヤレスイヤホンY 2 249.00
3 ポータブル充電器Z 3 129.99

categories テーブル

id category_name
1 ウェアラブル
2 オーディオ
3 アクセサリー

分析目標

  1. 月別・カテゴリ別の売上推移を可視化する
  2. 最も売れている製品トップ10を特定する
  3. 顧客の購買パターンを分析する

Metabaseでの実装

1. 月別・カテゴリ別の売上推移

SQLクエリ:

SELECT 
  DATE_TRUNC('month', o.order_date) AS month,
  c.category_name,
  SUM(o.total_amount) AS total_sales
FROM orders o
JOIN products p ON o.product_id = p.id
JOIN categories c ON p.category_id = c.id
GROUP BY 1, 2
ORDER BY 1, 2

このクエリをMetabaseで実行し、結果を折れ線グラフで表示します。

2. 売上トップ10製品

SQLクエリ:

SELECT 
  p.product_name,
  SUM(o.quantity) AS total_quantity,
  SUM(o.total_amount) AS total_sales
FROM orders o
JOIN products p ON o.product_id = p.id
GROUP BY 1
ORDER BY 3 DESC
LIMIT 10

このクエリの結果を棒グラフで表示します。

3. 顧客購買パターン分析

SQLクエリ:

SELECT 
  customer_id,
  COUNT(DISTINCT order_id) AS order_count,
  SUM(total_amount) AS total_spent,
  AVG(total_amount) AS avg_order_value
FROM orders
GROUP BY 1
ORDER BY 3 DESC

この結果をスキャッタープロットで表示します。

ダッシュボードの作成

上記の3つの分析結果をMetabaseのダッシュボード機能を使って1つのページにまとめます。

インサイトの活用

このダッシュボードから得られるインサイトの例:

  1. スマートウォッチカテゴリの売上が急増しており、在庫の増加が必要かもしれません。
  2. ワイヤレスイヤホンが最も売れている製品であり、関連製品のクロスセルの機会があります。
  3. 高頻度で大量購入する顧客セグメントが存在し、ロイヤルティプログラムの対象として適しています。

自動更新とアラート設定

  1. ダッシュボードを毎日午前9時に自動更新するようスケジュールを設定します。
  2. 特定のカテゴリの売上が前月比20%以上減少した場合にアラートを設定し、マーケティングチームに通知が行くようにします。

以上、Metabaseの主要な機能と使い方、そして実践的な活用例を16章に分けて解説しました。サンプルデータを参考に、実際にMetabaseを使ってデータ分析を行ってみてください。データドリブンな意思決定を通じて、ビジネスの成長を加速させることができるでしょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?