やりたいこと
- Metabase自体はDocker(Docker Compose)で構築する
- Metabaseがデータソースとして扱うDBはホストマシン上に立てているSQLiteを使用する
Metabaseとは
- BI(Business Intelligence)ツール
- 企業の様々なデータを分析・可視化し、経営の意思決定をサポートする
- Metabase以外の選択肢としては、SupersetやRe:dash等がある
- 環境構築や運用のし易さ、機能性から今回はMetabaseを選定した
- Clojureで実装されており、JVM上で動作する
- GitHub: https://github.com/metabase/metabase
Metabaseの構築
SQLiteの構築
# SQLite(DB)の作成
$ touch database.sqlite3
# SQLiteに接続
$ sqlite3 database.sqlite3
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
# テーブルの作成
# 今回はサンプル用のテーブルとして気温を記録するテーブル(計測日と温度をカラムとして持つ)を作成する
sqlite> create table temperatures(measured_at text, celsius real);
# テーブルが作成されていることを確認
sqlite> .tables
temperatures
# テーブルのスキーマを確認
sqlite> .schema temperatures
CREATE TABLE temperatures(measured_at text, celsius real);
# サンプルデータの作成
sqlite> insert into temperatures values("2023-01-01", 10);
sqlite> insert into temperatures values("2023-01-02", 15);
sqlite> insert into temperatures values("2023-01-03", 20);
sqlite> insert into temperatures values("2023-01-04", 10);
sqlite> insert into temperatures values("2023-01-05", 15);
# サンプルデータが作成されていることを確認
sqlite> select * from temperatures;
2023-01-01|10.0
2023-01-01|10.0
2023-01-02|15.0
2023-01-03|20.0
2023-01-04|10.0
2023-01-05|15.0
Docker Composeの設定
compose.yml
services:
metabase:
image: metabase/metabase:latest
container_name: metabase
ports:
- 3000:3000
# Metabaseがメタデータの保存に使用するDBの保存場所を指定
environment:
- MB_DB_FILE=/metabase-data/metabase.db
# データの永続化
# データソースとなるSQLiteとMetabaseのメタデータを保存するDBの両方を指定する
volumes:
- ./database.sqlite3:/database.sqlite3
- ./docker/metabase/data:/metabase-data
コンテナの起動
# コンテナの起動
$ docker compose up -d
# 起動していることを確認
$ docker compose ps
NAME COMMAND SERVICE STATUS PORTS
metabase "/app/run_metabase.sh" metabase running 0.0.0.0:3000->3000/tcp
Metabaseの操作
Metabaseの初期設定
- 1分ほど待機して
http://localhost:3000
を開くとMetabaseにアクセスできる
- 言語やパスワード等のプロフィール、データソースの設定を進めていく
- 一通り完了するとホーム画面が開く
Metabaseでデータ分析・可視化
- 次に簡単なデータ分析と可視化を行ってみる
- New > SQLクエリ を開く
-
my sqlite
データベースを選択する
- 先程作成した
temperatures
テーブルから温度(celsius
)と計測日(measured_at
)を表示するだけのSQLを書き、クエリを実行すると、作成したデータが表示される
- ビジュアライゼーション > 線 を選択して「完了」を押す
- 気温の変化が可視化されたことを確認する