BluemixでAnalytics 〜embeddable reportingでレポートを作ってみる


[前回](http://qiita.com/saboten10/items/b9d8763414d35f7452bf)は、BluemixのビジネスインテリジェンスであるEmbeddable Reportingサービスをアプリケーションに追加するところまでの手順を説明してきました。
今回は、以前に作成したdashDBをソースデータベースとして利用して、embeddable reportingのコンソールを操作して、簡単なグラフを作成してみます。

今回試して見るのに必要なもの（前回作成した環境です）

| 種類| Bluemix部品 | 用途|
|:-----------|:------------:|:------------|
| アプリケーション   | Liberty for Java | 全体のサービスを組み合わせる親アプリケーション    |
| サービス  |  Cloudant NoSQL DB |    embeddable reporting のリポジトリデータベース   |
| サービス      |    dashDB | 分析用のソースデータベース |
| サービス      |  embeddable report| BIツール |

環境の構築については、[前回](http://qiita.com/saboten10/items/b9d8763414d35f7452bf)の記事を参考にしてください。

#レポートを作ってみる
embeddable reportingの中身は空なので、これから初期設定をしていきます。
##新規パッケージの作成とデータソースの設定
サービスのトップページで、パッケージを作成します。パッケージというのは、embeddable reportingの管理対象の一番上位のもので、このパッケージの中にレポートとかを作成していけます。他にも、普通にCognosで作成したパッケージをインポートする機能もあるみたいです。
この画面で、「新しいパッケージ」というリンクがありますので押します。
![スクリーンショット_2015-08-22_11_12_55.png](https://qiita-image-store.s3.amazonaws.com/0/89268/c5c18eba-3335-a62c-4a0a-6e38b9bd43b3.png "スクリーンショット_2015-08-22_11_12_55.png")
新規パッケージの情報を入れるダイアログが表示されます。
名前も説明も適当で構いませんが、データソースの部分は先にメモしておいたdashDBへの接続情報を入力します。

* JDBC URI
* ユーザー名
* パスワード

ここに設定する情報は、アプリケーション側の環境変数で参照できます。[前回](http://qiita.com/saboten10/items/b9d8763414d35f7452bf)の記事を確認して、自分の環境の値を設定します

![スクリーンショット_2015-08-22_11_14_24.png](https://qiita-image-store.s3.amazonaws.com/0/89268/beadf9c2-a159-69e1-9c8f-1cf6e56aee3e.png "スクリーンショット_2015-08-22_11_14_24.png")
作成ボタンを押すと、次の画面になります。これが、パッケージの内容を表示している画面です。まだ、レポートとか作っていないので何もありません。
![スクリーンショット_2015-08-22_11_14_55.png](https://qiita-image-store.s3.amazonaws.com/0/89268/b0b188ca-6dfb-d5f8-228d-d7c85a79708f.png "スクリーンショット_2015-08-22_11_14_55.png")
##レポート作成手順
パッケージの画面で、「新規レポート定義」のリンクを押します。するとダイアログが表示されるので、「SQLグラフ」を選択します。
![スクリーンショット_2015-08-22_11_49_35.png](https://qiita-image-store.s3.amazonaws.com/0/89268/76b3ef56-015a-7ad9-2b54-ea40697844ec.png "スクリーンショット_2015-08-22_11_49_35.png")
次にデータソースを選択する画面になります。これから作ろうとするデータはどこにあるかということですが、これは、先にdashDBへの接続設定を入れたときに一つデータソースが作成されていますので、これを選択します。データソースは複数登録できるので、他のデータベースの値とかも引っ張ってこれます。
![スクリーンショット_2015-08-22_11_49_55.png](https://qiita-image-store.s3.amazonaws.com/0/89268/08a9cfbf-b4f2-1ae8-1e17-586630891edc.png "スクリーンショット_2015-08-22_11_49_55.png")
データソースを指定すると、次にSQLの入力画面が表示されます。

embeddable reporting の概念としては、
パッケージ-> ***レポート*** <-データアイテム<-クエリ(SQL)<-データソース<-データベース
こんな感じです。データアイテムを組み合わせてレポートを作成しますが、その元となるのはデータベースからデータを取得してくるSQLです。
なので、とりあえずdashDBに格納されているデータベースから、「サーバーごとのSQL発行回数」のデータを取得するようなSQLを書いてみます。（ここは、自分のデータベースや作りたいレポートによって変わるところです。）

![スクリーンショット_2015-08-22_11_50_38.png](https://qiita-image-store.s3.amazonaws.com/0/89268/a4aa9204-d295-3847-104f-e4e70c21436c.png "スクリーンショット_2015-08-22_11_50_38.png")
レポートは、いわゆるワープロ画面みたいなもので、領域に複数のグラフや表を配置したり、文字を入れたりしてレポートを作成することができます。
まずは、「グラフを挿入」というダイアログが表示されますので作りたいグラフを選択します。今回は最初なので縦棒グラフの一番ベーシックなものを選びます。
![スクリーンショット_2015-08-22_11_50_55.png](https://qiita-image-store.s3.amazonaws.com/0/89268/37b1537b-fbd5-8175-99a3-62543461c05e.png "スクリーンショット_2015-08-22_11_50_55.png")
OKボタンを押すと、レポートの作成画面が表示されます。画面の右側にはグラフを作るための部品が表示されていますので、ここのフィールドに、画面左側にあるデータアイテムをドラックして設定していきます。
![スクリーンショット_2015-08-22_11_51_09.png](https://qiita-image-store.s3.amazonaws.com/0/89268/a11b3fca-d74d-146c-3a85-e2e1c688d949.png "スクリーンショット_2015-08-22_11_51_09.png")

今回のSQLは、group byを使ってサーバーごとの合計値を計算済みのもので、もともと４行しか戻ってこないのですが、SQL_COUNTのところで集計関数を「合計」にしないとレポートが表示されませんでした。
![スクリーンショット_2015-08-22_18_12_25.png](https://qiita-image-store.s3.amazonaws.com/0/89268/f47f2fd8-d08f-3d6f-8a4e-e0aa7d0baf7d.png "スクリーンショット_2015-08-22_18_12_25.png")

レポート作成ボタンを押すと、グラフが表示されます。


![スクリーンショット_2015-08-22_11_55_00.png](https://qiita-image-store.s3.amazonaws.com/0/89268/f181e4f5-cd0d-513f-69e2-2ee5d788367d.png "スクリーンショット_2015-08-22_11_55_00.png")
グラフは、タイトルをつけたり、色を変えたりなど装飾はつけられますが、まずは基本となる操作方法を説明しました。この間、Rで作成したグラフよりは、よりビジネスっぽいです。あちらはアカデミックな感じになります。


#まとめ
今回は、dashDBの活用法ということで、Bluemixに準備されているembeddable reportingのソースデータベースとして利用するための環境準備方法と、簡単なレポート作成手順についてまとめてみました。

このBIでは、レポート作成時に実際にソースデータベースに対してSQLが発行されているみたいです。SQLの内容によっては時間がかかりますが、これを検索速度の速いdashDBを利用することでレポート作成の処理時間を早くするという効果が期待できます。

実システムでの利用方法としては、トランザクションデータベースを直接覗いて分析するのではなく、一度、dashDBへデータをコピーして、こちらをソースデータベースとして利用する方法が想定されます。（Bluemix上で作成したアプリケーションのデータを、同じくBluemix内のサービスで分析までできる環境が準備できることになりますね。）

次回は、embedable reportingの機能について、もう少しチェックしてみようと思います。
***
***余談***
そういえば、Bluemixのサポートフォーラムでは、このサービスのことをERSと呼んでいるようです。Embeddable Reporting Service->ERSと短縮
今回の記事でもなんどもこの長い単語を打つのが大変でした、次回からは短縮形で記述してみようと思います。（カッコイイ？）