JasperReports Server で MongoDB のレポートを作成
CData JDBC Driver for MongoDB を使用すると、企業全体で MongoDB のデータ へのアクセスを提供できます。この記事では、JasperReports Server にドライバーをデプロイし、MongoDB のデータ のビジネスビューであるレポートドメインに基づいたシンプルなレポートを作成する方法を説明します。
MongoDB データ連携について
CData を使用すれば、MongoDB のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- MongoDB 2.6 以降のデータにアクセスでき、さまざまな MongoDB バージョンで幅広く使用できます。
- 柔軟な NoSQL により、非構造化データを簡単に管理できます(詳細はこちら:NoSQL 統合のための最先端ドライバー)。
- 他の NoSQL ドライバーに対する機能的な優位性を活用し、MongoDB データを扱う際の機能的なメリットを実現できます(詳細はこちら:NoSQL 向けドライバーの機能比較)。
MongoDB の柔軟性により、トランザクション、オペレーション、または分析データベースとして使用できます。つまり、CData のお客様は、ビジネスデータを MongoDB に統合したり、MongoDB データをデータウェアハウスに統合したり(またはその両方)するために当社のソリューションを使用しています。また、Power BI や Tableau などのお気に入りのツールから MongoDB を直接分析・レポートするために、当社のライブ接続オプションを活用しているお客様もいます。
MongoDB のユースケースと CData が MongoDB 体験をどのように向上させるかについての詳細は、ブログ記事をご覧ください:The Top 10 Real-World MongoDB Use Cases You Should Know in 2024
はじめに
ドライバー JAR のデプロイ
以下の手順に従って、JasperReports Server にドライバー JAR をデプロイします。この手順は MongoDB と JasperReports Server にバンドルされている Tomcat サーバーに固有のものです。Tomcat ではなく JBoss AS 7 を使用している場合は、標準的なプロセスに従って JBoss への MongoDB JDBC Driver のデプロイを行ってください。
- インストールディレクトリの lib サブフォルダにあるドライバー JAR と .lic ファイルを、JasperReports Server インストールディレクトリ内の apache-tomcat フォルダの lib サブフォルダにコピーします。
-
apache-tomcat -> webapps -> jasperserver-pro -> META-INF に移動し、以下のリソースエントリを context.xml ファイルに追加します。
<Resource name="jdbc/mongodb" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.mongodb.MongoDBDriver" url="jdbc:mongodb:Server=MyServer;Port=27017;Database=test;User=test;Password=Password;" maxActive="20" maxIdle="10" maxWait="-1" factory="com.jaspersoft.jasperserver.tomcat.jndi.JSCommonsBasicDataSourceFactory"/>
JDBC URL(url 属性)に必要な接続プロパティを指定します。
MongoDB への接続には、Server、Database、User、Password プロパティを設定します。MongoDB コレクションにテーブルとしてアクセスするには、自動スキーマ検出を使用することができます。もちろんスキーマ定義の.rsd ファイルを編集して自分でスキーマ定義を書くことも可能です。スキーマに縛られないフリーフォーマットクエリを投げることもできます。
組み込みの接続文字列デザイナー
JDBC URL の構築には、MongoDB JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行します。
java -jar cdata.jdbc.mongodb.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションを設計する際のパフォーマンス向上に役立ちます。
-
jasperserver-pro -> WEB-INF に移動し、以下の参照を web.xml ファイルに追加します。
MongoDB のデータ JSP jdbc/mongodb javax.sql.DataSource Container
- サーバーを再起動します。
MongoDB JDBC データソースの作成
以下の手順に従って、MongoDB JDBC Driver を JDBC データソースにマッピングします。
- JasperReports Server にログインし、Create -> Data Source をクリックします。
- Type メニューで、JNDI Data Source を選択します。
- Service Name ボックスに、web.xml ファイルのリソース定義で指定した JNDI ルックアップを入力します。この例では、ルックアップは「jdbc/mongodb」です。
- Save をクリックしてデータソースを作成します。
ドメインの作成
ドメインは、レポート作成者に関連するビジネスビューを提供するメタデータおよびアクセス制御レイヤーです。以下の手順に従って、MongoDB のカラムを選択し、フィルタを適用し、SQL を実行してドメインを作成します。
- Create -> Domain をクリックします。ドメインの ID を入力し、保存場所を選択します。
- Data Source セクションで Browse をクリックし、作成した MongoDB データソースを選択します。
- Domain Design セクションで、Create with Domain Designer をクリックします。
- テーブルが含まれるスキーマを選択します。
- Tables タブで、Data Source ペインからテーブルを選択し、矢印をクリックして Selected Tables ペインに追加します。
- Derived Tables タブでは、SQL クエリに基づいてドメインを定義できます。例えば、
SELECT borough, cuisine FROM restaurants
- Joins タブでは、結合条件を構築するカラムを選択し、結合タイプを選択することでテーブルを結合できます。
- Pre-Filters タブでは、カラムをドラッグ&ドロップして、ドメインを通じて公開されるデータをフィルタする検索条件を定義します。
- Display タブで、ユーザーに提示されるデータセットに MongoDB データを選択します。
- OK をクリックして変更を確定し、Submit をクリックしてドメインを作成します。
リアルタイムでデータを探索
ドメインを作成したら、データに接続する準備が整います。以下の手順に従って、Ad Hoc Editor で Ad Hoc ビューを作成します。
- Create -> Ad Hoc View をクリックします。
-
表示されるダイアログで、作成した MongoDB ドメインを選択します。
-
Choose Data ページで、ビューで使用するカラムを選択します。Pre-Filters セクションでは、選択したフィールドに基づいてフィルタを作成できます。Display セクションでは、ドメインで表示されるカラム情報を変更できます。
- ウィザードが完了したら、ビュータイプを選択し、ビューにカラムを追加します。JasperSoft はドライバーのメタデータを使用して、データ型に基づいて利用可能なディメンションとメジャーを検出します。ディメンションとメジャーを Columns ボックスと Rows ボックスにドラッグします。メジャーを右クリックして集計計算を変更できます。Filters セクションで Columns スライダーを目的のデータレベルにドラッグします。
- ビューの設計中にデータの更新にアクセスするには、設計モードのツールバーでメニュー選択を Sample Data から Full Data に変更します。変更を行うと、JasperSoft Server はドライバーに対して基になる SQL クエリを実行します。
- ビューを保存します。
リアルタイムレポートの作成
これで、JasperSoft Server でホストされるレポートを作成できます。Ad Hoc Editor から作成するには、Save Ad Hoc View をクリックし、Create Report をクリックします。