Sql server 从SQL迁移到MongoDB?
我正在研究将数据从SQL 2012迁移到mongoDB的可能性。我的经理特别要求我查看在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集群时,您
提前谢谢 一些最佳实践是我通过艰苦的努力学到的 进行部分导入 在规划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