大数据技术原理与应用——NoSQL数据库

大数据技术原理与应用——NoSQL数据库

在这里插入图片描述

5.1 NoSQL 简介

特点

1.灵活的可扩展性
传统的关系型数据库由于自身设计机理的原因,通常很难实现“横向扩展”,在面对数据库负载大规模增加时,往往需要通过升级硬件来实现“纵向扩展”。但是,当前的计算机硬件制造工艺已经达到一个限度,性能提升的速度开始趋缓,已经远远赶不上数据库系统负载的增加速度,而且配置高端的高性能服务器价格不菲,因此寄希望于通过“纵向扩展”满足实际业务需求,已经变得越来越不现实。相反,“横向扩展”仅需要非常普通廉价的标准化刀片服务器,不仅具有较高的性价比,也提供了理论上近乎无限的扩展空间。NoSQL 数据库在设计之初就是为了满足“横向扩展”的需求,因此天生具备良好的水平扩展能力。
2.灵活的数据模型
关系模型是关系数据库的基石,它以完备的关系代数理论为基础,具有规范的定义,遵守各种严格的约束条件。这种做法虽然保证了业务系统对数据一致性的需求,但是过于死板的数据模型,也意味着无法满足各种新兴的业务需求。相反,NoSQL 数据库天生就旨在摆脱关系数据库的各种束缚条件,摈弃了流行多年的关系数据模型,转而采用键/值、列族等非关系模型,允许在一个数据元素里存储不同类型的数据。
3.与云计算紧密融合
云计算具有很好的水平扩展能力,可以根据资源使用情况进行自由伸缩,各种资源可以动态加入或退出,NoSQL 数据库可以凭借自身良好的横向扩展能力,充分自由利用云计算基础设施,很好地融入到云计算环境中,构建基于 NoSQL 的云数据库服务。

5.2 NoSQL 兴起的原因

在这里插入图片描述

5.2.1 关系数据库无法满足 Web 2.0 的需求

在这里插入图片描述

传统的关系数据库性能上缺陷

无法满足海量数据的管理需求
到了 Web 2.0 时代以后,数据的产生速度非常快
在这里插入图片描述
无法满足高并发的需求
在 Web 1.0 时代,通常采用动态页面静态化的技术,事先访问数据库生成静态页面供浏览者访问,从而保证在大规模用户访问时,也能够获得较好的实时响应性能。但是,在 Web 2.0 时代,各种用户都在不断地发生更新,购物记录、搜索记录、微博粉丝数等信息都需要实时更新,动态页面静态化技术基本没有用武之地,所有信息都需要动态实时生成,这就会导致高并发的数据库访问,可能产生每秒上万次的读写请求,对于很多关系数据库而言,这都是“难以承受之重”。
在这里插入图片描述
无法满足高扩展性和高可用性的需求
在 Web 2.0 时代,不知名的网站可能一夜爆红,用户迅速增加,已经广为人知的网站也可能因为发布了热门吸引眼球的信息,引来大量用户在短时间内围绕该信息大量交流互动,这些都会导致对数据库读写负荷的急剧增加,需要数据库能够在短时间内迅速提升性能应对突发需求。但是,遗憾的是,关系数据库通常是难以水平扩展的,没有办法像网页服务器和应用服务器那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2.2 关系数据库的关键特性在 Web 2.0 时代成为“鸡肋”

在这里插入图片描述
在这里插入图片描述

5.3 NoSQL 与关系数据库的比较

一、在数据库原理方面

在这里插入图片描述

二、在数据规模方面

在这里插入图片描述

三、在数据库模式方面

在这里插入图片描述

四、在查询效率方面

在这里插入图片描述

五、在事务一致性方面

在这里插入图片描述

六、在数据完整性方面

在这里插入图片描述

七、在可扩展性方面

在这里插入图片描述

八、在可用性方面

在这里插入图片描述

九、在标准化方面

在这里插入图片描述

十、在技术支持方面

在这里插入图片描述

十一、在可维护方面

在这里插入图片描述

关系数据库的优势

