我正在尝试从MySQL
转储.sql
文件导入数据以导入MongoDB。但我看不到任何RDBMS到NoSQL数据迁移的机制
我试图将数据转换为JSON and CSV
,但它没有在MongoDB中提供所需的输出
我想尝试Apache Sqoop
,但它主要用于SQL或NoSQL到Hadoop
我无法理解,如何从MySQL' MySQL迁移数据?到#MongoDB'?
除了我迄今为止所尝试的内容,我有什么想法吗?
希望能听到更好,更快的解决方案。
答案 0 :(得分:4)
我建议您将Mysql数据转储到CSV文件,也可以尝试其他文件格式,但要确保文件格式友好,以便您可以轻松地将数据导入MongoDB,MongoDB和Mysql都支持CSV文件格式很好。
您可以尝试使用mysqldump或OUTFILE关键字转储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。
需要ruby
和rubygems
作为先决条件。请参阅此documentation以安装和配置mongify。