作家
登录

如何将关系型数据导入MongoDB?

作者: 来源: 2017-11-21 10:52:54 阅读 我要评论

 数据完全性

 数据一致性

在数据一致性方面,MongoDB 经由过程 Read Preference 来调节一致性的程度。默认情况下,在一个 MongoDB Replica Set 中,所有的数据库读操作都邑发到 Primary 办事器上,Replica Set 中的所有 Secondary 包管数据最终一致性。同时,MongoDB 供给了修改┞封种一致性的行动方法。数据库治理员可以经由过程修改 Read Preference 参数达到对一致性不合请求的场景。数据一致性可以有下面集中筹划:

  • primary: 默认模式,所有请求都邑发送到 Primary 上。
  • primaryPreferred:大年夜部分读请求都邑发送到 Primary,然则当 Primary 无法拜访时,改请求会被转发到 Secondary 上。
  • secondary: 所有请求都邑发送到 Secondary 上。
  • secondaryPreferred: 大年夜部分情况下,读请求被发送到 Secondary 中,然则如不雅 Replica 中没有 Secondary,请求会发送到 Primary 上。
  • nearest: 请求会被发送到收集比来的办事器上。该模式在多半据中间上异常有效。

在关系型数据库中,有很多支撑 ACID 事务操作的办法和应用,DBA 并不欲望在数据迁徙的过程中有任何闪掉,例如损掉数据完全性。MongoDB 在这方面具有不合情势的支撑。在 3.0 以上版本中,MongoDB 支撑了 WiredTiger Storage Engine,他支撑了 Document 级别上的锁操作。也就是说,在进行数据库写操作时,MongoDB 可以包管针对一个 Document 操作的原子性,这个操作可以和其他操作完全分隔开来。除了对单个 Dcoument 的原子操作支撑外,MongoDB 还支撑多 Document 的事务,比如,findAndModify办法许可你在进行多个文档操作的时保持事务完全。再比如,可以经由过程Perform Two Phase Commits实现更新多个文档的原子操作,更多信息请拜访 Perform Two Phase Commits。

 数据迁徙

进行完膳绫擎的设计和思虑今后,数据迁徙就会变得想对轻易。将数据导入进 MongoDB 有几个不合的选择,可以应用 mongoimport 将 JSON 数据进行导入,也可以经由过程 ETL(Extract Transform Load) 对象完成。很多项目许可在当前应用法度榜样运行的情况下并行迁徙关系型数据库中的数据,并且支撑增量更新,具体操作如下:

  • 当一笔记录大年夜关系型数据库读出后,应用法度榜样会将这笔记录按照先前定义的 JONS 格局插入到 MongoDB 中。
  • 一致性检查,可以经由过程 MD5 等办法进行数据一致性检查。
  • 新的插入操作和数据修改操作全部转到 MongoDB 中完成。

小结

按照本文供给的办法和步调,项目团队可以在数据迁徙中削减不须要的时光和缺点的操作。当然,数据永远是应用体系中的核心内容,任何数据迁徙都须要支掉足误恢复,如不雅掉败也要可以或许快速恢复到以前的版本上。在这方面,MongoDB 做到了更灵活的支撑,具体内容可以参考

MongoDB Webnar。

参考文献

[Data Modeling]

(https://docs.mongodb.com/manual/core/data-modeling-introduction/)

(https://docs.mongodb.com/manual/reference/sql-comparison/)

[SQL to Aggregation Mapping Chart]

(https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/)

[WiredTiger Storage Engine]

(https://docs.mongodb.com/manual/core/wiredtiger/)

[Perform Two Phase Commits]

(https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/)



  推荐阅读

  程序员影响深刻的5个编程网站

找开源项目可以逛github,碰着编程问题可以在stackoverflow提问。法度榜样员研究进修技巧经常会存眷大年夜神的博客,如云风,刘未鹏,阮一峰。信赖网上经常会推荐给新手段度榜样员这些博客或者网站。不过,>>>详细阅读


本文标题:如何将关系型数据导入MongoDB?

地址:http://www.17bianji.com/lsqh/39056.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)