このトピックでは、FineReportを使用してAnalyticDB for MySQLクラスターに接続し、レポートを管理する方法について説明します。
前提条件
FineReportとAnalyticDB for MySQLの互換性を理解しています。 詳細については、「互換性の概要」をご参照ください。
MySQL Connector/Jがインストールされています。
FineReportがインストールされています。 FineReportを初めてインストールする場合は、ApsaraDB RDS for MySQLなどのMySQLサーバーをインストールしてFineReportメタデータをインポートする必要があります。 次のいずれかの方法を使用して、MySQLサーバーからFineReportにデータをインポートできます。
方法1: データに基づく意思決定システムにおいて接続を確立する。 詳細については、「 [デザイナー] データベースへの接続」をご参照ください。
方法2: FineReportデザイナーを使用して接続を確立します。 メジャーバージョンが5.xのMySQLサーバーを使用している場合は、「 [プラットフォーム] MySQLへの接続」をご参照ください。 メジャーバージョンが8.xのMySQLサーバーを使用している場合は、「 [プラットフォーム] MySQLへの接続」をご参照ください。
インターネット経由でAnalyticDB For MySQLクラスターに接続する方法については、「パブリックエンドポイントの申請またはリリース」をご参照ください。
AnalyticDB for MySQLに接続する
FineReportを開始します。 上部のメニューバーで、 を選択します。
[データ接続の定義] ダイアログボックスで、次の表に示すパラメーターを設定します。
パラメーター
説明
データベース
データベースのエンジン。 ドロップダウンリストから [MySQL] を選択します。
ドライバー
ドライバーのタイプ。 ドロップダウンリストからcom.mysql.jdbc.Driverを選択します。
URL
接続先のAnalyticDB for MySQLクラスターの接続文字列。 形式は
jdbc:mysql:// hostname:port
です。 フィールドの説明hostname
: クラスターのパブリックまたはVirtual Private Cloud (VPC) エンドポイント。port
: AnalyticDB for MySQLクラスターエンドポイントのポート番号。 デフォルトのポート番号は、3306 です。
ユーザー名
AnalyticDB for MySQLクラスターへの接続に使用されるアカウントの名前。 次のアカウントタイプのいずれかを使用できます。
特権アカウント
標準アカウント
Password
AnalyticDB for MySQLクラスターへの接続に使用されるアカウントのパスワード。
上記のパラメーターを設定した後、[接続のテスト] をクリックします。 接続がテストに合格したら、[OK] をクリックしてAnalyticDB for MySQLクラスターに接続します。
テーブルの作成
AnalyticDB for MySQLクラスターに接続した後、データセットを作成する必要があります。 データセットは、SQL文を使用して既存のデータベースから取得されたデータで構成されます。 データは、データセット管理パネルに表示される2次元テーブルに格納されます。
[テンプレートデータセット] タブをクリックし、タブの左上隅にある [+] アイコンをクリックします。
ドロップダウンリストから [DBクエリ] を選択します。
[DBクエリ] ダイアログボックスで、Nameをds1に設定します。 左上隅のドロップダウンリストからAnalyticDB for MySQLクラスターを選択します。 左側のリストで、対応するテーブルをクリックします。 右側のエディタで、データクエリステートメントを入力します。 この例では、次の図に示すように、
select * from demo_sales
ステートメントを使用して、demo_salesテーブル内のすべてのデータをクエリおよび取得します。集計クエリの結果で構成されるデータセットを取得します。 たとえば、
ds2
という名前のデータセットを作成し、SELECT <store name>, SUM(Revenue) AS <total sales volume> FROM demo_sales GROUP by <Store name>
というクエリステートメントを使用して、各ストアの総売上をクエリおよび取得できます。[OK] をクリックします。 取得したデータは、データセット管理パネルに表示されます。
レポートの例
この例では、レポートが作成されます。 これには、製品タイプ、支払いタイプ、および契約タイプごとにソートされた最大販売量と総販売量を表示するテーブルと縦棒グラフが含まれています。 レポートを次の図に示します。
demo_contractという名前のデモテーブルをダウンロードします。
AnalyticDB for MySQLクラスターにテーブルを作成します。
値が均等に分散されている列を配布キーとして使用し、時間データを含む列をパーティションキーとして使用します。 詳細については、「スキーマデザイン」をご参照ください。
contract_id列はパーティションキーとして使用されます。 これは、contract_id列の値がランダムに分布しているためです。 次のステートメントを使用して、テーブルを作成します。
テーブル 'demo_contract' を作成する ( 'contract_id' varchar、 「customer_id」varchar、 'contract_type' varchar、 「金額」ビギント、 'payment_type' varchar、 'register_time '日付、 'purchase_amount 'int、 'create_time' タイムスタンプ、 'product_type' smallint、 'paid 'tinyint、 主キー ('contract_id') ) ハッシュによる配布 ('contract_id') INDEX_ALL='Y' STORAGE_POLICY='COLD'
テーブルの作成後、Kettleを使用してXLSXファイルからAnalyticDB for MySQLにデータをインポートします。
Kettleの使用方法については、「Kettleを使用してdata Warehouse Editionにデータをインポートする」をご参照ください。
データがインポートされたら、
SELECT count(*) FROM demo_contract
ステートメントを実行します。 668エントリが返されます。
次のセクションでは、インポートされたデータを使用してデモレポートを作成します。
d1およびd2テーブルから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セルをマージし、マージしたセルに次のタイトルを入力します。 フォントサイズを15に設定し、タイトルを太字で中央にします。
斜め線: 斜め線を使用して、左上のセルのカテゴリ名を区切ります。 A3セルとB3セルを結合し、結合したセルを右クリックして、
を選択します。 [スロープライン] ダイアログボックスで、フィールドに次の内容を入力します。支払いタイプ | 契約タイプ | 製品タイプ。 スペースを追加して、テキストの位置を調整できます。
セルに数式を追加します。
値が不均一に分布している列を対応するセルにドラッグします。
C5セルをクリックし、パラメータペインの上のショートカットバーにある式の挿入アイコンをクリックします。 [数式の定義] ダイアログボックスで、エディターに次の数式を入力します: SUM(C4) 。 これは、C4セル内の値を合計する。 C5セルは、各製品の総販売量を計算するために使用されます。
上記の操作を繰り返して、SUM(D4) 式をD5セルに追加します。 D5セルは、すべての製品の総販売量を計算するために使用されます。
セルの拡張方向を設定します。
C3セルをクリックします。 パネルで、[セル属性] をクリックします。 [セル属性] ダイアログボックスで、[展開] タブをクリックします。 [展開] タブで、[基本] セクションで [方向の展開] を [H] に設定します。 製品タイプデータは水平方向に展開されます。
上記の操作を繰り返して、C4の拡張方向を拡張なしに設定します。 これは、A4、B4、C3セルの販売量が一意だからである。 C5およびD5セルの拡大方向も拡大なしに設定する必要があります。
さまざまなデータセットのデータが同じレポートに表示される場合、データフィルター条件を追加してデータセットを関連付ける必要があります。 次のセクションでは、複数のデータセットを関連付ける方法について説明します。
レポートのデータは、ds1およびds2データセットに保存されます。 両方のデータセットには、製品タイプフィールドと契約タイプフィールドがあります。 したがって、2つのフィールドは、2つのデータセットを関連付けるために使用される。 D4セルをダブルクリックします。 [データ列] ダイアログボックスで、[フィルター] タブをクリックします。 [フィルター] タブで、D4セルに共通条件を追加して、ds2データセットとds1データセットの製品タイプフィールドとコントラクトタイプフィールドを関連付けます。
チャートをデザインします。
A7をD15セルにマージします。 上部のメニューバーで、
を選択します。 [チャートタイプ] リストの [列グラフ] をクリックし、右側のリストの [列グラフ] を選択し、[OK] をクリックします。チャートをクリックします。 パネルで、[セル要素] をクリックします。 表示されるダイアログボックスで、[データ] タブをクリックします。 データソースをセルデータに、カテゴリをB4に、シリーズをC3に、値をC4に設定する。
説明Category、Series、およびValueパラメーターを設定するときに、セル番号の前に等号 (=) を追加する必要があります。 それ以外の場合、セル番号は文字列として処理されます。
レポートをプレビューする場合は、最初に保存する必要があります。 上部のショートカットバーで [保存] をクリックします。 次に、[プレビュー] をクリックし、ドロップダウンリストから [ページ分割プレビュー] を選択します。 レポートがwebブラウザで開かれます。
関連ドキュメント
FineReportとFineBIの違いについては、「FineReportとFineBIの違い」をご参照ください。
FineReportとFineBIは、一部の操作で同様です。 FineBIの詳細については、「FineBI」をご参照ください。
FineReportの使用を開始する方法については、「Designer」をご参照ください。
FineReportレポートのデザイン方法については、「学習パス」をご参照ください。