1.具有非常完备的关系代数理论作为基础
2.有严格的标准
3.支持事务一致性
4.可以借助索引机制实现非常高效的查询

关系数据库的劣势

1.可扩展性非常差
2.不具备水平可扩展性,无法较好支持海量数据存储
3.数据模型定义严格,无法较好满足新型 Web 2.0 应用需求

NoSQL 数据库的优势

1.支持超大规模的数据存储
2.数据模型非常灵活

NoSQL 数据库的劣势

1.缺乏底层基础理论做支撑
2.很多 NoSQL 数据库都不支持事务的强一致性

两种数据库的应用场景

在这里插入图片描述
实际上,在企业应用当中,有些企业都市采用混合应用架构,一个企业中可以同时用两种不同类型的数据库产品,如亚马逊公司,其内部就使用不同的数据库去支持电子商务的应用,比如,对购物篮,临时性的数据一般采用键值存储,键值存储对简单的数据模型效率是非常高的;而对于产品订单信息,一般会把它放在关系数据库当中,因为这属于企业的关键业务应用,是绝对不能丢失的;而当企业需要做分析时,它会把很多历史的订单信息放到现在比较流行的叫文档数据库 MongoDB 中。
对于一个企业来讲,实际上都是成混合型架构,在这么多的产品当中选择一些能够满足他们不同需求的产品,形成组合型应用。
在这里插入图片描述

5.4 NoSQL 的四大类型

在这里插入图片描述
在这里插入图片描述

5.4.1 键值数据库

在这里插入图片描述
键值数据库成为理想的缓冲层解决方案
我们很多基于外部的开发,外面浏览器去访问我们底层的网页的时候,网页需要去访问底层数据库,你若这样一次又一次地去查询,直接去访问底层的磁盘数据库的时候,性能是很低的,所以,一般企业在应用的时候,都会在底层的数据库之上构建一个缓冲层,缓冲层一般是用键值数据库去做缓冲的。
在这里插入图片描述

5.4.2 列族数据库

在这里插入图片描述

5.4.3 文档数据库

是最像关系数据库的,是介于关系数据库和 NoSQL 数据库之间的一种数据库,一般也会把它归到 NoSQL 数据库。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4.4 图数据库

在这里插入图片描述
在这里插入图片描述

5.5 NoSQL 的三大基石

5.5.1 CAP

在这里插入图片描述
一个分布式系统不可能同时满足一致性、可用性和分区容忍性这三个需求,最多只能同时满足其中两个,正所谓“鱼和熊掌不可兼得”
在这里插入图片描述
下面给出牺牲一致性来换取可用性的实例。假设分布式环境下存在两个节点 M1 和 M2 ,一个数据 V 的两个副本 V1 和 V2 分别保存在 M1 和 M2 上,两个副本的值都是 val0,现在假设有两个进程 P1 和 P2 分别对两个副本进行操作,进程 P1 向节点 M1 中的副本 V1 写入新值 val1,进程 P2 从节点 M2 中读取 V 的副本 V2 的值。
当整个过程完全正常执行时,会按照以下过程进行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(1)进程 P1 向节点 M1 的副本 V1 写入新值 val1。
(2)节点 M1 向节点 M2 发送消息 MSG 以更新副本 V2 值,把副本 V2 值更新为 val1。
(3)进程 P2 在节点 M2 中读取副本 V2 的新值 val1。
但是当网络发生故障时,可能导致节点 M1 中的消息 MSG 无法发送到节点 M2,这时,进程 P2 在节点 M2 中读取到的副本 V2 的值仍然是旧值 val0。因此产生了不一致性的问题。
从这个实例可以看出,当我们希望两个进程 P1 和 P2 都实现高可用性,也就是能够快速访问到需要的数据时,就会牺牲数据一致性。

