MongoDBのドキュメント指向NoSQLデータをCData JDBC Driver経由でYellowfinを使い可視化してみる
何回かに分けてMongoDBに触れてきたのですが、今回はBIツールからMongoDBと戯れてみたいと思います。
今回BIツールはYellowfinを利用しました。
Yellowfinは自社サーバーインストールタイプのWebベースBIツールです。
最終的には、以下のようなOpenWeatherMapのAPIから取り込んだMongoDBの天気情報ドキュメントをフラットなRDBに変換し、
降雪情報や湿度の推移をビジュアライズしてみたいと思います。
必要なもの
Yellowfin
公式サイトから無料評価版が申請できます。
インストール方法は以下からどうぞ。
MongoDB
以前のBlogでインストール方法とOpenWeatherMapの取り込みについて触れているので、参照してみてください。 kageura.hatenadiary.jp
CData MongoDB JDBC Driver
YellowFinは、通常MongoDBから直接データを取得することができませんが、JDBCドライバーによって各種データソースをサポートすることができるようになっているので、CDataで提供しているMongoDB JDBCドライバーを使うことで間接的に取り込めるようにすることが可能です。
CData MongoDB JDBC Driverは以下から試用版がダウンロード可能なので、どうぞー。
事前準備
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]にリネームします。
これで事前準備は完了です。
YellofinへCData MongoDB JDBC Driverの追加
それでは、Yellowfinへ接続して、CData MongoDB JDBC Driverを追加したいと思います。
ローカルホストのYellowfinを起動の上、http://localhost:8080/にアクセスし、ログインします。
左のメニューペインから[管理]→[プラグイン管理]をクリックします。
登録されているプラグインの一覧画面が表示されるので、[追加]をクリックします。
ここで先程調整した[cdata.jdbc.mongodb.lic.jar]と共に[cdata.jdbc.mongodb.jar]をアップして[送信・実行]をクリックします。
以下のように各種ファイルがアップされれば、YellowfinでMongoDB Driverが使えるようになります!
データソースの設定
続いて、データソースとして、接続情報などを設定していきたいと思います。
右上の[+]ボタンから[データソース]を選択し
接続先の一覧から[データベース]をクリックします。
任意の名前を入力し、[データベースタイプ]から[一般JDBCデータソース]を選択します。
ここで、先程アップしたCData Mongo JDBC Driverが選択できるようになっています!
接続文字列はローカルにホスティングしたMongoDBであれば[jdbc:mongodb:Server=localhost;Port=27017;Database=test;]のような形式でアクセスできます。
詳しくは以下のヘルプを見てみてください。
http://cdn.cdata.com/help/HGC/jdbc/pg_connectionj.htm
続いて、MongoDBに存在するコレクションを選択します。
CData JDBC Driverが自動的に、テーブルとしてYellowfinへ認識させるようにしていますので、事前に取り込んでおいた[tokyo-weather]のコレクションを選択し、任意の名称を入力の上、レポート作成をクリックします。
これで、Yellowfin側でレポートを作成する準備が整いました。
レポートの作成
最後にレポートの作成です。
MongoDBはスキーマレスなドキュメントDBですが、Driverを挟むことで自動的に型やカラムをいい感じに検出してくれます。
あとYellofinのUIがシンプルでいいですね。色々とBIツールを使ってきましたが、WebUIベースでここまでリッチな感じは初めてでした。
日付情報や積雪情報、湿度情報をドラッグするだけで一覧が作成できます。
グラフも、先程配置した項目を元に、横軸を日付にし、縦軸に積雪と湿度を配置すると、自動的に棒グラフを作成してくれました。
あとは、保存して
任意の名称をつければ
以下のようにレポートの作成が完了です。
おわりに
今回は結構シンプルにMongoDBのスキーマレスなデータをBIツールで扱ってみました。
ただ、このNoSQLの性質上、階層構造や配列の構造等、色々と加味しなければいけない点があるかと思います。
次回は、そのあたりを中心に触れてみたいと思います。