AnalyticDB for MySQL クラスターに FineReport を接続し、クラスター上で直接データをクエリしてレポートを作成します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
FineReport と AnalyticDB for MySQL の互換性を確認済みであること。詳細については、「互換性の概要」をご参照ください。
MySQL Connector/J をインストール済みであること。
FineReport をインストール済みであること。初めて FineReport をインストールする場合は、FineReport のメタデータをインポートするために MySQL サーバー(例:ApsaraDB RDS for MySQL)も必要です。接続設定には、以下のいずれかの方法を使用します。
FineReport デザイナー:MySQL 5.x の場合、「[プラットフォーム] MySQL への接続」をご参照ください。MySQL 8.x の場合、「[プラットフォーム] MySQL への接続」をご参照ください。
データ駆動型意思決定システム:「[デザイナー] データベースへの接続」をご参照ください。
(任意)インターネット経由で接続する場合は、パブリックエンドポイントを申請済みであること。詳細については、「パブリックエンドポイントの申請またはリリース」をご参照ください。
AnalyticDB for MySQL への接続
接続パラメーター
| パラメーター | 値 |
|---|---|
| データベース | MySQL |
| ドライバー | com.mysql.jdbc.Driver |
| URL | jdbc:mysql://<hostname>:<port> |
| ユーザー名 | 特権アカウントまたは標準アカウント |
| パスワード | アカウントのパスワード |
ここで:
<hostname>:クラスターのパブリックエンドポイントまたは仮想プライベートクラウド(VPC)エンドポイント。<port>:クラスターエンドポイントのポート番号。デフォルト値:3306。
手順
FineReport を起動します。上部のメニューバーから、[サーバー] > [データ接続の定義] を選択します。
[データ接続の定義] ダイアログで、上記の表に示すパラメーターを設定します。

[接続テスト] をクリックします。テストが成功したら、[OK] をクリックします。
これで、ご利用の AnalyticDB for MySQL クラスターへの接続が完了しました。次に、レポート用のデータをクエリするためのデータセットを作成します。
データセットの作成
データセットは、SQL ステートメントを用いてクラスターから取得したデータを含みます。FineReport では、データセットはデータセット管理パネル内で二次元テーブルとして表示されます。
[テンプレートデータセット] タブをクリックし、左上隅の [+] アイコンをクリックします。

ドロップダウンリストから [DB クエリ] を選択します。

[DB クエリ] ダイアログで、[名前] を
ds1に設定します。左上隅のドロップダウンからご利用の AnalyticDB for MySQL クラスターを選択します。左側のリストからテーブルをクリックし、右側のエディターに SQL を入力します。たとえば、demo_salesテーブルからすべてのデータを取得するには、以下のように入力します。select * from demo_sales
集計データを含むデータセットを作成するには、別のデータセット
ds2を追加します。たとえば、店舗ごとの売上合計を取得するには、以下のように入力します。SELECT <店舗名>, SUM(Revenue) AS <売上総額> FROM demo_sales GROUP BY <店舗名>[OK] をクリックします。取得したデータがデータセット管理パネルに表示されます。
レポートの作成
このセクションでは、製品タイプ、支払方法、契約タイプごとの最大売上および売上総額を表形式および縦棒グラフで表示する完全なレポート作成例を説明します。

デモデータの準備
demo_contract テーブルをダウンロードします。
ご利用の AnalyticDB for MySQL クラスターに
demo_contractテーブルを作成します。分散キーには値が均等に分布する列を、パーティションキーには時刻列を指定します。「スキーマ設計」を参考にしてください。この例では、値がランダムに分布しているcontract_idを分散キーとして使用します。Create Table `demo_contract` ( `contract_id` varchar, `customer_id` varchar, `contract_type` varchar, `amount` bigint, `payment_type` varchar, `register_time` date, `purchase_amount` int, `create_time` timestamp, `product_type` smallint, `paid` tinyint, primary key (`contract_id`) ) DISTRIBUTED BY HASH(`contract_id`) INDEX_ALL='Y' STORAGE_POLICY='COLD'Kettle を使用して XLSX ファイルから AnalyticDB for MySQL へデータをインポートします。「Kettle を使用したデータウェアハウスエディションへのデータインポート」をご参照ください。インポート後、以下のクエリを実行してデータを検証します。
SELECT count(*) FROM demo_contractこのクエリは 668 件のエントリを返します。
FineReport へのデータセットのインポート
インポートしたデータを用いて、FineReport で 2 つのデータセットを作成します。
製品タイプ、契約タイプ、支払方法ごとの最大売上を取得するデータセット
d1を作成します。select product_type, payment_type, contract_type, max(purchase_amount) as max_amount from demo_contract group by product_type, payment_type, contract_type having max_amount>0製品タイプおよび契約タイプごとの売上総額を取得するデータセット
d2を作成します:製品タイプおよび契約タイプでデータを分類し、すべての支払方法を対象とした売上総額を計算します。

表のデザイン
タイトル:セル A1 ~ D2 をマージします。マージされたセルに
契約売上概要を入力し、フォントサイズを 15 に設定して太字・中央揃えにします。斜めヘッダー:セル A3 および B3 をマージします。マージされたセルを右クリックし、[セル要素] > [スラッシュ挿入] を選択します。[傾斜線] ダイアログに以下を入力します。
支払方法 | 契約タイプ | 製品タイプスペースを追加してテキストの位置を調整します。


数式:値の分布が不均一なデータ列を対応するセルにドラッグします。その後、以下の数式を追加します。
セル C5 をクリックします。ショートカットバーの [数式の挿入] アイコンをクリックします。[数式定義] ダイアログに
SUM(C4)を入力して、製品ごとの売上総額を合計します。セル D5 をクリックし、
SUM(D4)を追加して、すべての製品の売上総額を合計します。

[展開方向]:データがセルにどのように展開されるかを制御します。
セル C3 をクリックします。パネルで [セル属性] > [展開] タブを選択します。[基本] セクションで、[展開方向] を H に設定して、製品タイプのデータが水平方向に展開されるようにします。
セル C4、C5、D5 については、これらのセルが特定の組み合わせに紐づく一意の値を保持するため、[展開方向] を [展開なし] に設定します。

データセットの関連付け:同一のレポートに複数のデータセットが存在する場合、共通のフィールドを使用してそれらを関連付けます。データセット
d1およびd2にはどちらもproduct_typeおよびcontract_typeが含まれているため、これらのフィールドを用いて 2 つのデータセットを関連付けます。セル D4 をダブルクリックします。[データ列] ダイアログで [フィルター] タブをクリックし、product_typeおよびcontract_typeをd1およびd2間でリンクする共通条件を追加します。

縦棒グラフの追加
セル A7 ~ D15 をマージします。上部のメニューバーから、[挿入] > [セル要素] > [チャートの挿入] を選択します。[チャートタイプ] リストから [縦棒グラフ] を選択し、右側のリストから [縦棒グラフ] を選択して、[OK] をクリックします。

チャートをクリックします。パネルで [セル要素] をクリックします。[データ] タブで、以下の設定を行います。
データソース:セルデータ
カテゴリ:
=B4系列:
=C3値:
=C4
説明セル参照の先頭には必ず
=を付けてください。=を付けないと、FineReport はその値を文字列として扱い、セル参照として認識しません。
レポートのプレビュー
まずレポートを保存し、[プレビュー] をクリックして、ドロップダウンから [ページ分割プレビュー] を選択します。レポートがブラウザで開きます。