将5百万条记录导入rails应用程序

时间:2010-05-13 08:59:21

标签: ruby-on-rails xml ruby parsing data-import

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

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

感谢。

3 个答案:

答案 0 :(得分:3)

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

我不了解Ruby解析器,但快速googling给了this blog post。你可以从那里开始挖掘。

您还可以尝试将split XML文件缩小到更小的部分,以使其更易于管理。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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