引き続きMetabaseやっていきます。
前回は以下の記事で紹介されているお題に沿ってMetabaseでデータソースの追加と可視化を行いました。
データソースはこちら。
お題はまだ続くのですが、その前に少しMetabaseの機能を使って前回のダッシュボードを便利にしてみたいと思います。
目次
前回のあらすじ
前回作成したダッシュボードはこんな感じでした。
Film ActorテーブルをActorテーブル、FilmテーブルとJOINさせて、ActorテーブルのFirstNameが"Nick"という条件でフィルタしたものです。
ただ現実的に考えると
- 俳優名を名・姓で検索できる
- フィルタ条件は適宜変更できる
ほうが便利ですよね。
ということで、カスタムカラムとダッシュボードフィルタを試してみたいと思います。
カスタムカラム
Metabaseでは、データソースのカラムを組み合わせて独自のカスタムなカラムを追加することが出来ます。カスタムカラムでは関数なども使えるので、ELT(Extract・Load・Transform)になるわけですね。
まず、前回の質問を開きます。
こんな表示が出ます。保存しない限りはいろいろ試行錯誤できるということですね。「確認しました」をクリック。
エディターを開きます。
質問のエディター画面が開きます。
一旦フィルタは削除しちゃいましょう。
カスタム列をクリックします。
こういう画面が表示されます。フィールド計算式がExcelでいうところの数式のようなものです。
ここに以下のような数式を入力します。
concat([Actor → First Name] ," ",[Actor → Last Name] )
concat
はExcelでいうCONCATENATE
ですね。カラムは[ ]
で囲んで指定します。JOINさせている場合は上記のように[JOIN先テーブル → JOIN先テーブルのカラム名]
になります。
ちなみにインクリメンタルに補完もしてくれてヘルプも表示されます。が、なんかこう微妙に入力しにくいです。日本語だからかな?私の場合はテキストエディタに書いてコピペすることが多いです。
使える関数などは公式のドキュメントを参考にしてください。
最後に名前をつけます。これがビジュアライズしたときのカラム名になります。最後に「完了」をクリック。
プレビューしてみましょう。
俳優名というカラムが追加されているのがわかりますね。
ビジュアライズするとこんな感じで、これまでの姓と名に加えて、フルネームのカラムが表示されていますね。
姓と名はもう不要なので非表示にしておいて順番を入れ替えるとこんな感じですね。
保存しておきましょう。
質問を保存する場合、上書き保存も別名での保存の両方が選べます。上書きすればダッシュボードの表示も自動で変わりますし、すでにある質問から派生させていったり、みたいなことができるわけですね。今回は上書きします。
ダッシュボードフィルタ
さきほど質問からフィルターを削除しましたが、フィルターはダッシュボードからインタラクティブにできるとよいですよね。次にダッシュボードフィルタを試してみましょう。
ダッシュボードを開きます。
「編集」(鉛筆のアイコン)をクリックします。
右上の「フィルター」をクリックします。
フィルター対象のデータの性質みたいなものを選択します。この性質によってフィルター時の条件指定の仕方やインタフェースが変わるようです。今回は「俳優名」なのでテキストですね。
次にフィルターの種類を選択します。今回の場合は、俳優名を自由に検索するような感じになるので「含む」を選択します。
こんな感じの画面が表示されます。実際のダッシュボードでの表示イメージみたいな感じですね。
ではもう少し設定を。まず、フィルタ対象のカラムを選択します。もちろん「俳優名」ですね。
フィルタの細かい設定です。この設定項目はデータの性質やフィルタの種類によって変わります。「テキスト」の場合はラベルとデフォルト値が設定できます。ラベルはGUIで表示される際の文字列です。デフォルト値を設定する必要があれば設定することが出来ます。今回はラベルだけ設定しておきました。
ちなみにリンクフィルターは、複数のフィルター条件がある場合にどちらかのフィルタ結果に応じて絞り込みを行うような場合に設定します。今回はひとつだけなので設定できません。
ダッシュボードを保存します。
試してみるとこんな感じです。
できましたね。
まとめ
今回はMetabaseの機能を少し紹介する感じになりました。次回は残りのお題をやっていきたいと思います。