Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

MongoDBのドキュメント指向NoSQLデータをCData JDBC Driver経由でYellowfinを使い可視化してみる

何回かに分けてMongoDBに触れてきたのですが、今回はBIツールからMongoDBと戯れてみたいと思います。

kageura.hatenadiary.jp

kageura.hatenadiary.jp

今回BIツールはYellowfinを利用しました。

Yellowfinは自社サーバーインストールタイプのWebベースBIツールです。

yellowfin.co.jp

最終的には、以下のようなOpenWeatherMapのAPIから取り込んだMongoDBの天気情報ドキュメントをフラットなRDBに変換し、

http://openweathermap.org/

f:id:sugimomoto:20180114123919p:plain

降雪情報や湿度の推移をビジュアライズしてみたいと思います。

f:id:sugimomoto:20180114123926p:plain

必要なもの

  1. Yellowfin

    公式サイトから無料評価版が申請できます。

    yellowfin.co.jp

    インストール方法は以下からどうぞ。

    インストール - Yellowfin Guide 7.2 - Yellowfin wiki (日本語版)

  2. MongoDB

    以前のBlogでインストール方法とOpenWeatherMapの取り込みについて触れているので、参照してみてください。     kageura.hatenadiary.jp

    kageura.hatenadiary.jp

  3. CData MongoDB JDBC Driver

    YellowFinは、通常MongoDBから直接データを取得することができませんが、JDBCドライバーによって各種データソースをサポートすることができるようになっているので、CDataで提供しているMongoDB JDBCドライバーを使うことで間接的に取り込めるようにすることが可能です。

    CData MongoDB JDBC Driverは以下から試用版がダウンロード可能なので、どうぞー。

    www.cdata.com

事前準備

CData MongoDB JDBC Driverインストール後、Yellowfinにライブラリをアップロードする必要があります。

ただ、一つ注意したいのが、ライセンス情報が含まれる[cdata.jdbc.mongodb.lic]の取り込みです。そのままの形式ではYellowfinに取り込むことができないので、ちょっとファイルを調整します。

[C:\Program Files\CData\CData JDBC Driver for MongoDB 2017J\lib]を開いて、[cdata.jdbc.mongodb.lic]ファイルをZipに圧縮して、[cdata.jdbc.mongodb.lic.jar]にリネームします。

f:id:sugimomoto:20180114124106p:plain

これで事前準備は完了です。

YellofinへCData MongoDB JDBC Driverの追加

それでは、Yellowfinへ接続して、CData MongoDB JDBC Driverを追加したいと思います。

ローカルホストのYellowfinを起動の上、http://localhost:8080/にアクセスし、ログインします。

f:id:sugimomoto:20180114124118p:plain

左のメニューペインから[管理]→[プラグイン管理]をクリックします。

f:id:sugimomoto:20180114124126p:plain

登録されているプラグインの一覧画面が表示されるので、[追加]をクリックします。

f:id:sugimomoto:20180114124135p:plain

ここで先程調整した[cdata.jdbc.mongodb.lic.jar]と共に[cdata.jdbc.mongodb.jar]をアップして[送信・実行]をクリックします。

f:id:sugimomoto:20180114124142p:plain

以下のように各種ファイルがアップされれば、YellowfinでMongoDB Driverが使えるようになります!

f:id:sugimomoto:20180114124150p:plain

データソースの設定

続いて、データソースとして、接続情報などを設定していきたいと思います。

右上の[+]ボタンから[データソース]を選択し

f:id:sugimomoto:20180114124200p:plain

接続先の一覧から[データベース]をクリックします。

f:id:sugimomoto:20180114124210p:plain

任意の名前を入力し、[データベースタイプ]から[一般JDBCデータソース]を選択します。

ここで、先程アップしたCData Mongo JDBC Driverが選択できるようになっています!

接続文字列はローカルにホスティングしたMongoDBであれば[jdbc:mongodb:Server=localhost;Port=27017;Database=test;]のような形式でアクセスできます。

詳しくは以下のヘルプを見てみてください。

http://cdn.cdata.com/help/HGC/jdbc/pg_connectionj.htm

f:id:sugimomoto:20180114124218p:plain

続いて、MongoDBに存在するコレクションを選択します。

CData JDBC Driverが自動的に、テーブルとしてYellowfinへ認識させるようにしていますので、事前に取り込んでおいた[tokyo-weather]のコレクションを選択し、任意の名称を入力の上、レポート作成をクリックします。

f:id:sugimomoto:20180114124223p:plain

これで、Yellowfin側でレポートを作成する準備が整いました。

レポートの作成

最後にレポートの作成です。

MongoDBはスキーマレスなドキュメントDBですが、Driverを挟むことで自動的に型やカラムをいい感じに検出してくれます。

あとYellofinのUIがシンプルでいいですね。色々とBIツールを使ってきましたが、WebUIベースでここまでリッチな感じは初めてでした。

日付情報や積雪情報、湿度情報をドラッグするだけで一覧が作成できます。

f:id:sugimomoto:20180114124229p:plain

グラフも、先程配置した項目を元に、横軸を日付にし、縦軸に積雪と湿度を配置すると、自動的に棒グラフを作成してくれました。

f:id:sugimomoto:20180114124236p:plain

あとは、保存して

f:id:sugimomoto:20180114124245p:plain

任意の名称をつければ

f:id:sugimomoto:20180114124251p:plain

以下のようにレポートの作成が完了です。

f:id:sugimomoto:20180114124300p:plain

おわりに

今回は結構シンプルにMongoDBのスキーマレスなデータをBIツールで扱ってみました。

ただ、このNoSQLの性質上、階層構造や配列の構造等、色々と加味しなければいけない点があるかと思います。

次回は、そのあたりを中心に触れてみたいと思います。