このトピックでは、FineReport を使用して AnalyticDB for MySQL クラスターに接続し、レポートを管理する方法について説明します。
前提条件
-
FineReport と AnalyticDB for MySQL の互換性について理解していること。詳細については、「互換性の概要」をご参照ください。
-
MySQL Connector/J がインストールされていること。
-
FineReport がインストールされていること。新規インストールの場合、メタデータを保存するために ApsaraDB RDS for MySQL などの MySQL サーバーが必要です。FineReport では、データ接続を作成する 2 つの方法が提供されています。
-
方法 1: データ決定システムで接続します。詳細については、「JDBC を使用したデータベースへの接続」をご参照ください。
-
方法 2: デザイナーで接続します。MySQL 5.x の場合は MySQL データ接続、MySQL 8.x の場合は MySQL 8 データ接続プラグインをご参照ください。
-
-
インターネット経由で AnalyticDB for MySQL クラスターに接続する場合は、パブリックエンドポイントの申請と解放をご参照ください。
AnalyticDB for MySQL への接続
-
FineReport を起動します。メニューバーで、 を選択します。
-
[Define Data Connection] ページで、接続パラメーターを設定します。

パラメーター
説明
[データベース]
挿入 を選択します。
Driver
[com.mysql.jdbc.Driver] を選択します。
[基本]
AnalyticDB for MySQL クラスターの接続文字列です。形式は
jdbc:mysql://hostname:portです。-
hostname: クラスターのパブリックエンドポイントまたは Virtual Private Cloud (VPC) エンドポイント。 -
port: ポート番号。デフォルトは 3306 です。
[ユーザー名]
AnalyticDB for MySQL クラスターのアカウント。次のいずれかのアカウントタイプを使用できます。
-
特権アカウント
-
標準アカウント
[パスワード]
アカウントのパスワード。
-
-
パラメーターの設定後、接続のテスト をクリックします。テストが成功したら、OK をクリックして AnalyticDB for MySQL クラスターに接続します。
データセットの追加
AnalyticDB for MySQL への接続後、データセットを作成します。データセットは SQL クエリを使用してデータベースからデータを取得し、データセット管理パネルに 2 次元テーブルとして表示されます。
-
データセット管理パネルで、[Template Dataset] タブを選択し、上部の [+] をクリックします。

-
ドロップダウンリストから 拡張 を選択します。

-
DB Query ダイアログボックスで、AnalyticDB for MySQL クラスターのデータソースとターゲットテーブルを選択します。SQL クエリを入力して、ds1 という名前の新しいデータセットを作成します。たとえば、クエリ
select * from demo_salesはdemo_salesテーブルからすべてのデータを取得します。
-
集計クエリを使用して新しいデータセットを作成します。たとえば、
ds2という名前のデータセットを作成し、クエリSELECT store_name, SUM(sales_amount) AS total_sales FROM demo_sales GROUP BY store_nameを実行して各店舗の売上合計を取得します。 -
OK をクリックします。取得したデータがデータセット管理パネルに表示されます。
例
この例では、テーブルと縦棒グラフを含むレポートを作成する方法を示します。レポートには、製品タイプ、契約タイプ、支払いタイプ別にグループ化された、最大契約売上と総売上数量が表示されます。最終的なレポートは次の図のとおりです。

-
「Contract Sales Summary」サンプルデータファイルをダウンロードします: demo_contract。
-
AnalyticDB for MySQL でテーブルを作成します。
-
データ分布が均等なカラムを分散キーとして使用し、時間ベースのカラムをパーティションキーとして使用します。詳細については、「テーブルスキーマの設計」をご参照ください。
-
サンプルデータでは、
contract_idカラムの値がランダムに分散されています。このカラムを分散キーとして使用します。次の DDL 文でテーブルを作成します。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 を使用してダウンロードした Excel ファイルを AnalyticDB for MySQL にインポートします。
-
Kettle の使用方法の詳細については、「Kettle を使用した Data Warehouse Edition へのデータインポート」をご参照ください。
-
インポート完了後、
select count(*) from demo_contractを実行すると、668 件のレコードがあることが確認できます。
-
インポートしたデータを使用してサンプルレポートを生成します。
-
FineReport で d1 と d2 の 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 を結合し、レポートタイトル「Contract Sales Overview」を入力し、テキストを太字、中央揃え、15 ポイントに設定します。
-
斜線ヘッダーセル: 1 つの結合セル内にスラッシュで区切られた 3 つのヘッダーフィールドを表示するには、セル A3 と B3 を結合します。結合したセルを右クリックし、 を選択します。[Slope Line] ダイアログボックスで、テキスト
Payment Type | Contract Type | Product Typeを入力します。必要に応じてスペースを追加してテキスト位置を調整します。

-
-
データをバインドします。
-
データセットからデータカラムを対応するセルにドラッグします。
-
各製品の総売上数量を計算するには、セル C5 でセル C4 の値を合計する必要があります。これを行うには、セル C5 を選択し、ショートカットバーで [Insert Formula] をクリックし、数式エディターに数式
SUM(C4)を入力します。 -
同様に、すべての製品の総売上数量を計算するには、セル D5 に数式
SUM(D4)を挿入します。
-
-
セルのプロパティを設定します。
-
セル C3 を選択します。データを水平方向に展開するには、プロパティパネルで を選択し、[Expand Direction] を プレビュー に設定します。
-
セル C4 は、セル A4、B4、C3 の展開によって値が一意に定義されるため、展開する必要はありません。展開方向を「none」に設定します。セル C5 と D5 の展開方向も「none」に設定します。

-
-
複数のデータセットをリンクします。レポートが異なるデータセットのデータを使用する場合、データフィルターを追加してリンクする必要があります。
このレポートは、ds1 と ds2 の 2 つのデータセットのデータを使用します。これらは
product_typeとcontract_typeフィールドを共有しています。これらの共通フィールドを使用してデータセットをリンクするには、セル D4 をダブルクリックして Data Column ダイアログボックスを開きます。Filter タブで、ds1 と ds2 のproduct_typeとcontract_typeフィールドをバインドする条件を追加します。

-
グラフを設計します。
-
セル A7 から D15 を結合します。メニューバーから、 を選択します。 を選択し、OK をクリックします。

-
グラフを選択します。プロパティパネルで、 を選択してデータを設定します。Data Source を Cell Data に、Category を =B4 に、Series を =C3 に、Value を =C4 に設定します。
説明Category、Series、Value を設定する際には、等号 (=) を含める必要があります。含めない場合、FineReport はセル参照を文字列として扱います。

-
-
レポートをプレビューします。プレビューする前にレポートを保存する必要があります。保存 をクリックします。次に、横 をクリックし、ページごとプレビューを選択してブラウザーで表示します。
関連ドキュメント
FineReport と FineBI の違い: FineReport と FineBI の違い。
FineReport と FineBI には類似した操作があります。FineBI に関するよくある質問については、「FineBI 使用方法に関するよくある質問」をご参照ください。
FineReport 新規ユーザー向けのよくある質問: デザイナーに関するよくある質問をご参照ください。
FineReport でのレポート設計の詳細については、「レポートアプリケーション学習パス」をご参照ください。