在面对 CAP 问题有以下几种选择
在这里插入图片描述
在这里插入图片描述
(1)CA。也就是强调一致性(C)和可用性(A),放弃分区容忍性(P),最简单的做法是把所有与事务相关地内容放到同一台机器上。很显然,这种做法会严重影响系统的可扩展性。传统的关系数据库(MySQL、SQL Server 和 PostgreSQL)都采用了这种设计原则,因此可扩展性都比较差。
(2)CP。也就是强调一致性(C)和分区容忍性(P),放弃可用性(A),当出现网络分区的情况时,受影响的服务器需要等待数据一致,因此在等待期间就无法对外提供服务。Neo4J、BigTable 和 HBase 等 NoSQL 数据库都采用了 CP 设计原则。
(3)AP。也就是强调可用性(A)和分区容忍性(P),放弃一致性(C),允许系统返回不一致的数据。这对于许多 Web 2.0 网站而言是可行的,这些网站的用户首先关注的是网站服务是否可用,当用户需要发布一条微博时,必须能够立即发布,否则,用户就会放弃使用,但是这条微博发布后什么时候能够被其他用户读取到,则不是非常重要的问题,不会影响到用户体验。因此,对于 Web 2.0 网站而言,可用性与分区容忍性优先级要高于数据一致性,网站一般会尽量朝着 AP 的方向设计。当然,在采用 AP 设计时,也可以不完全放弃一致性,转而采用最终一致性。Dynamo、Riak、CouchDB、Cassandrd 等 NoSQL 数据库就采用了 AP 设计原则。

5.5.2 BASE

在这里插入图片描述
在这里插入图片描述

5.5.3 最终一致性

根据更新数据后各进程访问到数据的时间和方式的不同,可以区分为
在这里插入图片描述
在这里插入图片描述
如何实现各种类型的一致性
假设有一个分布式系统
为了实现它的可靠性,要对数据进行冗余存储
在这里插入图片描述
在这里插入图片描述
N=2:一主一从,一个数据有一模一样的两份复制
W=2:表示同步复制,当数据写到主服务器中,只有它被更新到从服务器,写才能成功返回(必须要写入这两个副本,才能成功返回)
R=1:只要读取其中一个就能马上返回
在这里插入图片描述
R=1 指从其中任何一个读完就走,这时就可能会出现不一致,因为在写操作时,写完主服务器就走掉了,如果这个时候更新没有传到从服务器,马上去读从服务器,读到的数据肯定是旧的,就不一致了。
在这里插入图片描述
对于 HBase 数据库来讲
HBase 是借助底层的 HDFS 来实现其数据冗余备份
HDFS 采用强一致性,在数据未完全同步到 N 个节点前,写操作不会成功返回也就是说当 W=N,而读操作只需要读到一个值即可也就是说 R=1

5.6 从 NoSQL 到 NewSQL 数据库

数据库的发展
在这里插入图片描述
应用场景
在这里插入图片描述
NewSQL 数据库
NewSQL 同时具备 OldSQL 数据库和 NoSQL 数据库各自的优点
在这里插入图片描述
在这里插入图片描述

文档数据库 MongoDB

