SAP Crystal Reports で Azure Synapse ののデータをレポートに出力
Crystal Reports にはリモートデータへのデータ処理をオフロードするためのさまざまなオプションが用意されており、リアルタイムレポートを実現できます。Crystal Reports がJDBC に対応しているため、CData JDBC Driver for Azure Synapse によってこの機能をCrystal Reports で利用できるようになります。この記事では、レポート実行時にデータを更新するAzure Synapse のデータレポートを作成する方法を紹介します。
以下の表は、この記事で使用するツールとバージョンです。
| アプリケーション名 | バージョン |
|---|---|
| SAP Crystal Reports 2020 | SP3 |
| JDBC Driver | 23.0.8565 |
JDBC Driver のデプロイ
Crystal Reports のクラスパスにドライバーJAR を含めて、CData JDBC Driver for Azure Synapse をインストールします。DataDriverCommonElement の下にあるClassPath 要素のパスに、.jar を含むフルファイルパスを追加します。
CRConfig.xml ファイルのデフォルトの場所はC:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java ですが、インストールによって多少異なる場合があります。ドライバーJAR はインストールディレクトリのlib サブフォルダにあります。
ClassPath にJAR を追加したら、Crystal Reports を再起動します。
Azure Synapse のデータに接続
Azure SynapseのJDBC Driver をデプロイしたら、レポートウィザードを使用して新しいレポートにAzure Synapse のデータを追加できます。
- File -> New -> Standard Report をクリックします。
- Create New Connection の下にあるJDBC (JNDI) を展開し、Make a New Connection をダブルクリックします。
- CData JDBC Driver for Azure Synapse を使用して接続文字列を作成します。
- Server:Azure を実行しているサーバー。Azure ポータルにログインして、[Azure Synapse Analytics]->[Select your database]->[Overview]->[Server name]に進むと確認できます。
- Database:[Azure Synapse Analytics]ページのAzure ポータルに表示されるデータベース名。
- AuthScheme:Password
- User:認証するAzure Synapse ユーザー。
- Password:認証するAzure Synapse ユーザーのパスワード。
ウィザードでJDBC 接続URL を入力します。
jdbc:azuresynapse:User=myuser;Password=mypassword;Server=localhost;Database=Northwind;
ドライバークラス名を設定します。
cdata.jdbc.azuresynapse.AzureSynapseDriver
- レポートに必要なテーブルを選択します。
- SAP Crystal Reports でAzure Synapse のデータのテーブルをリンクすることもできます。テーブル間のリンクを追加したら、NEXT をクリックします。
- テーブルを選択したら、選択したテーブルからレポートに表示するフィールドを選び、NEXT をクリックします。
- レポート上の情報をグループ化するために「Group By」フィールドを選択します。
- 集計合計に基づいてグループを並べ替え、NEXT をクリックします。
JDBC URL の構成については、Azure Synapse JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.azuresynapse.jar
Azure Synapse への接続
Azure Synapse データベースに接続するには、認証に加えて(下記参照)、次のプロパティを設定します。
Azure Synapse への認証
Azure Synapse は、Entra ID(Azure AD)、Azure サービスプリンシパル、Managed Service Identity(MSI)、パスワード(デフォルト)、Azure Password を使用する認証をサポートします。
パスワードでAzure Synapse に直接認証するには、以下のプロパティを設定します。
その他の認証方法については、ヘルプドキュメント の「はじめに」セクションを参照してください。
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションをデザインする際のパフォーマンス向上に役立ちます。
その後、グループ化、並べ替え、集計を設定できます。集計とサマリーを使用してチャートを作成するには、次のセクションを参照してください。
チャートの作成
グループ化するカラムを選択した後、標準レポート作成ウィザードでチャートを作成するオプションが表示されます。以下の手順に従って、Id カラムの値を集計するチャートを作成します。
- 標準レポート作成ウィザードで、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 を使用して、Azure Synapse のデータに基づくSAP Crystal レポートが作成できました。CData JDBC Driver for Azure Synapse の詳細と無料トライアルのダウンロードについては、Azure Synapse JDBC Driver ページをご覧ください。ご不明な点がございましたら、サポートチームまでお問い合わせください。