1

我们需要将大量数据(大约 500 万条记录)导入到 rails 应用程序下的 postgresql db。数据将以 xml 格式提供,其中的图像使用 Base64 编码。

xml 文件的估计大小为 40GB。什么 xml 解析器可以在 ruby​​ 中处理这么多的数据?

谢谢。

4

3 回答 3

3

您需要使用某种SAX 解析器。SAX 解析器不会一次将所有内容加载到内存中。

我不知道 Ruby 解析器,但快速谷歌搜索给出了这篇博文。你可以从那里开始挖掘。

您还可以尝试将 XML 文件拆分为更小的部分以使其更易于管理。

于 2010-05-13T09:07:10.940 回答
1

正如 Juha 所说,您应该使用 XML SAX 解析器。我认为 Libxml 是 ruby​​ 中最快的 xml lib。

于 2010-05-13T09:31:15.790 回答
1

您可以将数据转换为 CSV,然后使用 DBMS CSV 加载功能将其加载到数据库中。对于MySQL 是 this,对于PostgreSQL 是 this。我不会使用 Ruby 中内置的任何东西来加载 40GB 的文件,这对内存来说不太好。最好留给“专业人士”。

于 2010-05-13T09:39:19.313 回答