将CSV文件解析为Rails数据库

时间:2010-04-19 04:14:54

标签: ruby-on-rails ruby parsing csv

G'day伙计们,

我正在使用更快的CSS和一个rake脚本将一个包含大约30列的csv解析到我的rails db中以获取'Trade'项。当所有值都设置为字符串时,脚本工作正常,但当我将其更改为十进制,整数或其他值时,一切都会变得地狱。

想知道quickCSV是否内置了int解析,或者我是否必须在我的模型中管理这些。

基本上,我给了大量的交易数据,需要输入它,然后需要提供反馈,说平均交易量,时间等等。我明白我可以用精彩的记录做到这一切由activeRecord提供给我,但想知道是否有更简单的方法用给定的CSV填充相当大的数据库?

有几个字段没有某些行的值,当它们是所有字符串时,fastCSV似乎完美地工作,但是当我尝试获取小数或其他字符时则不行。

2 个答案:

答案 0 :(得分:5)

您是否尝试使用AR Extensions进行批量导入?当您向数据库插入1000行时,您将获得令人印象深刻的性能改进。访问他们的website了解更多详情。

有关详细信息,请参阅这些示例

Usage Example 1

Usage Example 2

Usage Example 3

答案 1 :(得分:1)

假设您正在使用MySQL,您应该能够使用LOAD DATA INFILE将CSV直接导入数据库。

编写一个Ruby脚本来实现这一点就像重新发明轮子一样,因为有很多很多工具可以做到这一点。