文档数据库(nosql)学习笔记(1)--简述

文档数据库技术:

      1.文档数据库是Nosql数据库家族里面最像关系数据库的Nosql数据库。

      2.文档是处理信息的基本单位

      3.文档数据库中采用BSON,JSON等格式储存,可方便地存储树形结构数据,支持多种索引类型。

      4.拥有卓越的读写性能,并具有高可用副本集合可扩展分片集群技术,先天支持大数据的存储与管理,具有高扩展性和高可伸缩性。

      5.文档数据库广泛应用于大数据存储与处理场景,如:日志数据存储、订单数据存储等;以及缓存数据存储、运维监控数据存储、基于地理位置的业务推荐应用数据存储等场景

MongDB与CouchDB:

     MongoDB和CouchDB是开源NoSQL文档型数据库家族的佼佼者,以文档形式存储是它们最大的共同点,但在数据模型、接口、对象存储以及复制方法等方面有很多不同。(国内也有文档型数据库sequoiaDB,并且已经开源)

     MongoDB是专为可扩展性、高性能和高可用性而设计的数据库。它可以单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。MongoDB本地复制和自动故障转移功能使应用程序具有企业级的可靠性。

   CouchDB数据库名称中的“Couch”是"Cluster Of Unreliable Commodity Hardware"的首字母缩写它反映了CouchDB的目标同样是具有高度可伸缩性,提供高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。CouchDB最初是用C+ +编写的,2008年转为用Erlang编写,使用JSON格式保存数据,支持通过RESTful API访问。

文档型数据库的特点与优势主要体现在:

(1)灵活的文档模型。JSON及与其类似的BSON格式简单易学易用,存储最接近真实对象模型,与某些编程语言(如JavaScript)中的对象格式基本一致,对开发者友好,方便快速开发迭代;文档中包含的字段可灵活定义和扩展。

(2)支持事务。提供文档级事务管理,保障文档操作的ACID特性

ACID,是指数据库管理系统DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。

(3)高可用复制集。满足数据高可用的需求,运维简单,故障自动切换。

(4)可扩展分片集群。支持大数据分布式存储,服务能力水平可横向弹性扩展。

(5)支持高性能访问数据。存储引擎(Storage Engine)是文档型数据库的核心组件,负责管理数据如何存储在硬盘和内存上。文档数据库MongoDB支持多种数据存储引擎,有WiredTiger、 MMAPv1、Mongorocks( rocksdb)和In-Memory等,综合多种存储引擎的优势满足各种场景的性能需求。

(6)强大的索引支持。例如,地理位置索引可用于构建各种基于地理位置服务的应用,文本索引解决搜索的需求,TTL索引解决历史数据自动过期的需求。

(7)支持大文档存储需求。例如MongoDB提供了GridFS存储机制用于存储超出一定空间限制的大文档。

(8)易用的聚合并行运算。用于解决数据分析场景需求,支持语法简洁的查询操作及存储过程调用,为用户屏蔽底层复杂的分布式存储与计算

(9)支持各种编程语言。例如Python、Java、C+ +、Scala、PHP、Ruby、C#等。

(10)成熟的管理服务和运维管理工具。例如,MongoDB包含一系列监视工具用于分析数据库操作的性能,可以很好地部署、监控、备份和规划数据库。

(11)复制及自动故障转移。例如,MongoDB数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移

在计算机术语中,故障转移(英语:failover),即当活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作。 故障转移(failover)与交换转移操作基本相同,只是故障转移通常是自动完成的,没有警告提醒手动完成,而交换转移需要手动进行。

对于要求高可用和高稳定性的服务器、系统或者网络,系统设计者通常会设计故障转移功能。

在服务器级别,自动故障转移通常使用一个“心跳”线连接两台服务器。只要主服务器与备用服务器间脉冲或“心跳”没有中断,备用服务器就不会启用。为了热切换和防止服务中断,也可能会有第三台服务器运行备用组件待命。当检测到主服务器“心跳”报警后,备用服务器会接管服务。有些系统有发送故障转移通知的功能。

有些系统故意设计为不能进行完全自动故障转移,而是需要管理员介入。这种“人工确认的自动故障转移”配置,当管理员确认进行故障转移后,整个过程将自动完成。

故障恢复(failback)是将系统,组件,服务恢复到故障之前的组态。使用虚拟化允许故障转移操作减少对硬件的依赖。

MongoDB等文档型数据库非常适用于树形结构数据的存储,不需要复杂费时的跨表链接就可高效访问相关数据。例如,如果采用传统的关系数据库存储电影、影评、影评的回复、回复的打分,需要满足关系模型范式要求,一般设计为多张表,想查询某部电影的前述四方面数据时需要多级关联计算。而如果采用文档型数据库,可以以每部电影为中心,采用树形文档结构把各方面信息存储在各个文档中。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿洋太爱大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值