NoSQL数据库进阶实战 2,NoSQL数据存储模式
Posted 哪 吒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NoSQL数据库进阶实战 2,NoSQL数据存储模式相关的知识,希望对你有一定的参考价值。
目录
一、NoSQL的数据存储模式
- 键值
- 文档
- 列族
- 图
二、键值数据存储结构
1、什么是键值数据库
键值数据库Key-Value Database是一类轻量级结合内存处理为主的NoSQL数据库。
键值数据库放弃了传统关系型数据库的数据结构设计模式,转而采用速度更快的内存或SSD为数据运行存储方式,提升数据的执行效率。
键值数据库主要运行在内存,实现定期向硬盘读写数据的策略。
2、键值数据库的优缺点
(1)优点
- 简单
- 快速
- 高效计算
- 分布式处理
(2)缺点
- 对值进行多值查找功能很弱
- 缺少约束,更容易出错
三、文档数据存储模式
文档数据库与传统数据库一样,也是建立在对磁盘读写的基础上,对数据进行各种操作。文档数据库的设计思路是针对传统数据库低效的操作性能,首先考虑的是读写性能,为此需要去掉各种传统数据库规则的约束。
文档数据库也是键值对形式的存储,值是一个大的字段,类似于JSON、XML、数组等。
"id":"1",
"name":"哪吒编程",
"desc":"定期更新Java技术文章"
四、列族存储实现
列族数据库是为处理大数据而生的,相对于传统数据库的弱点,列族存储采用了去规则、去约束化的思路。
1、列族数据库存储结构基本要素
(1)命名空间
命名空间是列族数据库的顶级数据结构,相当于传统关系型数据库的表名。
(2)行键
行键用来唯一确定列族数据库中不同行数据区别的标识符。它的作用与传统关系型数据库的行主键作用类似。但是列族数据库的行是虚的,只存在逻辑关系,因为它们的值以列为单位进行存储。而传统的关系型数据库的行是一条连续而紧密的记录。另外行键还起分区和排序的作用。放列族的列存放于不同服务器的分区时,则行键七分区地址指向的标识作用。列族数据库存放数据时,自动按照行键进行排序。
(3)列族
由若干个列所构成的一个集合称为列族。对于关系紧密的列可以放到一个列族里,谜底是提高查询速度。
(4)列
列是列族数据库里用来存放单个数值的数据结构。列的每个值都附带时间戳,通过时间戳来区分值的不同版本。
2、列族的存储特点
擅长大数据处理,对于命名空间、行键、列族需要预先定义,列无需预先定义,随时可以增加。
五、图数据存储模式
1、图数据库存储结构基本要素
- 节点
- 边
- 属性
- 图
2、处理各种图结构的数据
比如无向图、有向图、二分图、流动网络图、多重图、加权图、树等。
3、应用领域广泛
可以以图的形式表示关系的数据,比如基于地图的交通运输、游戏开发、复杂的人际关系图、规则推理等。
图存储数据本身很简单,主要通过节点与节点产生的关系,进行深入查找、统计、分析,以发现有价值的数据规律。
比如:
- 计算两节点之间的最短路径;
- 两节点之间哪条路径派送成本最小;
- 两节点之间哪条路线派送速度最快;
- 哪个节点的邻节点最多,意味着是否可以在此处建立中转仓库;
- 哪个节点是薄弱节点,一旦这个节点出现问题,是否会对整体运营产生严重的影响;
以上是关于NoSQL数据库进阶实战 2,NoSQL数据存储模式的主要内容,如果未能解决你的问题,请参考以下文章
《NoSQL实战:企业级大数据应用开发入门实战与进阶》(WIP)