0

6000 万を超えるレコードを持つ単一の大きな XML ファイルを作成する必要があります。この操作は定期的に繰り返されるため、迅速な方法が必要です。

2か所にデータがあります

  1. 2 つの異なるテーブルのデータベース内。
  2. ファイル システム上 2 つのパイプで区切られたファイル内。

現在、StaX パーサーを使用して Java で XML ファイルを作成しようとしています。

ここで、データを読み取って XML ファイルを作成するためにデータベース/テキスト ファイルを使用する必要があるかどうかを知る必要があります。

どちらがより高速なオプションになりますか?
また、そのような大規模データの作成/XMLへの変換を最適化された方法で処理する特定のAPIはありますか?

Linux コマンドを使用したファイル処理と、それがより高速なオプションである場合は、それを受け入れます。

コメントの更新

  • 2 つの個別のファイルと DB クエリの CSV ダンプから XML 要素情報を取得できる速度はどれくらいですか? データベースで利用できるものはすべて、PIPE 分離ファイルで利用できます。そして、XML要素情報をどのように高速に取得/作成できるかが、まさにここでの質問の意図です. これはまさに、全体的な操作速度に影響を与えるものです。

  • マッピングの複雑さ: マッピングは 1 対多です。最初のファイルの 1 レコードは、2 番目のテキスト ファイル/テーブルの約 8000 レコードにマップされます。

コメントの更新 - > 大きな出力バッファを使用します。

了解した。データベース/ファイルから大きなチャンクでデータを読み取り、完全なチャンクを処理したらフラッシュします。しかし、データベースの読み取りまたはファイルの読み取りで行う必要がありますか?

更新 MySQL データベースから任意のツールを使用してエクスポートし、XML 形式に自動変換できますか?

4

1 に答える 1

0

perlおよびXML::Simple / XML::Writer perl モジュールを使用できます。Perl は、データベースとテキスト ファイルの両方からデータを読み取ることもできます。

于 2013-03-15T12:03:55.697 に答える