kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

MetabaseでBIことはじめ①

年末年始は故あってずっとBIツールいじってたので一旦まとめ。

BIツールっていろいろありますよね。

  • Amazon QuickSight
  • Google Looker Studio
  • Microsoft Power BI
  • Tableau

で、どれもだいたい有料だったりして、初心者が個人で使ってみる分にはちょっと敷居があるかなーって感じです。

上記の中には無料で利用できるものもありますが、公開するには有償 or 公開が前提(クローズドなものはできない)だったりして、限られた人にだけ見せたい、みたいな用途だとちょっと使いにくいと思いました。

ということで、まずはOSSでできるものを試してみようということで、Metabaseがなかなか良さげなようです。

早速試していきます。

目次

インストール

Metabaseはクラウド版(有料)もありますが、ローカルで動かす場合はjarファイルを直接実行する方法とDockerで起動する方法があります。今回はjarファイルを直接起動する方法にしました。

ということでJREが必要です。

$ java -version
openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment Corretto-11.0.8.10.1 (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.8.10.1 (build 11.0.8+10-LTS, mixed mode)

Metabaseをダウンロードします。以下のURLにアクセスすると自動でjarファイルがダウンロードされます。

jarファイルを適当なディレクトリに移動して実行します。

$ java -jar metabase.jar

起動時のメッセージがズラズラ出力されますが、以下のように表示されればとりあえずOKっぽいです。

2023-01-02 15:48:26,803 INFO metabase.core :: Metabase Initialization COMPLETE

ブラウザでhttp://localhost:3000/にアクセスすると初期設定画面が開きますので進めていきます。「開始しましょう」をクリック。

上から順番に設定していきましょう。

まず言語設定。デフォルトで多分日本語になってると思いますので、そのまま次に。

次にユーザ設定。ローカルのMetabaseにログインするための設定っぽいので特に気にすることはなさそうです。必要事項を入力して次へ。

BIで使用するデータソースの設定です。ここはとりあえず後でいいと思うので、「後でデータを追加する」で。

よくある統計情報の収集確認です。気になる人はトグルをオフにすればいいでしょう。「フィニッシュ」をクリック。これで完了です。

最後にMetabaseのニュースリリースを購読するかを聞かれますが、まあ後でもいいかなと思います。「Metabaseを使い始める」をクリック。

Metabaseのトップ画面が表示されました。データの解析はここから始めます。

データソースの追加

予めMetabaseが用意したサンプルのデータも用意されていますが、せっかくなので自分のデータを使う流れをやってみましょう。

ちょうどこういう記事がありますので、PostgreSQLにこのサンプルデータベースをデータソースとして使うことにします。DVDレンタルのトランザクションっぽいデータのようですね。

PostgreSQLが予めローカルにインストールされているものとして上記のサンプルDBを用意します。詳細は割愛。

$ mkdir pg_sample_db && cd pg_sample_db
$ wget https://www.postgresqltutorial.com/wp-content/uploads/2019/05/dvdrental.zip
$ unzip dvdrental.zip
$ ls
dvdrental.tar   dvdrental.zip
$ createuser postgres     # Macの場合、OSユーザがsuper userになっていてpostgresユーザがいないので追加
$ createdb dvdrental
$ pg_restore -h localhost -U postgres -d dvdrental ./dvdrental.tar
$ psql -h localhost -U postgres dvdrental -c "\dt;"
             List of relations
 Schema |     Name      | Type  |  Owner
--------+---------------+-------+----------
 public | actor         | table | postgres
 public | address       | table | postgres
 public | category      | table | postgres
 public | city          | table | postgres
 public | country       | table | postgres
 public | customer      | table | postgres
 public | film          | table | postgres
 public | film_actor    | table | postgres
 public | film_category | table | postgres
 public | inventory     | table | postgres
 public | language      | table | postgres
 public | payment       | table | postgres
 public | rental        | table | postgres
 public | staff         | table | postgres
 public | store         | table | postgres
(15 rows)

ではMetabaseから接続します。「独自データの追加」をクリック。

データベースの設定画面が表示されます。

ちなみに、データソースとして選択できるタイプの一覧はこんな感じです。ここにはないですが、プラグインでCSVも使えるようです。

今回はPostgreSQLを使うので、こんな感じで設定して「保存」をクリック。

エラー等なく設定が追加されると、こういう画面が表示されますが、ここの「サンプルデータ」はMetabaseのデフォルトで用意されたものを指していて追加したデータベースではないです。クリックして「あれー、追加したものと違う?」となりそうですね。なので迷わないようにベタに戻っていきましょう。右上の「✕」をクリックします。

右上の「管理画面から離れる」をクリック。

トップ画面に戻りました。よく見るとさっき追加したデータベースに関連するような表示が見えますね。Metabaseには、データベースのスキーマから「こういうデータが見たいよな―」というのを自動で解析してグラフ化してくれる「X-Ray」という機能があり、どうやらそれが表示されているようです。

これを使ってもいいんですが、今回はウォークスルー的に使い方を学ぶためにX-Rayは使わずにベタにやっていきたいと思います。いったん先ほどのデータベースが追加されているか確認だけしておきましょう。

「データの閲覧」をクリック。

追加した「DVD Rental」をクリック。

テーブル一覧が表示されます。どれでもいいのですが、DVDタイトルのテーブルっぽい「Film」をクリックしてみます。

ちゃんと追加できているようですね。

では次回はこれらのデータを使ってグラフを作っていきます。