2

Hibernate (JPA 2.0)、Spring 3.0.5、および Oracle 11g を使用するアプリケーションに取り組んでいます。

データベース内の多数のテーブルに基づいていくつかのレポート (CSV) を生成する必要があります。

サンプル レポートの CSV は次のようになります。

From_Date    TO_Date     Group   Metric     Mon     Tue      Wed     Thu    Fri

10/01/2012   10/02/2012   HP     Average    29       74       400     99     14 
10/02/2012   10/03/2012   HP     Average    81       19       22      108    07
10/03/2012   10/04/2012   HP     Average    11       62       09      16     01

10/01/2012   10/02/2012   HP     Total      924      452      915     100    940 
10/02/2012   10/03/2012   HP     Total      185      925      266     108    857
10/03/2012   10/04/2012   HP     Total      173      201      907     675    169

私の質問は、このレポートは多くのテーブルとさまざまな指標 (平均、合計、パーセンテージ) に依存するため、特定のテクノロジー スタックを前進させる最善の方法は何ですか?

現在、レポート API を使用していません。

ストアドプロシージャは行く方法ですか?

ありがとう !!

4

2 に答える 2

2

必要な技術は次の 2 つです。

  • データを取得して計算するためのもの
  • ビジュアライゼーションを作成するための何か

(+ オプションで、一定間隔でレポートを自動生成するためのスケジューリング メカニズム)

データ検索

JPA および Java コードを使用してデータをアセンブルすることには強く反対します。少量のデータしかない場合を除き、これは通常は遅くなるからです。

アプリで JPA を使用している場合は、まず JPA ビュー オブジェクト + JPA チューニング (構成ファイル/注釈を使用) を使用してみます。

それでもうまくいかない場合は、ネイティブ JDBC にフォールバックします。

このトピックの詳細については、私のブログ: JPA Query result as a POJO

JDBC でさえ遅すぎる場合は、ストアド プロシージャのみを検討します (これは、書き込み、バージョン管理、アプリとの同期の維持などが困難です)。

視覚化

Pentaho BI サーバー (または同様の製品) は、提供されているツールチェーン全体 (データをロードする ETL、レポート デザイナー ツール、データ アナライザー、レポート スケジューラーなど) を利用できる場合に、ほとんどの場合メリットがあります。いくつかのレポートしかなく、これらがすぐに変更されない場合は、Java ソリューションに固執します。

于 2012-07-18T13:22:28.030 に答える
1

レポートには、JasperReports (PDF) またはApache POI (MS ドキュメント、MS Excel など)を使用できます。

よろしく。

于 2012-07-18T12:25:23.153 に答える