【Metabase】ダッシュボードの作成
概要
OSSでおしゃれなBIツールであるMetabaseを使ってダッシュボードを作ってみる。
環境
OS : Windows10
JDK : OpenJDK 13.0.2
Metabase : version 0.33.4
PostgreSQL : 11.5
Step1 : Metabaseの構造を理解する
Metabaseでダッシュボードを作成するにあたり、大きく3つのオブジェクトについて最初に頭に入れておくと、その後の作業がスムーズに進められるかと思います。
- コレクション
コレクションは次に説明する、「質問」や「ダッシュボード」を格納するための箱と考えると分かりやすいかと思います。 - 質問
質問はデータソースに対して投げるSQLとその結果をチャート化したものがセットになっているオブジェクトのイメージです。例えばPostgreSQLのテーブルに対してselect * from で取得したデータを棒グラフ化したものを一つの「質問」として任意の「コレクション」へ保存しておくことができます。 - ダッシュボード
「ダッシュボード」は保存した「質問」を自由に画面上に張り付けられるキャンバスのようなものだと捉えることができます。グラフのサイズやフィルタなどをダッシュボード上で定義し、見栄えを整え、任意の「コレクション」へ保存することができます。
ということで、流れとしては、まずは箱となる「コレクション」を定義しておき、そのあとに「質問」でグラフを作り、最後に「ダッシュボード」にグラフを張り付けるという流れで進めたいと思います。
ただし、最初にユーザ登録した段階で、そのユーザ専用のコレクションが自動作成されています。そのため、今回はこの「個人のコレクション」を使用することにして、新しいコレクションを作ることは省略します。
なお、もし新しいコレクションを作成したい場合は、適当なコレクションを選択した際に出てくる「新しいコレクション」というボタンをクリックすると簡単に作成できます。
Step2 : 質問の作成
質問を作るにはHome画面右上の「データを見る」をクリックし、チャートにしたいデータを選びます。
使用するデータソースを選択します。
使用するスキーマを選択(PostgreSQLの例)します。
使用するテーブルやビューなどを選択します。
テーブルなどのDBオブジェクトを選ぶと、データがプレビューされますので、左下の「ビジュアライゼーション」を選びます。
左側のバーからチャートの種類が選べますので、好みのチャートを選択します。今回は棒グラフを選択しました。この「質問」作成時に対象とするフィールドやフィルタ、あるいは各種集計など少し凝ったこともできますが、今回はとにかくダッシュボードを作ることを優先し、とりあえずそのまま右上の「保存」ボタンをクリックします。
「保存」ボタンをクリックすると、この質問に関する情報の入力画面が現れます。質問の名前や説明に加えて、保存する先のコレクションが尋ねられます。今回はユーザ登録時に作成されたパーソナルコレクションを選択しておきます。
「保存」をクリックするとダッシュボードに追加しますか?というポップアップが現れます。今回はまだダッシュボードは作成していないので、とりあえず「今はしない」を選択しておきます。
Step3 : ダッシュボードの作成
ダッシュボードはホーム画面の右上にある「+」→「新しいダッシュボード」を選択することで作成できます。ここでもダッシュボードの名前、説明の他、保存先のコレクションが尋ねられますので、パーソナルコレクションを選択しておきます。
次に、新しく作成したダッシュボードの画面に遷移しますので、右側にある「+」ボタンをクリックします。ここから先ほど作成した質問を選択することができます。
まず最初にコレクションを選び、その中に保存されている質問を選ぶことができますので、Step2で作成し、保存しておいた個人のコレクションの中の質問を選択します。
するとダッシュボード上にチャートが表示されます。このチャートはドラッグして場所を移動させたり、選択してチャートの角を引っ張ったりしてサイズを変えたりと、チャートのレイアウトは非常に簡単に編集できます。
そのほか、フィルタなどもダッシュボード上に配置することができます。
他にもいろいろな質問を追加し、レイアウトし、お好みのダッシュボードが出来上がったら右上の保存ボタンを押せば完了です。あとはいつでも保存したコレクションからこのダッシュボードを開くことができます。
まとめ
Metabaseの特徴としてチャートはダッシュボードから独立して作成、保存することができ、好きなダッシュボードからそれらを自由に呼び出せるという柔軟性の高さを感じました。最初にコレクション、質問、ダッシュボードの概念と関係性だけイメージを掴んでおけば、サクサクと進めることができると思います。