0

我有一个包含无序记录的大型 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)来序列化我的所有数据。优点是只有一个包含我所有数据的大文件,可以顺序读取,不一定需要压缩。

我更喜欢避免使用数据库,因为我的软件应该是独立的,而且我更喜欢使用 python。

谢谢,

里卡多

4

1 回答 1

0

我建议你使用sqlite3python 标准库中的模块。
单个 sqlite 数据库文件可以128TB保存>>200GB.
管理所有这些数据而不是数百万个文件要方便得多。

于 2012-02-18T16:29:02.443 回答