JReport Designer で JSON のServicesを連携利用
CData JDBC Driver for JSON services を使えば、ダッシュボードやレポートから JSON をリレーショナルデータベースのように扱い、使い慣れた SQL クエリで JSON services のライブデータにアクセスできます。この記事では、JReport Designer で JSON services に JDBC データソースとして接続し、JSON services のデータをもとにレポートを作成する方法を説明します。
JSON のServicesに接続
- C:\JReport\Designer\bin\setenv.bat を編集して、JAR ファイルの場所を ADDCLASSPATH 変数に追加します。
... set ADDCLASSPATH=%JAVAHOME%\lib\tools.jar;C:\Program Files\CData\CData JDBC Driver for JSON 2016\lib\cdata.jdbc.json.jar; ...
- File メニューから New、Data Source と進み、新しいデータソースを作成します。
- 表示されるダイアログでデータソース名を入力し(例:CData JDBC Driver for JSON)、JDBC を選択して OK をクリックします。
- Get JDBC Connection Information ダイアログで、JDBC ドライバーへの接続を設定します。
- Driver: Driver ボックスにチェックが入っていることを確認し、ドライバーのクラス名を入力します。
cdata.jdbc.json.JSONDriver
- URL: JDBC URL を入力します。URL は jdbc:json: から始まり、その後に接続プロパティをセミコロン区切りで記述します。
データソースへの認証については、ヘルプドキュメントの「はじめに」を参照してください。CData 製品は、JSON API を双方向データベーステーブルとして、JSON ファイルを読み取り専用ビュー(ローカル ファイル、一般的なクラウドサービスに保存されているファイル、FTP サーバー)としてモデル化します。HTTP Basic、Digest、NTLM、OAuth、FTP などの主要な認証スキームがサポートされています。詳細はヘルプドキュメントの「はじめに」を参照してください。
URI を設定して認証値を入力したら、DataModel を設定してデータ表現とデータ構造をより厳密に一致させます。
DataModel プロパティは、データをどのようにテーブルに表現するかを制御するプロパティで、次の基本設定を切り替えます。
- Document(デフォルト):JSON データのトップレベルのドキュメントビューをモデル化します。CData 製品 は、ネストされたオブジェクト配列を集約されたJSON オブジェクトとして返します。
- FlattenedDocuments:ネストされた配列オブジェクトと親オブジェクトを、単一テーブルに暗黙的に結合します。
- Relational:階層データから個々の関連テーブルを返します。テーブルには、親ドキュメントにリンクする主キーと外部キーが含まれています。
リレーショナル表現の設定についての詳細は、ヘルプドキュメントの「JSON データのモデリング」を参照してください。また、以下の例で使用されているサンプルデータも確認できます。データには人や所有する車、それらの車に行われたさまざまなメンテナンスサービスのエントリが含まれています。
Amazon S3 内のJSON への接続
URI をバケット内のJSON ドキュメントに設定します。さらに、次のプロパティを設定して認証します。
- AWSAccessKey:AWS アクセスキー(username)に設定。
- AWSSecretKey:AWS シークレットキーに設定。
Box 内のJSON への接続
URI をJSON ファイルへのパスに設定します。Box へ認証するには、OAuth 認証標準を使います。 認証方法については、Box への接続 を参照してください。
Dropbox 内のJSON への接続
URI をJSON ファイルへのパスに設定します。Dropbox へ認証するには、OAuth 認証標準を使います。 認証方法については、Dropbox への接続 を参照してください。ユーザーアカウントまたはサービスアカウントで認証できます。ユーザーアカウントフローでは、以下の接続文字列で示すように、ユーザー資格情報の接続プロパティを設定する必要はありません。 URI=dropbox://folder1/file.json; InitiateOAuth=GETANDREFRESH; OAuthClientId=oauthclientid1; OAuthClientSecret=oauthcliensecret1; CallbackUrl=http://localhost:12345;
SharePoint Online SOAP 内のJSON への接続
URI をJSON ファイルを含むドキュメントライブラリに設定します。認証するには、User、Password、およびStorageBaseURL を設定します。
SharePoint Online REST 内のJSON への接続
URI をJSON ファイルを含むドキュメントライブラリに設定します。StorageBaseURL は任意です。指定しない場合、ドライバーはルートドライブで動作します。 認証するには、OAuth 認証標準を使用します。
FTP 内のJSON への接続
URI をJSON ファイルへのパスが付いたサーバーのアドレスに設定します。認証するには、User およびPassword を設定します。
Google Drive 内のJSON への接続
デスクトップアプリケーションからのGoogle への認証には、InitiateOAuth をGETANDREFRESH に設定して、接続してください。詳細はドキュメントの「Google Drive への接続」を参照してください。
組み込みの接続文字列デザイナー
JDBC URL の構築には、JSON JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行します。
java -jar cdata.jdbc.json.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際には、Max Rows 接続プロパティの設定も検討してください。これにより返される行数が制限され、レポートやビジュアライゼーションのデザイン時のパフォーマンス向上に役立ちます。
一般的な JDBC URL は次のとおりです。
jdbc:json:URI=C:/people.json;DataModel=Relational;
- User: 認証に使用するユーザー名です。通常は空白のままにします。
- Password: 認証に使用するパスワードです。通常は空白のままにします。
- Driver: Driver ボックスにチェックが入っていることを確認し、ドライバーのクラス名を入力します。
Add Table ダイアログで、レポートに含めるテーブル(または、このデータソースを使用する今後のレポート用のテーブル)を選択し、Add をクリックします。
テーブルの読み込みが完了したら Done をクリックします。
- Catalog Browser で、レポートを作成するためのクエリを作成できます。これはレポート作成前でも作成後でも行えます。データソース(CData JDBC Driver for JSON)を展開()し、Queries を右クリックして Add Query を選択します。
- Add Table/View/Query ダイアログで、JDBC URL と Tables を展開()し、クエリで使用するテーブルを選択して OK をクリックします。
- Query Editor ダイアログで、含めるカラムを選択するか、SQL ボタンをクリックして独自のクエリを手動で入力します。例えば次のようになります。
SELECT [people].[personal.age] AS age, [people].[personal.gender] AS gender, [people].[personal.name.first] AS first_name, [people].[personal.name.last] AS last_name, [vehicles].[model], FROM [people] JOIN [vehicles] ON [people].[_id] = [vehicles].[people_id]
クエリが構築できたら、OK をクリックして Query Editor ダイアログを閉じます。これで JSON services を新規または既存のレポートに追加する準備が整いました。
NOTE: クエリが構築できたら、そのクエリをもとに Business View を作成できます。Business View を使用すると、クエリに基づいた Web レポートやライブラリコンポーネントを作成できます。詳しくは、JReport のチュートリアルを参照してください。
JSON のServicesをレポートに追加
これで JSON services を使用したレポートを作成する準備が整いました。
- File メニューから New、Page Report と進んで新しいレポートを作成するか、既存のレポートの Chart Wizard を開きます。
- Query を選択します(または新規作成します。上記を参照)。
- クエリのカラムからチャートの Category と Value を設定し、Finish をクリックします。
- レポートの View タブをクリックして、チャートを表示します。