NoSQL(NoSQL概念,优点,与RDB对比,基本概念,分类,与BI,大数据关系)

本文深入探讨了NoSQL数据库,包括其非关系型特性、优点、与关系型数据库的对比,以及基本概念如CAP理论、BASE原则和最终一致性。NoSQL适用于高并发、高存储需求,提供了灵活的数据模型。文中还介绍了NoSQL的四大分类:键值存储、列存储、文档型和图数据库,并讨论了它们在大数据和BI中的角色。

一.NoSQL

1.什么是NoSQL

NoSQL:not only SQL,非关系型数据库
NoSQL是一个通用术语

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

注:非原子性:字段可拆

2.为什么使用NoSQL(NoSQL优点)

  • 高并发读写
  • 高存储量
  • 高可用性
  • 高扩展性
  • 低成本

3.NoSQL和关系型数据库对比

对比NoSQL关系型数据库
常用数据库HBase、MongoDB、RedisOracle、DB2、MySQL
存储格式文档、键值对、图结构表格式,行和列
存储规范鼓励冗余规范性,避免重复
存储扩展横向扩展,分布式纵向扩展(横向扩展有限)
查询方式结构化查询语言SQL非结构化查询
事务不支持事务一致性支持事务
性能读写性能高读写性能差
成本简单易部署,开源,成本低成本高

4.NoSQL的特点

  • 最终一致性
  • 应用程序增加了维护一致性和处理事务等职责
  • 冗余数据存储
  • NoSQL != 大数据
    NoSQL产品是为了帮助解决大数据存储问题
    大数据不仅仅包含数据存储的问题
    Hadoop
    Kafka
    Spark, etc

5.NoSQL基本概念

  • 三大基石
    CAP、BASE、 最终一致性
    在这里插入图片描述

  • Indexing(索引)、Query(查询)

  • MapReduce

  • Sharding

5.1 三大基石

(1)CAP理论

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Unw7SZGO-1600945337144)(C:\Users\86188\Desktop\截图\1.1.png)]

  • 数据库最多支持3个中的2个
    Consistency(一致性)
    Availability(可用性)
    Partition Tolerance(分区容错性)

  • NoSQL不保证“ACID”

  • 提供“最终一致性”

(2)BASE
  • Basically Availble(基本可用)
    保证核心可用
  • Soft-state(软状态)
    状态可以有一段时间不同步(即不保证过程一致性)
  • Eventual Consistency(最终一致性)
    系统经过一定时间后,数据最终能够达到一致的状态

核心思想是即使无法做到强一致性,但应用可以选择适合的方式达到最终一致性

(3)最终一致性
  • 最终结果保持一致性,而不是时时一致
  • 如账户余额,库存量等数据需强一致性
  • 如catalog等信息不需要强一致性
    Causal consistency(因果一致性)
    Read-your-writes consistency
    Session consistency

5.2索引和查询

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

5.3MapReduce、Sharding

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

  • 可以复制分片

    有利于灾难恢复

6.NoSQL分类

分类举例典型应用场景
键值存储数据库(key-value)Redis, MemcacheDB, Voldemort内容缓存等
列存储数据库(WIDE COLUMN STORE)Cassandra, HBase应对分布式存储的海量数据
文档型数据库(DOCUMENT STORE)CouchDB, MongoDBWeb应用(可看做键值数据库的升级版)
图数据库(GRAPH DB)Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等,专注于构建关系图谱

6.1键值存储数据库(Key-Value)

  • 通常用hash table来实现
    可以通过key来添加、查询或者删除数据
  • 常应用于内容缓存
    储存用户信息,比如会话、配置文件、参数等等
  • 不适用场景
    需要事务支持场景
    在这里插入图片描述

6.2列存储数据库(Wide Column Store)

  • 将数据储存在列族
    一个列族存储经常被一起查询的相关数据
    每一个列族包含kv键值对的“列”,可以随行变化
  • 应用于分布式数据存储与管理
  • 优点
    查找速度快
    可扩展性强
    容易进行分布式扩展

在这里插入图片描述

6.3文档型数据库(Document Store)

  • 将数据以文档的形式存储
    文档通常为JSON对象,也可以使用XML
    每个文档都有属性和值
    值可以是简单数据类型或复杂数据类型
    数组、到其他数据库中的文档的链接或子文档
  • 应用
    存储、索引并管理面向文档的数据或类似的半结构化数据
  • 优点
    数据结构要求不严格,表结构可变
    可以使用它储存不同的信息

[

6.4图数据库(Graph Databases)

  • 将数据以图的方式储存
  • 适用的场景
    在一些关系性强的数据中
    推荐引擎

在这里插入图片描述

7.NoSQL和BI、大数据的关系

  • BI(Business Intelligence):商务智能

​ 它是一套完整的解决方案
​ BI应用涉及模型,模型依赖于模式
​ BI主要支持标准SQL,对NoSQL支持弱于关系型数据库

  • NoSQL和大数据相关性较高
    通常大数据场景采用列存储数据库
    如:HBase和Hadoop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值