没有合适的资源?快使用搜索试试~ 我知道了~
NOSQL-数据库原理
资源推荐
资源详情
资源评论
第一章:绪论
1.分布式的数据管理有哪些优点?会产生什么问题?
优点
(1)分布的透明管理:在分布式系统中,数据不是存储在一个场地上,而是存储
在计算机网络的多个场地上。但逻辑上是一个整体,它们被所有用户共享,并
由一个 DBMS 统一管理。用户访问数据时无须指出数据存放在哪里,也不需要
知道由分布式系统中的哪台服务器来完成。
(2)复制数据的透明管理:分布式数据的复制有助于提高性能,更易于协调不同
而又冲突的用户需求。同时,当某台服务器出现故障时,此服务器上的数据在
其他服务器上还有备份,提高了系统的可用性。这种多副本的方式对用户来说
是透明的,即用户不需要知道副本的存在,由系统统一管理、协调副本的调用。
(3)事务的可靠性:分布式数据处理具有重复的构成,因此消除了单点故障的问
题,即系统中一个或多个服务器发送故障不会使整个系统瘫痪,从而提高了系
统的可靠性。但是在分布式系统中,事务是并发的,即不同用户可能在同一时
间对同一数据源进行访问,这就要求系统支持分布式的并发控制,保证系统中
数据的一致。
问题
(1)数据在分布式环境下以多副本方式进行存储,那么,在为用户提供数据访问
时如何选择一个副本,或者用户修改了某一副本的数据,如何让系统中每个副
本都得到更新。
(2)如果正在更新系统所有副本信息时,某个服务器由于网络或硬、软件功能出
现问题导致其发生故障。在这种情况下,如何确保故障恢复时,此服务器上的
副本与其他副本一致。
这些问题给分布式数据库管理系统带来了挑战,它们是分布式系统固有的复杂
性,但更重要的是对分布数据的管理,控制数据之间的一致性以及数据访问的
安全性。
2. 什么是 CAP 原理?在分布式环境下怎样正确使用 CAP 策略?
CAP 理论:指在一个分布式系统中,一致性(Consistency,C)、可用性
(Availability,A)、分区容错性(Partition Tolerance, P)三者不可兼得。
使用:在实践中,可根据实际情况进行权衡,或者在软件层面提供配置方式,
由用户决定如何选择 CAP 策略。CAP 理论可用在不同的层面,可以根据 CAP
原理定制局部的设计策略,例如,在分布式系统中,每个节点自身的数据是能
保证 CA 的,但在整体上又要兼顾 AP 或 CP。
3.在数据一致性问题上,ACID 与 BASE 的差别是什么?分别适合哪种场景?
ACID:一致性(C)。一致性是指在事务开始之前和事务结束以后,数据库的完
整性约束没有被破坏,即数据库事务不能破坏关系数据的完整性及业务逻辑上
的一致性。
应用场景: ACID 一致性模型来确保数据的安全性和一致性存储。对于数据可
靠性和一致性要求很高的用例(例如银行),ACID 数据库非常适合。
BASE:最终一致性是 BASE 原理的核心,也是 NoSQL 数据库的主要特点,通
过弱化一致性,提高系统的可伸缩性、可靠性和可用性。而且对于大多数 Web
应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是多数分布
式数据库产品的方向。
应用场景: BASE 一致性模型主要用于聚合存储,包括列、键值和文档存储。
4. NoSQL 数据库与关系型数据库有哪些区别?
(1)并发支持
关系型数据库:通过事务和锁来支持并发,高并发情况下,执行效率较低。
NoSQL:打破了传统关系型数据库范式的约束和事务⼀致性,因此并发性能高。
(2)存储与查询
关系型数据库:利用关系表方式存储数据,通过 SQL 查询
NoSQL:分布式数据库,支持海量数据,多为键值方式存储数据,还有表格/
列、文档、图像、对象和多值等存储方式;查询方式也多种多样,查询效率高。
(3)扩展方式
关系型数据库:主要通过提升硬件配置等向上扩展方式来提升性能(垂直扩展)。
NoSQL:增加数据库节点向外扩展(水平扩展)。
(4)索引方式
关系型数据库:B 树、哈希等
NoSQL:键值索引
(5)应用领域
关系型数据库:通用领域
NoSQL:特定应用领域,如要求海量数据,高并发,高性能,伸缩性强,可容
忍最终⼀致性的系统。
数据库
优点
缺点
NOSQL 数据库
高扩展性、高性能、高可用。灵
活的数据模型
缺乏通用性,事物支持弱(不支
持 ACID),不支持 SQL
关系型数据库
容易理解,使用方便,易于维
护,支持 SQL、支持事物
高并发读写需求,海量数据的高
效率读写,高扩展性和可用性。
5. NoSQL 数据库有哪几类?分别适用于哪些场景?
键值数据库:内容缓存,如会话、配置文件、参数等;频繁读写、拥有简单数
据模型的应用。
列族数据库:分布式数据存储与管理。
文档数据库:Web 应用,存储面向文档或类似半结构化的数据。
图形数据库:社交网络、推荐系统,专注构建关系图谱。
第二章:认识 HBase
1. HBase 与关系型数据库的存储方式有哪些不同?
关系型数据库:行式存储,ACID,SQL,只能存储结构化数据
HBase:非关系型数据库,列式存储,不符合 ACID,not-only-sql,可存半结
构化/非结构化数据。
2. HDFS 如何实现数据的分块和复制?
分块
(1)HDFS 采用多副本方式对数据进行冗余存储,即一个数块的多个副本分布到
不同的数据节点上。
(2)集群内部发起写操作请求,把第一个副本放置在发起写操作请求的数据节点
上,实现就近写入数据。如果来自集群外部写操作请求,命名空间从集群中挑
选一台磁盘不太满、CPU 不太忙的数据节点,作为第一个副本存放地
(3)第二个副本放置在与第一个副本不同机架上的数据节点上
(4)第三个副本放置在与第一个副本相同机架上的其他节点
(5)如果还有多个副本,继续从集群中随机选择数据节点进行存放 。
复制
(1)当客户端要往 HDFS 中写入一个文件时,该文件首先写入本地,并切分成若
干文件块,每个文件块的大小由 HDFS 的设定值来决定。
(2)每个数据块向名称节点发起写请求,名称节点会根据集群中数据节点的使用
情况,选择一个数据节点列表返回给客户端。
(3)第一个数据节点接受到 4KB 数据的时候,写入本地,并且向列表中的第二个
数据节点发起连接请求,把自己已经接收到的数据和列表传送给第二个数据节
点;
(4)第二个数据节点接受到数据,写入本地,并且向列表中的第三个数据节点发
起连接请求,以此类推,列表中的多个数据节点形成一条数据复制的流水线。
(5)列表中最后一个数据节点写完,会沿着列表逆序发送数据写完毕信号。
3. HDFS 为 HBase 提供了什么能力?
[1] HBase 本身并不存储文件,它只规定文件格式以及文件内容,实际文件存
储由 HDFS 实现。
[2] HBase 不提供机制保证存储数据的高可靠,数据的高可靠性由 HDFS 的多
副本机制保证。
[3] HBase-HDFS 体系是典型的计算存储分离架构。
4. HBase 的分布式架构中有哪些组件?分别完成什么功能?
一、 Client: 包含了访问 Hbase 的接口,另外 Client 还维护了对应的
cache 来加速 Hbase 的访问,比如 cache 的.META.元数据的信息。
二、 Zookeeper:HBase 通过 Zookeeper 来做 master 的高可用、
RegionServer 的监控、元数据的入口以及集群配置的维护等工作。具体工
作如下:
剩余28页未读,继续阅读
资源评论
大象代码
- 粉丝: 226
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 23957825633dCar.zip
- Ruby优质学习资源和工具与案列应用场景.txt
- 阿里巴巴大数据实践之路-陈鹏宇(PDF格式).rar
- 基于医疗知识图谱的智能问答系统python实现源码+使用教程(毕业设计).zip
- 基于Python实现的医疗知识图谱的知识问答系统源码+使用教程(毕业设计).zip
- Objective-C优质学习资源和工具与案列应用场景.txt
- 基于python知识图谱医疗领域问答系统实现完整源码+使用说明(毕业设计).zip
- JavaScript优质学习资源和工具与案列应用场景.txt
- c#优质学习资源和工具与案列应用场景.txt
- 《医疗与在线教育PPT模板合集》-点亮您的演讲与教学!
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功