Sql server 从SQL迁移到MongoDB?

Sql server 从SQL迁移到MongoDB?,sql-server,mongodb,migration,Sql Server,Mongodb,Migration,我正在研究将数据从SQL 2012迁移到mongoDB的可能性。我的经理特别要求我查看在SQL和MongoDB中处理数十亿行所需的时间,以决定是否迁移。有什么建议或建议或地方我应该去研究更多? 到目前为止,我已经做到了 在我的开发环境中安装了MongoDB 我已经能够连接到MongoDB,创建数据库和集合 我现在有一些问题 3.如何将SQL中的数据库导入Mongo(比如迁移AdventureWorks) 提前谢谢 一些最佳实践是我通过艰苦的努力学到的 进行部分导入 在规划MongoDB集群时,您

我正在研究将数据从SQL 2012迁移到mongoDB的可能性。我的经理特别要求我查看在SQL和MongoDB中处理数十亿行所需的时间,以决定是否迁移。有什么建议或建议或地方我应该去研究更多? 到目前为止,我已经做到了

  • 在我的开发环境中安装了MongoDB
  • 我已经能够连接到MongoDB,创建数据库和集合
  • 我现在有一些问题 3.如何将SQL中的数据库导入Mongo(比如迁移AdventureWorks)


    提前谢谢

    一些最佳实践是我通过艰苦的努力学到的

    进行部分导入 在规划MongoDB集群时,您需要知道平均文档大小有多大。为此,请导入大约10k的数据记录。这可以让您了解实际进口将需要多长时间(数量级):

    其中t是导入n个c文档所需的时间

    对所有目标集合重复此操作。之后,发布一个

    db.stats()
    
    在蒙戈贝壳里。您将看到一些尺寸统计信息。现在有两个关键因素的近似值:导入所需的时间(通过总结上述计算结果)和所需的存储空间

    在部分导入上创建索引 创建您需要的索引。对于时间计算,同上。但有一件事是不同的:索引应该驻留在RAM中,所以当迁移所有记录时,您需要推断实际需要的RAM

    很可能,将所有数据存储在一台机器上并不划算,因为RAM在某一点后会变得昂贵(这里需要计算)。如果是这样,你需要切分

    切分时:选择适当的切分键 无论怎样强调从一开始就拥有权利的重要性都不为过:切分键不能更改。与开发人员一起投入一些时间来找到合适的切分键

    分片时:预分割块
    在数据迁移过程中,您最不希望看到的事情是由于试图平衡数据块而导致数据迁移延迟。因此,您应该将它们分发到您的碎片中。

    一些最佳实践是我通过艰苦的学习而获得的

    进行部分导入 在规划MongoDB集群时,您需要知道平均文档大小有多大。为此,请导入大约10k的数据记录。这可以让您了解实际进口将需要多长时间(数量级):

    其中t是导入n个c文档所需的时间

    对所有目标集合重复此操作。之后,发布一个

    db.stats()
    
    在蒙戈贝壳里。您将看到一些尺寸统计信息。现在有两个关键因素的近似值:导入所需的时间(通过总结上述计算结果)和所需的存储空间

    在部分导入上创建索引 创建您需要的索引。对于时间计算,同上。但有一件事是不同的:索引应该驻留在RAM中,所以当迁移所有记录时,您需要推断实际需要的RAM

    很可能,将所有数据存储在一台机器上并不划算,因为RAM在某一点后会变得昂贵(这里需要计算)。如果是这样,你需要切分

    切分时:选择适当的切分键 无论怎样强调从一开始就拥有权利的重要性都不为过:切分键不能更改。与开发人员一起投入一些时间来找到合适的切分键

    分片时:预分割块
    在数据迁移过程中,您最不希望看到的事情是由于试图平衡数据块而导致数据迁移延迟。因此,您应该将它们复制并分发到您的碎片中。

    我创建了一个Node.js脚本,该脚本将SQL数据库复制到MongoDB

    你可以找到它

    使用

    克隆回购协议:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    
    安装依赖项:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    
    设置您的配置:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    
    编辑config.js。为MongoDB数据库添加SQL连接字符串和详细信息

    运行脚本:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    

    这可能需要一段时间才能完成!但当它出现时,您将在MongoDB中拥有SQL数据库的副本。如果有任何问题,请告诉我。

    我已经创建了一个Node.js脚本,用于将SQL数据库复制到MongoDB

    你可以找到它

    使用

    克隆回购协议:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    
    安装依赖项:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    
    设置您的配置:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    
    编辑config.js。为MongoDB数据库添加SQL连接字符串和详细信息

    运行脚本:

    git clone https://github.com/ashleydavis/sql-to-mongodb
    
    cd sql-to-mongodb
    npm install
    
    node index.js
    

    这可能需要一段时间才能完成!但当它出现时,您将在MongoDB中拥有SQL数据库的副本。如果有任何问题,请告诉我。

    您看到了吗?非常感谢尼古拉斯。这似乎是适合我的情况的工具。我会进一步探索,看看这是否对我有用。但看起来Mongify不适用于Windows?尼古拉斯,你有什么想法吗?怎么了?它在哪里说的?我之前在研究。但我找到了一个解决办法。。。。。这个工具帮助我只迁移了一个表。现在我将尝试迁移相关的表并查看结果。您看到了吗?非常感谢Nicolas。这似乎是适合我的情况的工具。我会进一步探索,看看这是否对我有用。但看起来Mongify不适用于Windows?尼古拉斯,你有什么想法吗?怎么了?它在哪里说的?我之前在研究。但我找到了一个解决办法。。。。。这个工具帮助我只迁移了一个表。现在我将尝试迁移相关表,并查看结果。你好,Ashley!非常感谢你的剧本。sqlConnectionString是什么样子的?我试过两种方法,比如:
    jdbc:mysql