《大数据技术原理与应用》暑假学习计划_06 - NoSQL简述

《大数据技术原理与应用》暑假学习计划_06 - NoSQL简述

NoSQL概述

没有接触NoSQL时一直不太明白NoSQL的含义,一直觉得NoSQL只是一中新型数据库的名称。但直到前几天学习以后我才确实了解到了NoSQL其真正的魅力。数据库

NoSQL → Not noly SQL数组

NoSQL数据库真正兴起的缘由在于传统关系型数据库没法知足Web2.0的需求,并且关系模型的局限,以及Web2.0关系型数据库的许多特性没有发挥。浏览器

NoSQL数据库具备灵活可扩展性能够在多个节点水平扩展,并且具备灵活的数据模型,以及与底层云计算紧密结合。网络

传统关系型数据库架构

  • 传统关系型数据库的优势
    1. 具备很是完备的关系理论基础
    2. 具备事务性机制的支持
    3. 高效的的查询优化机制
  • 传统关系型数据库的缺点
    1. 没法知足海量数据管理需求
    2. 没法知足高并发的需求
    3. 没法知足高可扩展性和高可用性需求

传统MySQL集群缺陷并发

  • 复杂性:集群部署管理配置复杂
  • 延时性:主库压力大时,会带来较大时延
  • 扩容问题:整个集群压力过大时,增长机器时需对数据集再次分区,比较复杂

Web2.0一般不须要严格数据库事务,也不须要严格读写实时性,不包含复杂SQL查询,多表链接操做对Web2.0时代彻底是鸡肋。分布式

关系型数据库与NoSQL数据库对比

  • 数据库原理
    • 关系型数据库:具备完备的关系代数理论做为基础
    • NoSQL数据库:NoSQL数据库缺少理论基础
  • 数据规模
    • 关系型数据库:很难实现横向扩展,纵向扩展十分有限,没法支持海量数据存储
    • NoSQL数据库:具备很是好的水平扩展性
  • 数据库模式
    • 关系型数据库:要定义严格数据库模式,严格遵照事先定义的数据库模式
    • NoSQL数据库:数据模式灵活
  • 查询效率
    • 关系型数据库:适当数据量级查询效率较高
    • NoSQL数据库:未构建面向复杂查询的索引,查询性能较差
  • 事务一致性
    • 关系型数据库:遵循ACID事务模型保证事务一致性
    • NoSQL数据库:未构建面向复杂查询的索引,不支持事务强一致性,只保证最终一致性
  • 数据完整性
    • 关系型数据库:具备保证完整性的完备机制
    • NoSQL数据库:不能实现完整性约束
  • 可扩展性
    • 关系型数据库:扩展性较差
    • NoSQL数据库:水平扩展性很是好
  • 可用性
    • 关系型数据库:规模增大时为保证一致性可用性相对削弱
    • NoSQL数据库:可用性较好
  • 标准化
    • 关系型数据库:遵循SQL标准,标准化较完善
    • NoSQL数据库:未造成通用行业标准
  • 技术支持
    • 关系型数据库:大部分为商业数据库,可得到较强大的技术支持和完备的后续服务
    • NoSQl数据库:开源产品,仍属于发展阶段
  • 可维护
    • 关系型数据库:管理员维护
    • NoSQL数据库:没有成熟的基础和实践操做规范维护较复杂
  • 应用场景
    • 关系型数据库:电信银行等关键业务系统
    • NoSQL数据库:互联网企业及一些传统非关键业务

NoSQL数据库四大类型

键值数据库:

数据模型:一堆键值对(键能够是任意类型的数据)高并发

优势:扩展性好,灵活性好,大量读写性能好,是理想的缓冲层解决方案。底层数据库 → 缓冲层 → 浏览器性能

缺点:没法存储结构化信息,条件查询效率较低,不支持值查找学习

列族数据库:

数据模型:列族

相似HBase根据列族进行垂直划分,根据行键进行水平划分。

优势:查找速度快,容易进行分布式扩展,复杂性较低。

缺点:无事务一致性。

NoSQL理论基础

CAP理论

consistency 一致性:全部节点在同一时间必须有一致数据

availabily 可用性

partitiontderance 分区容忍性

CA:将全部事务相关内容放在同一台机器上,避免网络分区(传统关系型数据库)

CP:使用网络分区,等数据以以后再存取数据,短期内没法取到数据,失去可用性

AP:可及时得到数据,但数据可能存在不一致

BASE “碱”

基本可用:容许部分分区失败

软状态:一段时间内数据可能不一样步,有滞后

最终一致性:可能有一段时间不一样步。根据更新数据后各进程访问到数据时间和方式不一样能够区分为

  • 因果一致性
  • “读己之所写“一致性
  • 单调读一致性
  • 会话一致性
  • 单调写一致性

假设有一个分布式系统,为实现其可靠性,要对数据进行冗余存储

N → 数据冗余份数

W → 更新数据时须要保证写完成的节点数

R → 读取数据时需读取的节点数

  • W+R>N → 强一致性
  • W+R<=N → 弱一致性(最终一致性时弱一致性的特例)

NewSQL

oldSQL:一种架构支持多类应用

NewSQL:多架构支持多类应用(同时具有oldSQL与NewSQL的优势)

大数据时代:

  • NewSQL分析
  • oldSQL事务
  • NoSQL互联网

文档数据库MongDB

文档数据库MongDB:基于分布式文件系统的开源数据库

  • 提供了面向文档存储,操做简单
  • 能够设置任何属性的索引,实现更快的排序
  • 具备较好的水平可扩展性
  • 支持丰富查询表达式,可查询文档内嵌对象及数组
  • 可替换已完成文档某个指定数据字段

集合  → MongDB文档组,相似于表。无固定结构,可对集合插入不一样格式和类型的数据

文档数据库中文档就是一个键值对,MongDB文档不须要设相同字段而且相同字段不须要相同数据类型

相关文章
相关标签/搜索