SAP Crystal Reports で Elasticsearch ののデータをレポートに出力
Crystal Reports にはリモートデータへのデータ処理をオフロードするためのさまざまなオプションが用意されており、リアルタイムレポートを実現できます。Crystal Reports がJDBC に対応しているため、CData JDBC Driver for Elasticsearch によってこの機能をCrystal Reports で利用できるようになります。この記事では、レポート実行時にデータを更新するElasticsearch のデータレポートを作成する方法を紹介します。
Elasticsearch データ連携について
CData を使用すれば、Elasticsearch のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- SQL エンドポイントと REST エンドポイントの両方にアクセスでき、接続を最適化し、Elasticsearch データの読み書きに関してより多くのオプションを提供します。
- v2.2 以降およびオープンソース Elasticsearch サブスクリプションを含む、ほぼすべての Elasticsearch インスタンスに接続できます。
- SCORE() 関数を明示的に要求することなく、常にクエリ結果の関連性スコアを受け取ることができます。これにより、サードパーティツールからのアクセスが簡素化され、クエリ結果のテキスト関連性のランキングを簡単に確認できます。
- 複数のインデックスを検索でき、クライアントマシンではなく Elasticsearch がクエリと結果の管理・処理を担当します。
ユーザーは、Crystal Reports、Power BI、Excel などの分析ツールと Elasticsearch データを統合し、当社のツールを活用して、Elasticsearch を含むすべてのデータソースへの単一のフェデレートアクセスレイヤーを実現しています。
CData の Elasticsearch ソリューションの詳細については、ナレッジベース記事をご覧ください:CData Elasticsearch Driver Features & Differentiators
はじめに
以下の表は、この記事で使用するツールとバージョンです。
| アプリケーション名 | バージョン |
|---|---|
| SAP Crystal Reports 2020 | SP3 |
| JDBC Driver | 23.0.8565 |
JDBC Driver のデプロイ
Crystal Reports のクラスパスにドライバーJAR を含めて、CData JDBC Driver for Elasticsearch をインストールします。DataDriverCommonElement の下にあるClassPath 要素のパスに、.jar を含むフルファイルパスを追加します。
CRConfig.xml ファイルのデフォルトの場所はC:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java ですが、インストールによって多少異なる場合があります。ドライバーJAR はインストールディレクトリのlib サブフォルダにあります。
ClassPath にJAR を追加したら、Crystal Reports を再起動します。
Elasticsearch のデータに接続
ElasticsearchのJDBC Driver をデプロイしたら、レポートウィザードを使用して新しいレポートにElasticsearch のデータを追加できます。
- File -> New -> Standard Report をクリックします。
- Create New Connection の下にあるJDBC (JNDI) を展開し、Make a New Connection をダブルクリックします。
- CData JDBC Driver for Elasticsearch を使用して接続文字列を作成します。
ウィザードでJDBC 接続URL を入力します。
jdbc:elasticsearch:Server=127.0.0.1;Port=9200;User=admin;Password=123456;
ドライバークラス名を設定します。
cdata.jdbc.elasticsearch.ElasticsearchDriver
- レポートに必要なテーブルを選択します。
- SAP Crystal Reports でElasticsearch のデータのテーブルをリンクすることもできます。テーブル間のリンクを追加したら、NEXT をクリックします。
- テーブルを選択したら、選択したテーブルからレポートに表示するフィールドを選び、NEXT をクリックします。
- レポート上の情報をグループ化するために「Group By」フィールドを選択します。
- 集計合計に基づいてグループを並べ替え、NEXT をクリックします。
JDBC URL の構成については、Elasticsearch JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.elasticsearch.jar
Elasticsearch 接続プロパティの取得・設定方法
接続するには、Server およびPort 接続プロパティを設定します。 認証には、User とPassword プロパティ、PKI (public key infrastructure)、またはその両方を設定します。 PKI を使用するには、SSLClientCert、SSLClientCertType、SSLClientCertSubject、およびSSLClientCertPassword プロパティを設定します。
CData 製品は、認証とTLS/SSL 暗号化にX-Pack Security を使用しています。TLS/SSL で接続するには、Server 値に'https://' を接頭します。Note: PKI を 使用するためには、TLS/SSL およびクライアント認証はX-Pack 上で有効化されていなければなりません。
接続されると、X-Pack では、設定したリルムをベースにユーザー認証およびロールの許可が実施されます。
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションをデザインする際のパフォーマンス向上に役立ちます。
その後、グループ化、並べ替え、集計を設定できます。集計とサマリーを使用してチャートを作成するには、次のセクションを参照してください。
チャートの作成
グループ化するカラムを選択した後、標準レポート作成ウィザードでチャートを作成するオプションが表示されます。以下の手順に従って、OrderName カラムの値を集計するチャートを作成します。
- 標準レポート作成ウィザードで、Bar Chart オプションを選択し、「On change of」メニューでグループ化したカラムを選択します。
- Show Summary メニューで、作成した集計を選択します。
- 必要に応じてフィルターとテンプレートを選択し、ウィザードを完了します。
レポートのテンプレートを選択すると、完成したレポートをプレビューし、データが入力されたチャートを表示できます。
完成したレポート
レポートに最初に指定したすべてのフィールドが含まれていることを確認できます。
リモートデータの操作
データの更新を確認するには、File をクリックし、「Save Data with Report」オプションをオフにします。レポートを操作すると(例えば、詳細にドリルダウンすると)、Crystal Reports はレポートの表示に必要なデータを取得するためにSQL クエリを実行します。すでに取得したデータを再読み込みするには、レポートを更新または再実行します。
詳細要素を非表示にし、サーバー側グループ化を有効にすることで、ドライバーに処理をオフロードできます。これを行うには、レポート作成ウィザードでグループ化するカラムを選択する必要があります。
- File -> Report Options をクリックし、「Perform Grouping On Server」オプションを選択します。
- Report -> Section Expert をクリックし、レポートのDetails セクションを選択します。「Hide (Drill-Down OK)」オプションを選択します。
詳細を非表示にしてレポートをプレビューすると、Crystal Reports はGROUP BY クエリを実行します。チャートのカラムをダブルクリックして詳細にドリルダウンすると、Crystal Reports は必要なデータのみを取得するSELECT WHERE クエリを実行し、読み込み時間を短縮します。
これで、SAP Crystal Reports とCData JDBC Driver を使用して、Elasticsearch のデータに基づくSAP Crystal レポートが作成できました。CData JDBC Driver for Elasticsearch の詳細と無料トライアルのダウンロードについては、Elasticsearch JDBC Driver ページをご覧ください。ご不明な点がございましたら、サポートチームまでお問い合わせください。