将大量数据集导入Rails应用程序的最智能方法?

时间:2010-03-12 17:23:58

标签: ruby-on-rails database import dataset migration

我需要将多个大型(多千兆字节)数据集导入Rails应用程序。数据集当前都在我的开发机器上的每个数据库中,我需要从它们中读取并根据它们包含的信息在我的Rails数据库中的表中创建行。我的Rails数据库中的表与源数据库中的表不完全相同。

最明智的方法是什么?

我在考虑迁移,但我不确定如何将迁移连接到数据库,即使可能,这是否会变得非常缓慢?

2 个答案:

答案 0 :(得分:1)

没有看到模式或知道你想要应用于每一行的逻辑,我想说导入这些数据的最快方法是创建一个你想要按所需列顺序导出的表的视图(并处理它使用sql)并在该视图上执行select into outfile。然后,您可以获取生成的文件并将其导入目标数据库。

但是,这不允许您对导入的数据使用任何rails模型验证。

否则,您必须慢慢地为每个源数据库/表创建一个模型以提取数据(http://programmerassist.com/article/302告诉您如何连接到给定模型的不同数据库)并将其导入办法。这将会非常慢,但你可以设置一个EC2怪物实例并尽快运行它。

迁移适用于此,但我不建议将其用于此类。

答案 1 :(得分:0)

由于格鲁吉亚建议,我会发表评论作为答案:

如果更改是肤浅的(列名已更改,列已删除等),那么我只需将它们从旧数据库手动导出到新数据库中,然后运行迁移以更改列。