Metabaseの機能や特徴をまとめてみた

<!--
title: Metabaseの機能や特徴をまとめてみた
tags: Metabase BIツール データ可視化 使い方
-->

# はじめに
こんにちは、京セラコミュニケーションシステム　貫見（@kccs_haruki-nukumi）です。

https://qiita.com/kccs_haruki-nukumi/items/bc2d2f876dc7806fefc2

前回はMetabaseの環境構築手順についてまとめましたが、
今回は実際に使ってみた感想を踏まえて、具体的な機能をまとめていきます。
すべての機能を紹介することはできませんが、厳選した以下4点についてご紹介します。
1. クエリビルダー
2. データ資格化
3. データの閲覧
4. 管理者向け機能

:::note warn
この記事は**Metabase v0.44.6**時点での情報です。機能やUIはバージョンによって異なる可能性があります。
:::

# １. クエリビルダー
まずは、BIツールには不可欠となるデータ参照に関する機能です。
Metabaseには大きく分けて2つの方法があります。

## 質問
 - これはなに？
     - GUIベースのクエリビルダー機能
     - 画面ポチポチでデータの参照などが可能
     - Metabaseではデータ抽出した結果のことを「質問」という言葉で表現されている

<img width="640"　alt="question2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/fa1bda1d-b870-df3c-07bc-31429ec8f160.png">
 - できること
     - データの参照、絞り込み（WHERE)、集約（GROUP BY）、ソート（ORDER BY）、結合（JOIN）, 参照行数の制限（LIMIT)
     - カスタム列　※スプレッドシートで書く数式のようなもの
     - 結果からグラフなどの見える化作成

そして、地味に便利なのがプレビュー機能。
![プイビュー.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/55e1e1c2-028a-a25a-00e4-f59d09b7d52e.gif)

SQLに触れたことがある方なら一度は経験があると思うのですが、「なんか期待していたデータが取れないなぁ〜」ってときに、WHERE句やGROUP BY句をコメントアウトして、段階的に期待するクエリ結果になるよう模索した経験ありますよね？それを画面上で確認できます、便利。

## SQLクエリ
 - これはなに？
     - SQLエディター機能

<img width="640"　alt="SQLエディター.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/bc90314e-c1eb-9bd4-b3a3-a90d8df86c67.png">
 - できること
     - 基本は「質問」と同じだが、SQLで記載できる。

:::note 
「質問」のようなポチポチ系は「専門知識が無くても使える！」が売りで、たいていの場合複雑な検索は難しいことが多いのですが、Metabaseの場合は上に記載した通り、SQLで扱う主要な操作はGUI上で操作可能な為、基本的にはこれしか使ってません。
:::


# 2. データの視覚化
こちらもBIツールには不可欠な視覚化に関する機能を紹介します。

## ビジュアライゼーション
 - これはなに？
     - 「質問」やSQLクエリの結果を可視化する機能

![ビジュアライゼーション.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/9ca49fc3-8011-6ba0-c389-75797746544d.gif)
 - できること
     - さまざまな方法で可視化できる
         - 折れ線グラフ、棒グラフ、円グラフ、数値カード、テーブル、散布図など
             - 傾向線や目標値の表示、欠損値の補完、対数軸も可能
         - Metabaseが適した可視化方法を提案してくれる
             - グレー表示された方法も選択することは可能

## ダッシュボード
 - これはなに？
     - ダッシュボード機能

![ダッシュボード.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/0bdf60ca-8fff-f204-0f68-cecc8e3d4174.gif)
 - できること
     - 複数のグラフをまとめて表示することができる
     - 各グラフの配置や大きさは自由に設定可能
     - フィルターを設置することができ、絞り込み機能を実装することができる
         - 例えば、日付で絞り込みたい、ユーザーの属性で絞り込みたいなど

個人的に素晴らしいと思ったのが、フィルタリング方法が充実していることです。
例えば、日付フィルターだけでもここまで詳細にフィルタリングできます。
![日付フィルター.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/ad1f0881-2ea7-e15c-3f28-9e1e26becaa9.png)

またフィルターを設置する際に、
データの属性から適切なフィルターを提案してくれるのも地味に助かります。
![フィルターの種類.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/e091e2b4-46f5-2973-585f-728729996c42.png)

## コレクション
 - これはなに？
     - ダッシュボードや質問をまとめるフォルダー機能

![コレクション.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/a21d40ce-3bd8-a03c-22ca-250f40770c75.png)

 - できること
     - 用途毎にダッシュボードを管理できる
     - 後述する権限管理と組み合わせてユーザー毎に出し分ける
         - 例）マネジメント層には見せたいが一般社員には見せたくないなど

:::note 
ダッシュボードに関しては可視化方法が16種類用意されており、各々詳細な設定が可能な為「こういう表示ができればなぁ」と思うことはなかったです。また、最適な可視化方法を提案してくれるので、見える化をやったことない初心者でも安心でした。
:::


# 3. データの閲覧
次はデータの閲覧に関する機能を紹介します。
## X-ray
 - これはなに？
     - データを探索し、自動でダッシュボードやグラフを作成する機能

![Xray.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/d9441ea4-a48b-0571-ccb0-cee04dde5f93.gif)
 - できること
     - データの閲覧から⚡マークを押すだけで、見える化可能
      - 自動で作成されるので、そのまま使えなくても「こういう見方もできるのか」と取っ掛かりを掴むことができる

:::note 
これ、Metabaseを実際に使ってみて**一番感動した機能**です。こういったBIツールを触ったことがあまりない私は、ありきたりな棒グラフしか思いつかなかったのですが、この機能を見つけてから色々な表現ができるようになりました。
:::

# 4. 管理者向け機能
最後に管理者向けの機能について紹介します。
## データモデル管理
 - これはなに？
     - データベースのメタデータ編集機能

![モデル管理.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/35c00c40-ddd2-c08a-ed9c-1dc6f354f2b9.gif)

 - できること
     - Metabase内で使用するカラム名の変更や、書式設定が可能
     - カラム単位で表示/非表示の設定が可能

## ユーザー管理
 - これはなに？
     - Metabase内のユーザー管理機能
![ユーザー管理.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/bd772508-0287-54fa-f4c7-c75ad92eec62.gif)
 - できること
     - ユーザーの招待
     - ユーザーグループの作成

## 権限管理
 - これはなに？
     - Metabase内の権限管理機能

![権限管理.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/81465800-c712-ef9c-e0f3-4263d56fc4d8.gif)
 - できること
     - コレクションやデータの閲覧に対して、ユーザーグループ毎に権限設定可能
         - 編集可、閲覧のみ、閲覧不可の3種

## キャッシュ
 - これはなに？
     - クエリ結果のキャッシュ機能
 - できること
     - 結果をキャッシュすることで、表示時間の短縮などが可能
         - キャッシュ保持期間の設定や、最大サイズなど詳細設定あり


というわけで、今回はMetabaseのいくつかの機能を実際に使ってみた感想を踏まえて紹介しました。
もし他に気になる機能があれば、また紹介したいと思います。

# 参考にした文献
 - [Metabase公式ドキュメント](https://www.metabase.com/docs/latest/)