NoSQL

一、什么是NoSQL

  • NoSQL:not only SQL,非关系型数据库
  • NoSQL是一个通用术语
    • 指不遵循传统RDBMS模型的数据库
    • 数据是非关系的,且不使用SQL作为主要查询语言
    • 解决数据库的可伸缩性和可用性问题
    • 不针对原子性或一致性问题

二、为什么使用NoSQL

  • 互联网的发展,传统关系型数据库存在瓶颈
    1. 高并发读写
    2. 高存储量
    3. 高可用性
    4. 高扩展性
    5. 低成本

三、NoSQL和关系型数据库对比

主要有以下一些区别:
在这里插入图片描述

四、NoSQL的特点

  • 最终一致性

  • 应用程序增加了维护一致性和处理事务等职责

  • 冗余数据存储

  • NoSQL != 大数据

    1. NoSQL产品是为了帮助解决大数据存储问题
    2. 大数据不仅仅包含数据存储的问题
      Hadoop
      Kafka
      Spark, etc

五、NoSQL基本概念

  • 三大基石
    CAP、BASE、 最终一致性
  • Indexing(索引)、Query(查询)
  • MapReduce
  • Sharding
5.1 CAP理论
  1. 数据库最多支持3个中的2个
    a)Consistency(一致性)
    b)Availability(可用性)
    c)Partition Tolerance(分区容错性)
  2. NoSQL不保证“ACID”
  3. 提供“最终一致性”
5.2 BASE
  1. Basically Availble(基本可用)
     保证核心可用
  2. Soft-state(软状态)
     状态可以有一段时间不同步
  3. Eventual Consistency(最终一致性)
     系统经过一定时间后,数据最终能够达到一致的状态
  • 核心思想是即使无法做到强一致性,但应用可以选择适合的方式达到最终一致性
5.3 最终一致性
  1. 最终结果保持一致性,而不是时时一致
  2. 如账户余额,库存量等数据需强一致性
  3. 如catalog等信息不需要强一致性
     Causal consistency(因果一致性)
     Read-your-writes consistency:
     Session consistency

六、索引和查询

  • Indexing(索引)
    1. 大多数NoSQL是按key进行索引
    2. 部分NoSQL允许二级索引
    3. HBase使用HDFS,append-only
      a)批处理写入Logged
      b)重新创建并排序文件
  • Query(查询)
    1. 没有专门的查询语言,通常使用脚本语言查询
    2. 有些开始支持SQL查询
    3. 有些可以使用MapReduce代码查询

七、MapReduce、Sharding

  • MapReduce

    1. 不是Hadoop的MapReduce,概念相关
    2. 可进行数据的处理查询
  • Sharding(分片)

    1. 一种分区模式
    2. 可以复制分片
      作用:有利于灾难恢复

八、NoSQL分类

主要分为以下四类:
在这里插入图片描述

8.1 值存储数据库(Key-Value)
  1. 通常用hash table来实现
     可以通过key来添加、查询或者删除数据
  2. 常应用于内容缓存
     储存用户信息,比如会话、配置文件、参数等等
  3. 不适用场景
     需要事务支持场景
8.2 列存储数据库(Wide Column Store)
  1. 将数据储存在列簇
    一个列簇存储经常被一起查询的相关数据
    每一个列族包含kv键值对的“列”,可以随行变化
  2. 应用于分布式数据存储与管理
  3. 优点
    a)查找速度快
    b)可扩展性强
    c)容易进行分布式扩展
8.3 文档型数据库(Document Store)
  1. 将数据以文档的形式存储
    a)文档通常为JSON对象,也可以使用XML
    b)每个文档都有属性和值
    c)值可以是简单数据类型或复杂数据类型
     数组、到其他数据库中的文档的链接或子文档
  2. 应用
     存储、索引并管理面向文档的数据或类似的半结构化数据
  3. 优点
    a)数据结构要求不严格,表结构可变
    b)可以使用它储存不同的信息
8.4 图数据库(Graph Databases)
  1. 将数据以图的方式储存
  2. 适用的场景
    a)在一些关系性强的数据中
    b)推荐引擎

NoSQL和BI、大数据的关系

  1. BI(Business Intelligence):商务智能
    a)它是一套完整的解决方案
    b)BI应用涉及模型,模型依赖于模式
    c)BI主要支持标准SQL,对NoSQL支持弱于关系型数据库

  2. NoSQL和大数据相关性较高
     通常大数据场景采用列存储数据库,如:HBase和Hadoop

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值