从SQL数据库源文件写入MongoDB的最佳方式是什么?

问题描述:

我试图通过遍历行,获取数据并从相应的MySQL行插入正确的MongoDB信息来将MySQL数据库迁移到MongoDB数据库。我想知道最好的方式来访问原始.SQL文件(在Ruby中),所以我可以把它放进一个Hash。从SQL数据库源文件写入MongoDB的最佳方式是什么?

+0

这是一个文本文件。像任何其他文本文件一样访问它。但是,您几乎肯定希望将数据导出为另一种格式,解析SQL可能是一个糟糕的想法。 – geoffspear

因此,从SQL到MongoDB有几个常见的策略。

  1. 将SQL数据库转储为CSV,使用CSV上的mongoimport拉入MongoDB。
  2. 使用现有的驱动程序并编写一个循环SQL DB并插入到MongoDB中的脚本。

方法#1适用于基本数据集,但它可能有一些二进制数据的问题。我通常建议不要#1,除非你能确认它的工作正常。

方法#2一般建议。

这个过程会因语言而异,但应该很简单。只需从MySQL查询所有数据,将这些数据转换为MongoDB所需的格式,然后执行插入。

有到做这样几个好处:

  1. 容易地跟踪进度。如果你有很多数据,你可以让你的脚本记录进度。
  2. 易于重新运行。您很可能需要重新运行这些“转储”的部分内容。有一个可重复的脚本是可取的。
  3. 测试您的代码。一旦切换完成,您最终需要将新项目插入到MongoDB中。这是测试您的对象构建工作的好方法。
  4. 模式更改。这是非常不大可能你的MongoDB模式将完全像你的MySQL模式。事实上,你可能不希望它像你的MySQL模式。您可能会将数据合并并组合到新的数据结构中。你会想一次把它们放在一起。