代码之家  ›  专栏  ›  技术社区  ›  Schroedinger

将csv文件解析为rails数据库

  •  3
  • Schroedinger  · 技术社区  · 15 年前

    大家好,

    我正在使用fastercsv和rake脚本将一个包含大约30列的csv解析到rails db中,以获得一个“trade”项。当所有值都设置为字符串时,脚本工作得很好,但是当我将其更改为十进制、int或其他值时,一切都会变糟。

    不知道fastercsv是否内置了int-etc解析,或者我是否需要在模型中管理它们。

    基本上,我得到了大量的交易数据,需要导入它,然后需要提供反馈,比如平均交易量、时间等。我知道我可以用activerecord提供给我的精彩记录做到这一点,但我想知道是否有一种更简单的方法来填充具有给定csv的相当大的数据库?

    有些字段没有特定行的值,fastercsv似乎在它们都是字符串时工作得很好,但在我尝试获取decimal或other时却没有。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Harish Shetty    15 年前

    你试过用 AR Extensions 批量进口?当您将1000行插入到数据库时,您可以获得令人印象深刻的性能改进。拜访他们 website 更多细节。

    有关更多信息,请参阅这些示例

    Usage Example 1

    Usage Example 2

    Usage Example 3

        2
  •  1
  •   Jordan Running    15 年前

    假设您使用的是mysql,那么您应该能够使用 LOAD DATA INFILE .

    编写一个ruby脚本来实现这一点有点像是在重新发明轮子,因为已经有很多很多工具可以做到这一点。

    推荐文章