我正在研究将数据从SQL 2012迁移到mongoDB的可能性。我的经理特意要求我看看在SQL和MongoDB中处理数十亿行以作出迁移决定的时间。任何建议或建议或地点,我应该访问研究更多? 到目前为止,我已经做了从SQL迁移到MongoDB?
在我的开发环境中安装了MongoDB的- 我已经能够连接到MongoDB中,创建的数据库和集合
问题现在我有 3.如何导入在SQL到Mongo的数据库(比如迁移的Adventure Works)
在此先感谢!
我正在研究将数据从SQL 2012迁移到mongoDB的可能性。我的经理特意要求我看看在SQL和MongoDB中处理数十亿行以作出迁移决定的时间。任何建议或建议或地点,我应该访问研究更多? 到目前为止,我已经做了从SQL迁移到MongoDB?
在我的开发环境中安装了MongoDB的问题现在我有 3.如何导入在SQL到Mongo的数据库(比如迁移的Adventure Works)
在此先感谢!
一些最佳实践我学会了艰难的道路。
在规划的MongoDB集群,你需要有一个想法平均文档大小有多大。为了做到这一点,请输入您的数据的一些10k记录。这给你的实际进口需要多长时间的数量级的想法:
其中T是它采取进口的C N个文档的时间。
重复此为所有目标集合。之后,在mongo shell中发出
db.stats()
。您将看到一些尺寸统计数据。您现在有两个关键因素的近似值:导入所需的时间(通过总结上述计算结果)和您需要的存储空间。
创建您将需要的索引。至于时间计算,与上面相同。但是还有一个不同的地方:索引应该驻留在RAM中,所以当需要迁移所有记录时,需要推断实际需要的RAM。
机会是,它是不符合成本效率的所有数据存储在一个机器上,因为RAM的某一个点(计算是必要这里)后得到昂贵。如果是这样的话,你需要分片。
它不能过分强调它是多么重要的是有从一开始就一个proper shard key:碎片键不能改变。花一些时间与开发人员一起寻找合适的分片密钥。
数据迁移过程中你想的最后一件事是有它由balancer延迟试图以平衡块。所以你应该pre-split your chunks并分发你的碎片。
你见过这个[Mongify](http:// mongify。com /) –
非常感谢尼古拉斯。这似乎是我的情况的正确工具。我会更多地探索它,看看它是否适合我。但它看起来像Mongify不适用于Windows?对尼古拉斯有任何想法? – ebro
怎么回事?它在哪里陈述? –