JasperReports Server で Amazon S3 のレポートを作成
CData JDBC Driver for Amazon S3 を使用すると、企業全体で Amazon S3 のデータ へのアクセスを提供できます。この記事では、JasperReports Server にドライバーをデプロイし、Amazon S3 のデータ のビジネスビューであるレポートドメインに基づいたシンプルなレポートを作成する方法を説明します。
ドライバー JAR のデプロイ
以下の手順に従って、JasperReports Server にドライバー JAR をデプロイします。この手順は Amazon S3 と JasperReports Server にバンドルされている Tomcat サーバーに固有のものです。Tomcat ではなく JBoss AS 7 を使用している場合は、標準的なプロセスに従って JBoss への Amazon S3 JDBC Driver のデプロイを行ってください。
- インストールディレクトリの lib サブフォルダにあるドライバー JAR と .lic ファイルを、JasperReports Server インストールディレクトリ内の apache-tomcat フォルダの lib サブフォルダにコピーします。
-
apache-tomcat -> webapps -> jasperserver-pro -> META-INF に移動し、以下のリソースエントリを context.xml ファイルに追加します。
<Resource name="jdbc/amazons3" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.amazons3.AmazonS3Driver" url="jdbc:amazons3:AccessKey=a123;SecretKey=s123;" maxActive="20" maxIdle="10" maxWait="-1" factory="com.jaspersoft.jasperserver.tomcat.jndi.JSCommonsBasicDataSourceFactory"/>
JDBC URL(url 属性)に必要な接続プロパティを指定します。
Amazon S3 リクエストを認可するには、管理者アカウントまたはカスタム権限を持つIAM ユーザーの認証情報を入力します。AccessKey をアクセスキーID に設定します。SecretKey をシークレットアクセスキーに設定します。
Note: AWS アカウント管理者として接続できますが、AWS サービスにアクセスするにはIAM ユーザー認証情報を使用することをお勧めします。
尚、CData 製品はAmazon S3 のファイルの一覧表示やユーザー管理情報の取得用です。S3 に保管されているExcel、CSV、JSON などのファイル内のデータを読み込みたい場合には、Excel Driver、CSV Driver、JSON Driver をご利用ください。
アクセスキーの取得
IAM ユーザーの資格情報を取得するには:
- IAM コンソールにサインインします。
- ナビゲーションペインで「ユーザー」を選択します。
- ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから「セキュリティ認証情報」タブを選択します。
AWS ルートアカウントの資格情報を取得するには:
- ルートアカウントの資格情報を使用してAWS 管理コンソールにサインインします。
- アカウント名または番号を選択し、表示されたメニューで「My Security Credentials」を選択します。
- 「Continue to Security Credentials」をクリックし、「Access Keys」セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。
AWS ロールとして認証
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。RoleARN を指定することでAWS ロールを代わりに使用できます。これにより、CData 製品は指定されたロールの資格情報を取得しようと試みます。
(すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、ロールを引き受けるIAM ユーザーのAccessKey とSecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey および SecretKey を指定する場合、ロールは使用できません。
SSO 認証
SSO 認証を必要とするユーザーおよびロールには、RoleARN およびPrincipalArn 接続プロパティを指定してください。各Identity Provider に固有のSSOProperties を指定し、AccessKey とSecretKey を空のままにする必要があります。これにより、CData 製品は一時的な認証資格情報を取得するために、リクエストでSSO 認証情報を送信します。
組み込みの接続文字列デザイナー
JDBC URL の構築には、Amazon S3 JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行します。
java -jar cdata.jdbc.amazons3.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションを設計する際のパフォーマンス向上に役立ちます。
-
jasperserver-pro -> WEB-INF に移動し、以下の参照を web.xml ファイルに追加します。
Amazon S3 のデータ JSP jdbc/amazons3 javax.sql.DataSource Container
- サーバーを再起動します。
Amazon S3 JDBC データソースの作成
以下の手順に従って、Amazon S3 JDBC Driver を JDBC データソースにマッピングします。
- JasperReports Server にログインし、Create -> Data Source をクリックします。
- Type メニューで、JNDI Data Source を選択します。
- Service Name ボックスに、web.xml ファイルのリソース定義で指定した JNDI ルックアップを入力します。この例では、ルックアップは「jdbc/amazons3」です。
- Save をクリックしてデータソースを作成します。
ドメインの作成
ドメインは、レポート作成者に関連するビジネスビューを提供するメタデータおよびアクセス制御レイヤーです。以下の手順に従って、Amazon S3 のカラムを選択し、フィルタを適用し、SQL を実行してドメインを作成します。
- Create -> Domain をクリックします。ドメインの ID を入力し、保存場所を選択します。
- Data Source セクションで Browse をクリックし、作成した Amazon S3 データソースを選択します。
- Domain Design セクションで、Create with Domain Designer をクリックします。
- テーブルが含まれるスキーマを選択します。
- Tables タブで、Data Source ペインからテーブルを選択し、矢印をクリックして Selected Tables ペインに追加します。
- Derived Tables タブでは、SQL クエリに基づいてドメインを定義できます。例えば、
SELECT Name, OwnerId FROM ObjectsACL WHERE Name = 'TestBucket'
- Joins タブでは、結合条件を構築するカラムを選択し、結合タイプを選択することでテーブルを結合できます。
- Pre-Filters タブでは、カラムをドラッグ&ドロップして、ドメインを通じて公開されるデータをフィルタする検索条件を定義します。
- Display タブで、ユーザーに提示されるデータセットに Amazon S3 データを選択します。
- OK をクリックして変更を確定し、Submit をクリックしてドメインを作成します。
リアルタイムでデータを探索
ドメインを作成したら、データに接続する準備が整います。以下の手順に従って、Ad Hoc Editor で Ad Hoc ビューを作成します。
- Create -> Ad Hoc View をクリックします。
-
表示されるダイアログで、作成した Amazon S3 ドメインを選択します。
-
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 をクリックします。