次のような順序付けられていないレコードを含む大きな xml ファイル (100GB 以上) があります。
<page id = "1">content 1</page>
<page id = "2">...</page>
<page id = "2">...</page>
... many other pages ...
<page id = "1">content 2</page>
... many other pages ...
読み取り専用モードでデータにアクセスする必要がありますが、ページごとにグループ化します。
<page id = "1">
content1
content2
...
</page>
<page id = "2">
...
...
</page>
...other pages...
ページを ID 順に並べてはなりません。
私のソリューションでは、今ではxmlを前処理する必要があり、ページごとに:
- 固有の命名規則でファイルを開きます (例: 1 ページ目は「1.data」、「2.data」など)。
- 現在のページのコンテンツを追加する
- ファイルを閉じる
私にとっての問題は、多数のページを処理するには、何百万ものファイルを作成する必要があることです。もちろん、これはあまり良くありません。
私の質問は、ある種のアーカイブ ファイル (tar や zip など) を使用してすべてのデータをシリアル化できるかどうかです。利点は、すべてのデータを含む大きなファイルが 1 つだけで、順次読み取ることができることです。圧縮は必ずしも必要ではありません。
私のソフトウェアはスタンドアロンである必要があり、Python を使用することを好むため、データベースの使用を避けることを好みます。
ありがとう、
リカルド