第一章 NoSQL与大数据简介
一、 大数据的定义-4V特性
- Volume 数据量大:海量互联网数据浏览量
- Velocity 实时性强:高速的数据产生、处理、分析能力
- Variety 数据种类多:图片、视频、文档等类型数据处理
- Value 蕴含价值高:商品销售、广告投放、电影推荐等
二、 SQL数据库要点回顾
- SQL=Structured Query Language结构性查询语句
SQL数据库是一种数据库语言 - 关系型数据库定义
关系型数据库是指以行和列二维表格形式存储数据的数据库 - 关系型数据库优缺点
- 优点:
a) 保持数据的一致性
b) 由于以标准化为前提,数据更新的开销很小
c) 可以进行JOIN等复杂查询
d) 存在很多实际成果和专业技术信息 - 缺点:
a) 表格包含行和列,占用较大空间,例如Excel表格
b) 基于单机集中管理,数据存储量和横向扩展受到限制
c) 难以对简单查询快速返回结果
三、 NoSQL数据库
- 定义:记录主体符合非关系型、分布式、开放源码和具有横向扩展能力的数据库
- 非关系型-键值式存储:数据存储、管理和读取具有灵活性
- 分布式是NoSQL数据库的核心
- 纵向扩展:
从物理高配置扩充和基于固态硬盘、内存处理方面,解决数据处理速度问题 - 横向扩展
采用多服务器,通过集群(Cluster)处理数据,主要解决数据存储量问题
四、 NoSQL数据库类型
- 键值存储数据库Key Value Database
轻量级:存储数据结构特别简单,数据库系统本身规模也比较小
以内存为主的运行处理,设计目的是为了更快地实现对大数据的处理
- 键值存储数据库的基本要素
a) 键值对(Key-Value Pair)(无需预先定义数据类型)
键:唯一索引值的作用,确保一个键值结构里数据记录的唯一性
值:对应键相关的数据,通过键来获取,可以存放任何类型的数据
由BLOB(Binary Large object,二进制大对象)进行存储
b) 命名空间(Namespace):由键值对所构成的集合 - 键值存储数据库基本数据操作方式
读(get),写(put),删除(delete) - 键值存储数据库分类
a) 临时性键值存储
在内存中保存数据;可以进行快速的保存和读取处理;数据有可能丢失
b) 永久性键值存储
在硬盘上保存数据;可以进行快速的保存和读取处理;数据不会丢失
c) 两者兼具型(Redis)
同时在内存和硬盘上保存数据;可以进行非常快速的保存和读取处理;保存在硬盘上的数据不会消失
- 面向文档的数据库(MongoDB)(基于磁盘读写)
- 一条文档记录包含键值对和格式
- 面向文档的数据库基本要素
a) 键值对:具体由数据和格式组成
b) 文档(Document):由键值对所构成的有序集
c) 集合(Collection):集合是由若干条文档构成的对象
d) 数据库(Database):
包含了若干个集合,在进行数据操作之前,必须指定数据库名 - 面向文档的数据库基本数据操作方式
写(insert),读(find),改(update),删(remove) - 文档存储的优缺点
a) 优点:简单;相对高效;文档格式处理;查询功能强大;分布式处理
b) 缺点:缺少约束;数据出现冗余;相对低效
- 列族数据库(HBase,Cassandra)
- 列族数据库基本要素
a) 列(Column):用来存放单个数值的数据结构
列的每个值(Value)都附带时间戳(Time Stamp),区分值的不同版本
b) 列族(Column Family):由若干个列所构成的一个集合
c) 行键(Row Key):用来唯一确定列族数据库中不同行数据区别的标识符
d) 命名空间:列族数据库的顶级数据库结构 - 列族数据库基本操作方式:读、写、删除
- 列族数据库特点
a) 对于命名空间、行键、列族需预先定义,列无须提早定义,随时可以增加
b) 列族数据库存储模式相对键值存储数据库、面向文档的数据库要复杂
c) 查询功能相对更加丰富
d) 具有高密集写入处理能力
- 图数据库
- 图数据库基本要素
a) 节点(Node)代表一个个事物实体
b) 边(Edge)表明实体之间的关系
c) 无向边(Undirected Edge)
d) 有向边(Directed Edge)
e) 节点和边都可以附加属性(Attribute) - 图数据库基本操作方式
a) 对于单个节点:建立(Create)、删除(Delete)、更新(Update)、移动(Remove)、合并(Merge)
b) 对于图,提供图的交集、图的并集、图的遍历等
- 其他数据存储模式
- 多模式数据库(Multimodal Databases):MarkLogic、OrientDB
- 对象数据库(Object Databases):Db4o、Versant Object Database
- 网格和云数据库方案(Grid & Cloud Database Solutions):GridGain、Crate Data