如何从sql dump导入到MongoDB?

时间:2017-02-08 05:36:51

标签: mysql sql-server mongodb hadoop dbmigrate

我正在尝试从MySQL转储.sql文件导入数据以导入MongoDB。但我看不到任何RDBMS到NoSQL数据迁移的机制 我试图将数据转换为JSON and CSV,但它没有在MongoDB中提供所需的输出 我想尝试Apache Sqoop,但它主要用于SQL或NoSQL到Hadoop 我无法理解,如何从MySQL' MySQL迁移数据?到#MongoDB'? 除了我迄今为止所尝试的内容,我有什么想法吗? 希望能听到更好,更快的解决方案。

2 个答案:

答案 0 :(得分:4)

我建议您将Mysql数据转储到CSV文件,也可以尝试其他文件格式,但要确保文件格式友好,以便您可以轻松地将数据导入MongoDB,MongoDB和Mysql都支持CSV文件格式很好。

您可以尝试使用mysqldumpOUTFILE关键字转储Mysql数据库进行备份,使用mysqldump可能需要很长时间,所以请查看How can I optimize a mysqldump of a large database?

然后使用mongoimport工具导入数据。

据我所知,有三种方法可以优化此导入:

  • mongoimport --numInsertionWorkers N 它将启动多个插入工作程序,N可以是核心数。

  • mongod --njournal 大多数连续磁盘使用来自日志,因此禁用日志可能是优化的好方法。

  • 拆分文件并开始并行作业。

实际上在我看来,导入数据和导出数据并不困难,看来你的数据集很大,所以如果你不设计你的文档结构,它仍会使你的代码变慢,它不是建议从关系数据库自动迁移到MongoDB ,数据库性能可能不太好。

因此值得设计您的数据结构,您可以查看Data models

希望这有帮助。

答案 1 :(得分:1)

您可以使用Mongify帮助您将数据从基于SQL的系统移动/迁移到MongoDB。支持MySQL,PostgreSQL,SQLite,Oracle,SQLServer和DB2。

需要rubyrubygems作为先决条件。请参阅此documentation以安装和配置mongify。