MongoDB 简介
在这里插入图片描述
在这里插入图片描述
MongoDB特点
在这里插入图片描述
MongoDB 的概念解析——概念术语
在这里插入图片描述
实例
在这里插入图片描述
关系型数据库设计实例
在这里插入图片描述
实例
关系数据库其中一条记录在文档数据库 MongoDB 中存储方式如下
在这里插入图片描述
数据库
在这里插入图片描述
文档
在这里插入图片描述
一个简单的文档例子如下
在这里插入图片描述
RDBMS 与 MongoDB 对应的术语
在这里插入图片描述
在这里插入图片描述
集合
在这里插入图片描述
安装 MongoDB
在这里插入图片描述
使用 MongoDB shell 访问 MongoDB
在这里插入图片描述
使用 Java 程序访问 MongoDB
(1)环境配置
在这里插入图片描述
(2)连接数据库
在这里插入图片描述
(3)创建集合
在这里插入图片描述
(4)插入文档
在这里插入图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 大数据技术原理应用是一本介绍大数据技术的书籍,它主要涉及大数据技术背后的原理应用。在这本书中,作者首先介绍了大数据的概念和背景,解释了为什么大数据技术在现代社会中变得如此重要。 接下来,书中详细介绍了大数据技术原理大数据技术主要包括数据采集、数据存储、数据处理和数据分析。在数据采集方面,作者介绍了如何获取和整理大量的数据,并介绍了一些常用的数据采集工具和技术。在数据存储方面,作者介绍了大数据存储的各种技术和方法,包括分布式存储、NoSQL数据库等。在数据处理方面,作者介绍了分布式计算、MapReduce等技术,并详细解释了它们的原理应用。在数据分析方面,作者介绍了一些常用的数据分析工具和算法,如机器学习、数据挖掘等。 此外,在书中还介绍了大数据技术在各个领域中的应用大数据技术可以应用于金融、医疗、教育、交通等各个领域,并能够为这些领域带来巨大的变革。例如,在金融领域,大数据技术可以帮助银行识别欺诈行为、分析风险等。在医疗领域,大数据技术可以帮助医生进行诊断和治疗决策。 总之,大数据技术原理应用这本书详细介绍了大数据技术原理应用,并给读者提供了一个全面了解大数据技术的入门指南。无论是对于想要了解大数据技术的初学者,还是对于已经在大数据领域工作的专业人士,这本书都是一本宝贵的参考资料。同时,这本书也对于研究大数据技术的学者和开发者来说,提供了一个研究大数据技术的基础框架。如果你对大数据技术感兴趣,我推荐你阅读这本书。 ### 回答2: 大数据技术是指用于管理、处理和分析海量数据的一系列技术和工具。大数据技术原理主要涉及数据的采集、存储、处理与分析。 首先,大数据技术的采集原理是通过各种传感器、设备和应用程序收集数据。这些数据可以来自互联网、社交媒体、传感器设备、移动应用和其他各种渠道。采集到的数据需要进行清洗和标准化,以确保数据的准确性和一致性。 其次,大数据技术的存储原理是将采集到的海量数据进行存储和管理。传统的关系型数据库在处理大规模数据时效率较低,因此大数据技术采用了分布式存储系统,如Hadoop分布式文件系统(HDFS)。HDFS将数据分割成多个块,并在多台机器上进行存储和备份,提高了数据的可用性和可扩展性。 再次,大数据技术的处理原理是通过分布式计算框架对海量数据进行处理和分析。Hadoop是大数据领域最主要的处理框架之一,其核心组件是分布式计算框架MapReduce。MapReduce通过将大规模数据分割成小块,并在多台机器上并行处理和计算,提高了数据处理的效率和性能。 最后,大数据技术应用原理是利用处理和分析过的大数据来洞察模式、趋势和规律,以支持决策和创新。大数据技术可以应用于各个领域,如金融、医疗、物流、教育等。通过分析大数据,可以发现商业机会、改善产品和服务、优化运营和提升用户体验。 总之,大数据技术原理应用包括数据的采集、存储、处理与分析。通过掌握大数据技术原理,我们可以更好地应用大数据技术来解决实际问题,并发现新的商业机会。 ### 回答3: 大数据技术原理应用是一本介绍大数据技术的书籍,提供了大量的理论知识和实际应用案例。该书主要分为两个部分,分别是大数据技术原理大数据技术应用。 在原理部分,这本书详细介绍了大数据技术的核心概念和基本原理。首先,书中介绍了大数据的定义和特点,强调了大数据处理的挑战和机遇。接着,书中介绍了大数据采集、存储、处理和分析的基本原理和常用方法。例如,介绍了分布式存储系统、数据清洗和预处理技术、分布式计算框架等。同时,书中还介绍了常用的大数据处理工具和算法,如Hadoop、Spark等。 在应用部分,这本书提供了许多大数据技术在实际应用中的案例。这些案例涵盖了不同领域和行业,包括金融、医疗、物流等。书中详细介绍了这些案例的具体问题和解决方案,以及使用大数据技术取得的效果和收益。这些案例不仅展示了大数据技术在解决实际问题中的作用,还给读者提供了实践的参考和借鉴。 总的来说,这本书是一本介绍大数据技术原理应用的权威参考书。它既提供了大数据技术的基本原理和方法,又通过实际案例展示了大数据技术在不同领域的应用。对于对大数据技术感兴趣的人来说,这本书是一个很好的学习和研究资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值