Metabaseを使用してインサイトを取得する方法

このチュートリアルでは、**Alibaba Cloud ECS Ubuntu 16.04**サーバに**Metabase**をインストールし、データの可視化を実現します。

[Alibaba Cloud Tech Share](https://www.alibabacloud.com/campaign/techshare?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX) 執筆、Liptan Biswas。[Tech Share](https://www.alibabacloud.com/campaign/techshare?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)は、クラウドコミュニティ内で技術的な知識やベストプラクティスを共有することを奨励するAlibaba Cloudのインセンティブプログラムです。

チュートリアルの[パート１](https://www.alibabacloud.com/blog/database-visualization-using-metabase-part-1---install-metabase-on-ubuntu-1604_592155?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)では、Ubuntu 16.04に本番用のMetabaseをインストールする方法を見ました。このチュートリアルでは、Metabaseの基本的な使い方を学びます。[MySQLサーバ](https://www.alibabacloud.com/product/apsaradb-for-rds?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)上でホストされているサンプルデータベース上でサンプルクエリを実行します。保存された質問とダッシュボードを作成することを学びます。また、Metabaseにメールを設定して、アプリケーションが定期的に更新された情報を送信できるようにします。

###Metabaseを使ってインサイトを取得する
Metabaseは、MySQL、[PostgreSQL](https://www.alibabacloud.com/blog/how-to-setup-postgresql-server-for-metabase_594913?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)、Presto、MongoDB、MSSQLなど、複数の種類のデータベースに対してクエリを実行することができます。この機能のおかげで、データベースを直接Metabaseに追加して、そこから質問をすることができます。本番環境では、Metabaseインスタンスのためだけに、読み取り専用のアクセス権を持つ新しいユーザーを作成するのがベストです。データベースに機密情報が含まれている場合は、環境設定に従ってテーブルビューを作成して、選択された列のみを表示することもできます。

しかし、Metabaseにはサンプルデータベースが用意されており、そこでクエリを実行してプラットフォームについて学ぶことができます。このチュートリアルでは、Metabaseの使い方を実演するために、サンプルのMySQLデータベースサーバーと [Employeesデータベース](https://github.com/datacharmer/test_db?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)を使用しています。あなたの会社がMySQLデータベースサーバー上に "heployees "という名前のデータベースを持っているとします。これらのクエリを実行すると、データベースへの読み取り専用のアクセス権を持つ "metabase_user "という名前の新しいユーザーが作成されます。アクセスは、「192.168.0.101」というIPアドレスを持つインスタンスにのみ許可されますが、これはECSインスタンスの実際のパブリックIPアドレスです。

```
CREATE USER 'metabase_user'@'192.168.0.101' IDENTIFIED BY 'StrongPassword';
GRANT SELECT ON employees.* to 'metabase_user'@'192.168.0.101' IDENTIFIED BY 'StrongPassword';
```

読み取り専用ユーザーの準備ができたので、データベースをMetabaseに追加してみましょう。Metabaseインスタンスにログインし、「Metabase Admin >> Databases >> Add Database」に進みます。データベースの種類を選択し、接続の詳細を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/838f8779-dbb2-a4ed-02cd-a11e973b8ef3.png)

データベースが追加されたら、データモデルタブに移動して、データベースのスキーマを確認することができます。冗長な情報や機密情報を含むテーブルや列を非表示にすることができます。管理パネルを終了してダッシュボードに戻り、質問をしたり、データからの洞察を学んだりできるようにします。

###Metabaseで質問をする
まずは簡単な質問から始めます。上部にある「新規質問」ボタンをクリックし、「カスタム質問」を選択します。次に、クエリを実行するデータベースを選択します。必要に応じて、クエリのフィルタを選択します。ビューを選択すると、生データ、基本的なメトリクス、またはカスタム式の実行を選択できます。基本的なメトリクスには、行数のカウント、行の合計または平均、累積合計または平均、標準偏差などがあります。最後に、お好みに応じてデータをグループ化します。次のスクリーンショットは、私が使用した例のデータベースの性別別従業員数の出力を表示しています。出力は、フィルタなしの従業員データベースのクエリによって生成され、ビューは行をカウントするように設定され、性別でグループ化されています。出力は、表、棒グラフ、折れ線グラフと面積グラフ、円グラフなど複数の形式で可視化することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/b082e256-2be9-8dc3-1a69-e7d903ad2e15.png)

Metabaseでは、データに応じたフィルタの提案を自動的に行います。例えば、従業員の生年月日を含む列にフィルタをかける場合、特定の日生まれ、特定の月生まれ、特定の年生まれなどでフィルタをかけることができます。また、特定の日付の前に生まれたか後に生まれたか、特定の2つの日付の間に生まれたかなどのフィルタを適用することもできます。次のクエリでは、採用日の年が「1995」に一致するようにデータをフィルタリングしました。また、出力を月ごとにグループ化しました。出力はエリアグラフで可視化されています。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/05336a70-8a47-f977-5131-44d544b37970.png)


必要であれば、データベース上でネイティブSQLクエリを実行してデータを可視化することもできます。新しい質問をクリックして、SQLを選択します。データベースを選択し、SQL形式でクエリを記述します。SQL文からの出力は、さまざまなグラフやチャートで視覚化することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/734b0a23-1100-6477-fe4f-beace21482ec.png)


