5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker ComposeとSQLiteでMetabaseを構築してみる

Last updated at Posted at 2023-03-05

やりたいこと

  • 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を書き、クエリを実行すると、作成したデータが表示される

  • ビジュアライゼーション > 線 を選択して「完了」を押す

  • 気温の変化が可視化されたことを確認する

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?