私は変換してシステムの他の部分にXMLとして提供しなければならないレコードを含む古いバイナリファイル形式を持っています。データサイズの感覚を与えるために、1つのファイルが50,000以上のレコードを持つ50メガまでのファイルである可能性があります。私が作業しなければならないXML変換は、この特定のファイルをほぼ20ギガバイトまで吹き飛ばします。大規模なXMLファイルの効率的な格納とアクセス
ファイルをgzipで圧縮すると、〜150Mbになります。そのため、多くの冗長性があります。
しかし、私たちがXMLとして提供しなければならないのは、大きなファイルの一部である個々のレコードです。これらの記録はそれぞれ非常に小さい。レコードへのランダムアクセスが必要です。レコード自体にはさまざまなフィールドが含まれているため、非常に大きなテーブルを持たずに列に要素をマッピングすることはできません。
システムの他の部分はpostgresqlデータベースを利用するため、個々のXMLノードのそれぞれをデータベースに格納することを検討しています。しかし、ストレージの賢明さがどれほど非効率なのか不思議です。
<xml>
<record><complex_other_xml_nodes>...<record>
<record>...<record>
<record>...<record>
<record>...<record>
<record>...<record>
</xml>
また、XMLデータベース(または何か他のもの)を評価する必要はありませんか?ああ、変換後にXMLを更新または変更する必要はありませんが、これらの従来のレコードは静的です。
あなたはvtd-xmlを見ましたか? –