Amazon Redshift接続のMetabaseでグラフ
OSSのBIツールMetabaseを試したいと思います。
Metabase とは
Metabaseは、OSSのBIツールで簡単にデータの可視化ができます。
主な特徴は以下になります。
- インストールが簡単
- OpenJDKかOracleJDKのバージョン7以上のインストールとMetabaseのjarファイル配置のみ
- WebベースUI
- ダッシュボードが作成可能
- 認証
- GoogleアカウントのサインインかLDAP認証の選択も可能
- アプリにMetabaseのチャートとダッシュボードの組込みが可能
- グラフはSQLを書いても書かなくても作成可能
- グラフは以下の種類が作成可能
- Number
- Progress bar
- Table
- Line chart
- Bar chart
- Row chart
- Area chart
- Scatterplot or bubble chart
- Pie/donut chart
- Funnel
- Map
- 対応データベース
- MySQL
- Postgres
- Mongo
- SQL Server
- AWS Redshift
- Google BigQuery
- Druid
- H2
- SQLite
- Oracle
- Crate
- Google Analytics
- Vertica
詳細は以下をご覧頂ければと思います。
https://www.metabase.com/docs/latest/
前提動作環境
本記事での動作環境は下記になります。
- Metabase v0.29.3
- Windows Server 2012 R2 ※事前にインストールしておきます。
- jdk-8u172-windows-x64.exe ※事前にインストールしておきます。
- Amazon Redshift ※事前に作成しておきます。
- データは、ブログサイト「https://tech-lab.sios.jp/」のアクセスログを使用
Metabase のインストール
Metabaseのダウンロードサイトから、「metabase.jar」をダウンロードします。適宜フォルダーに配置します。
コマンドプロンプトで配置フォルダに移動し、「java -jar metabase.jar」 を実行すれば起動します。
ブラウザでhttps://localhost:3000/にアクセスし、Web UIを表示できることを確認します。
Metabase の設定
[Let’s get started.]をクリックします。adminアカウントを設定します。適宜入力し、[Next]をクリックします。
DBの接続情報を設定します。一番上にあるプルダウンは「Amazon Redshift」をクリックします。[Host]はRedshiftのエンドポイントを入力、それ以外も適宜入力し、[Next]をクリックします。
Usage data preferences はそのまま[Next]をクリックします。
セットアップが完了します。[Take me to Metabase]をクリックします。
ホームページが表示されます。
ダッシュボードの作成
まず、グラフを作成します。
画面上部の[New Question]をクリックすると開く以下の画面から、今回はSQLを書いてグラフ作成したいと思いますので、[Native query]をクリックします。
以下のように、[DATABASE]プルダウンから使用するDB名のクリックと[EDITOR]にSQLを入力して、[GetAnswer]をクリックします。
以下のような画面になったら、[VISUALIZATION]プルダウンから適宜グラフの種類をクリックします。ここでは、「Table」を選択します。右脇にある歯車アイコンで選択したグラフの設定のカスタマイズができます。
作成したグラフを保存します。画面右上にある[SAVE]をクリックして、開いた以下のダイアログで適宜入力し、[Save]をクリックします。
作成したグラフをダッシュボードに追加するか確認されるので、[Yes please!]をクリックして、ダッシュボードに追加することにします。
追加するダッシュボードについて、既存のものから選択するか、新規作成するかを確認されます。今回は新規作成のダッシュボードとするので、[+ Add to new dashboard]をクリックします。
開いた以下のダイアログで適宜入力し、[Create]をクリックします。
新規作成したダッシュボードに、「Question」がテーブルの見た目をしたカードのかたちで追加配置されます。
ダッシュボードのグリッドに合わせて、配置されたカードの右下をつまんで、以下のように広げることができます。
この状態のダッシュボードを保存します。画面右上にある[Save]をクリックすると、以下のように、ダッシュボードの編集画面から表示画面になります。
まとめ
このように簡単にダッシュボード作成ができます。ただ、パーミションについては、Tableau Serverなどの商用製品のように、作成したダッシュボード・Question単位などといったオブジェクト単位にパーミション設定ができるわけではないようなので、導入する際には、ユーザー要望に沿えるかどうか検証が必要です。
斎藤@SSTD