【问题标题】:How to import from sql dump to MongoDB?如何从 sql 转储导入到 MongoDB?
【发布时间】:2017-06-25 14:52:31
【问题描述】:

我正在尝试从 MySQL 转储 .sql 文件导入数据以导入 MongoDB。但我看不到任何 RDBMS 到 NoSQL 数据迁移的机制。
我试图将数据转换为JSON and CSV,但它没有在 MongoDB 中为 m 提供所需的输出。
我想尝试Apache Sqoop,但它主要用于 SQL 或 NoSQL 到 Hadoop。
我不明白,如何将数据从“MySQL”迁移到“MongoDB”?
除了我到目前为止所尝试的之外,我还有什么想法吗?
希望听到针对此类迁移的更好更快的解决方案。

【问题讨论】:

    标签: mysql sql-server mongodb hadoop dbmigrate


    【解决方案1】:

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

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

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

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

    • mongoimport --numInsertionWorkers N会启动几个插入worker,N可以是核心数。

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

    • 拆分文件并启动并行作业。

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

    所以值得设计你的数据结构,你可以查看Data models

    希望这会有所帮助。

    【讨论】:

    • 不可行的解决方案。我的数据很复杂,无法导出到 csv。我试了很多次。
    • @JafferWilson cannot be exported to csv 是什么意思?请指出。
    • 实际上数据是这样的 data:[app:[{key1:value,key2:value}]] 所以现在你可能已经理解了 csv 的问题。它不像我那样处理复杂的数据。所以 json 更好,但 MongoDB 不能接受
    • @JafferWilson 看来你应该将数据库数据转储到Json,MongoDB接受json,看看jsonArray,确保集合中每个文档的大小小于16MB。
    • 感谢您的建议。但在写这个问题之前,我已经尝试了一切。但没关系,我希望除了这些事情之外没有其他解决方案。
    【解决方案2】:

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

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

    【讨论】:

    • 说到ruby我认为执行起来会很慢。您能告诉我导入 GB 数据需要多少时间吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2016-05-22
    相关资源
    最近更新 更多