存档格式,无需提取即可在文件上附加数据

时间:2012-02-18 15:15:19

标签: python file-io archiving bigdata data-formats

我有一个大的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。

谢谢,

的Riccardo

1 个答案:

答案 0 :(得分:0)

我建议你使用python标准库中的sqlite3模块 单个sqlite数据库文件可以保存128TB的{​​{1}}数据 管理所有这些数据而不是数百万个文件非常方便。