Metabaseでは、質問した質問を保存することができ、質問の出力が得られたら保存リンクをクリックするだけで、将来の使用のために保存することができます。更新されたデータで再度同じ質問を実行したい場合は、保存された質問を閲覧して質問をクリックするだけですぐに回答を得ることができます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/2c4632df-f893-1e95-0242-ff0a1dd82e80.png)

また、Metabaseではカスタムダッシュボードを作成することができ、現在のデータを素早く把握することができます。また、これらのダッシュボードを同僚と共有することもできます。新しいダッシュボードを作成するには、トップメニューから「ダッシュボード」タブに移動します。新しいダッシュボードを作成し、お好みの名前を付けます。保存された問題を選択してグラフやチャートを追加すれば、ダッシュボードは数分で完成します。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/694fc3de-33c8-bf55-c136-f3a6be8f8db5.png)

###Pulseの設定
Pulseは、インサイトの重要な更新情報を含む定期的なメールやSlack通知を送信することができるMetabaseの機能です。Metabaseからメールを送信するためには、Metabaseの管理画面でメールの設定を行う必要があります。メールの設定は、パスワードリセットメールや招待状の送信にも使用されるため、メールの設定も重要です。Metabaseでは、SMTPまたはSimple Mail Transfer Protocolを使用してメールを送信します。既存のSMTPサーバーを持っていない場合は、[Alibaba Cloud DirectMail](https://www.alibabacloud.com/product/directmail?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)が提供するSMTPサービスを利用することができます。費用対効果が高く、設定も簡単で、1日200通の無料メールを提供しています。

Alibaba Cloud DirectMailでSMTPサーバーを作成するには、[このチュートリアル](https://www.alibabacloud.com/blog/wordpress-with-lemp-on-alibaba-cloud--part-5-using-directmail-for-wordpress-transactional-email_287645?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)の1～3の手順に従ってください。メールドメイン、送信者アドレス、SMTP認証情報を環境に合わせて変更します。そのチュートリアルの手順を踏むと、以下のような情報が手元にあります。

```
SMTP Host: smtpdm-ap-southeast-1.aliyun.com
SMTP Port: 465
SMTP Security: SSL
SMTP Username: mail@example.com
SMTP Password: StrongPassword
```

上記の値は例ですが、実際の値はDirectMailのウェブコンソールで確認してください。管理者 >> 設定 >> 電子メールに移動し、SMTPサーバーの詳細を提供します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/89dc3618-16e8-946e-8cbd-d06381caab75.png)


新しいPulseを作成するには、管理画面を終了して、トップメニューからPulseに移動します。Pulseの作成ボタンをクリックします。あなたのPulseに説明的な名前を入力し、保存された問題を選択して送信します。受信者とメールの頻度を選択します。今すぐメールを送信するボタンをクリックして、メールが配信されているかどうかを確認することができます。最後に「Pulseを作成」ボタンをクリックすると、Metabaseは定期的に更新されたインサイトをあなたの受信箱に配信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/18ee4821-d233-32a8-6fa3-ea8c6dd9f2c4.png)

###結論
Metabaseはそれ自体で何かをするわけではありませんが、Metabaseが提供する洞察は、組織のさまざまな側面を理解する上で非常に役立ちます。ここまで、Metabaseアプリケーションの基本的な使い方を説明してきました。また、メールの設定やスケジュールPulseの作成も行いました。次のステップは、同僚をプラットフォームに招待することです。管理者ダッシュボードに移動し、[ユーザー]タブには、チームメンバーを招待するオプションがあります。また、新しいグループを作成し、特定のグループのユーザーがアクセスできるデータベースを制限することができます。Metabaseの使用方法については、[公式ユーザーガイド](https://www.metabase.com/docs/latest/users-guide/start.html?spm=a2c65.11461447.0.0.220f1c3e7ZBYQX)を参照してください。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/database-visualization-using-metabase-part-2---use-metabase-to-get-insights_592508)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*