私は信用組合で働いています(約60Kのアカウント)。ステートメントプロセスは70年代のものであり、データをレイアウトに緊密に結合しました。つまり、ジョブを実行すると、各アカウントのステートメントを含むテキストファイルが生成されます。メインフレームの構成を変更しましたが、テキストを出力する代わりに、次のようなXMLを取得します。
<statements>
<statement account='1'>
...statement info like checking/savings/certificate/visa/loan/heloc shares
</statement>
<statement account='N'>
...statement info like checking/savings/certificate/visa/loan/heloc shares
</statement>
</statements>
リレーショナルテーブルからデータをプルし、iTextを使用してその場でPDFを作成するJavaコードを作成しました。ステートメントに表示されるデータの一部は、XMLのデータから計算されます。たとえば、XMLには共有上のすべてのトランザクションが含まれています。明細書には、貸方の数と借方の数を示したいと思います。DBに読み込まれると、ビューを使用してこれらの値をその場で計算し、データをJavaアプリに提供できます。
このXMLファイルは最大900MBであり、メンバーを追加するにつれて大きくなります。
xmlを一度に1つの「ステートメント」で処理したいと思います。 http://mrico.eu/entry/parsing_chunks_of_xml_documents
個別のステートメントを作成したら、そのシェア(小切手、普通預金、ビザなど)を対応するDBテーブルにロードします。
これを実現する最も簡単な方法は、ステートメントをPOJOにバインドしてから、POJOの複雑な要素(共有、トランザクション、またはローン)ごとに挿入を実行することです。
パーサー/バインダー/永続化ツールのどの組み合わせをお勧めしますか?
個人的には、生のJDBCインサートを好むので、パーサーとバインダーの問題がより重要です。
注:XMLのスキーマを作成することもできますが、メインフレームがXMLファイルを作成する方法が原因で壊れやすい可能性があります。FiservのSpectrumソフトウェアを使用している人は誰でも、私の痛みを感じます。