《第8章 NOSQL概论ppt课件.pptx》由会员分享,可在线阅读,更多相关《第8章 NOSQL概论ppt课件.pptx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在此输入您的封面副标题第8章 NOSQL概论 第1章Nosql概论概论08导学了解 NoSQL数据管理的技术基础; 四种不同类型的数据管理方法的工作原理; 几种典型工具及其医学应用。掌握 NoSQL的基本概念; NoSQL的特点; NoSQL的分类。1. NoSQL的概念 NoSQL泛指非关系型数据管理技术,是一种有别于传统关系型数据库的数据管理技术。 NoSQLNot Only SQL,即不仅仅是关系型数据。8.1NoSQL的概念及特点2. NoSQL的特点 易扩展性 数据量大,性能高 灵活的数据模型 高可用性8.2.1 大数据的一致性策略 数据的一致性理论是实现对海量数据进行管理的最基本理
2、论。分布式系统的CAP理论是构建NoSQL数据管理的基石。CAP,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。8.2NoSQL技术基础 系统不能同时满足一致性、可用性和分区容错性这三个特性,在同一时间只能满足其中的两个。8.2.2. 大数据的分区与放置策略1. 大数据分区技术 数据分区就是“化整为零”,通过一定的规则将超大型的数据表分割成若干小块来分别处理。表进行分区时需要使用分区键来标志每一行属于哪一个分区,分区键以列的形式保存在表中。2. 大数据放置策略(两大类) 顺序放置策略:是将各个存储结点看成是逻辑有序
3、的,在对数据副本进行分配时先将同一数据的所有副本编号,然后采用一定的映射方式将各个副本放置到对应序号的结点上; 随机放置策略:通常是基于某一哈希函数来实现对数据的放置的,所以这里所谓的随机其实也是有规律的,而不是杂乱无章的随机存放。8.2NoSQL技术基础8.2.3. 大数据的复制与容错技术 在处理数据的过程中,为了避免数据出错,必须对数据进行及时备份,这就是数据复制的重要性; 一旦出现数据错误,系统还要具备发现故障、处理故障的能力,这就是数据容错技术。8.2NoSQL技术基础故障类型故 障 子 类故 障 语 义崩溃故障失忆型崩溃服务器崩溃(停机),但停机前工作正常服务器只能从初始状态,遗忘了
4、崩溃前的状态中顿型崩溃服务器可以从崩溃前的状态启动停机型崩溃服务器完全停机失职故障接收型失职服务器对输入的请求没有响应服务器无法接收信件发送型失职服务器无法发送信件应答故障返回值故障服务器对服务请求做出错误反应返回值出现错误状态变迁故障服务器偏离正确的运行轨迹时序故障 服务器反应迟缓,超出规定的时间间隔随意故障 服务器在任意时间产生的随意错误分布式环境下的系统故障类型8.2.4 大数据的缓存技术 与单机的缓存技术目的相同,分布式缓存技术的出现也是为了提高系统的数据查询性能和数据存取速度。另外,为整个系统建立一层缓冲,也便于在不同结点之间进行数据交换。分布式缓存可以横跨多个服务器,所以可以灵活的
5、进行扩展。8.2NoSQL技术基础分布式系统数据读取示意图键值存储列存储8.3 NoSQL的类型文档存储图形存储存储类型存储类型特性特性典型工具典型工具键值存储 可以通过键快速查询到值,值无需符合特定格式Redis列存储可存储结构化和半结构化数据,对某些列的高频率查询具有很好的I/O优势Bigtable、Hbase、Cassandra文档存储数据以文档形式存储,没有固定格式CouchDB、MongoDB图存储以图形的形式存储数据及数据之间的关系Neo4J四种类型四种类型NoSQL的特点及典型产品的特点及典型产品8.3 NoSQL的类型 Key-Value Key-Value的基本原理是在的基本
6、原理是在KeyKey和和ValueValue之间建立一之间建立一个映射关系,这就类似于哈希函数。与传统个映射关系,这就类似于哈希函数。与传统RDBMSRDBMS相比,相比,在在Key-ValueKey-Value数据模型中没有模式的概念。任一数据模型中没有模式的概念。任一KeyKey值值都可以根据映射关系找到与之对应的都可以根据映射关系找到与之对应的ValueValue,而,而ValueValue的类型和取值范围等属性也都是任意的。这一特点决的类型和取值范围等属性也都是任意的。这一特点决定了其在处理海量数据时具有很大的优势。定了其在处理海量数据时具有很大的优势。8.3.1 键值存储8.3 No
7、SQL的类型 与传统与传统RDBMSRDBMS相比,列存储(相比,列存储(Column-OrientedColumn-Oriented)的数据模型具有支持不完整的关系数据模型、适的数据模型具有支持不完整的关系数据模型、适合规模巨大的海量数据、支持分布式并发数据处理等特点。在数据操作中,体现出模式灵活、修改方合规模巨大的海量数据、支持分布式并发数据处理等特点。在数据操作中,体现出模式灵活、修改方便、可用性高、可扩展性强的优势。便、可用性高、可扩展性强的优势。8.3.2 列存储行存储列存储优点 写入效率高,提供数据完整性保证读取过程没有冗余,适合数据定长的大数据计算缺点数据读取有冗余现象,影响计算
8、速度缺乏数据完整性保证,写入效率低改进优化的存储格式,保证能够在内存中快速删除冗余数据多磁盘多线程并行读/写(需要增加运营成本和修改软件)应用环境商业领域、互联网互联网8.3 NoSQL的类型 在传统关系型数据库中,数据被分割成离散的数据段,而在面向文档数据库中,文档被看做是在传统关系型数据库中,数据被分割成离散的数据段,而在面向文档数据库中,文档被看做是数据处理的基本单位。所以,文档可以很长也可以很短,复杂或是简单都无妨,不必受到像在关系型数据处理的基本单位。所以,文档可以很长也可以很短,复杂或是简单都无妨,不必受到像在关系型数据库中结构的约束。数据库中结构的约束。8.3.3 文档存储8.3
9、 NoSQL的类型 图形存储是将数据以图形的方式进行储存。在构造的图形中,实体被表示为节点,实体与实体之图形存储是将数据以图形的方式进行储存。在构造的图形中,实体被表示为节点,实体与实体之间的关系则被表示为边。关系可以将节点连接成任意结构。那么,对数据的查询就转化成了对图的遍间的关系则被表示为边。关系可以将节点连接成任意结构。那么,对数据的查询就转化成了对图的遍历。在具体的情况下,可以根据算法从某个节点开始,按照节点之间的关系找到与之相关联的节点。历。在具体的情况下,可以根据算法从某个节点开始,按照节点之间的关系找到与之相关联的节点。8.3.4 图形存储就诊被手术被护理护理做手术出诊配合手术
10、目前,基于各类数据模型开发的数据库系统层出不穷,在NoSQL中文网中,我们能看到大量的NoSQL数据管理工具。8.4典型的NoSQL工具及医学应用8.4.1RedisRedisRedis是一个开源的典型是一个开源的典型Key-ValueKey-Value数据库。数据库。数据类型数据类型 支持的支持的ValueValue类型相对于类型相对于RDBMSRDBMS更多,包括更多,包括String(String(字符串字符串) )、Hash Hash (哈希)、(哈希)、List(List(链表链表) )、Set(Set(集合集合) )和和Zset(Zset(有序集合有序集合) )。简单介绍简单介绍医
11、学应用案例医学应用案例ValueValue类型丰富、数据操作方法众多、内存数据持久化类型丰富、数据操作方法众多、内存数据持久化PC-客户端无线呼叫器服务业务服务器CA服务叫号客户端语音呼叫服务数据服务器PDA消息接收服务无线呼叫器应用服务Redis服务数据库特特 点点8.4.2HBaseHBaseHBase,即,即Hadoop databaseHadoop database,是一个建立在,是一个建立在HadoopHadoop文件系统之上的分布文件系统之上的分布式的、面向列的开源数据库,提供对数据的随机实时读式的、面向列的开源数据库,提供对数据的随机实时读/ /写访问,可以写访问,可以通过使用通
12、过使用HBaseHBase在在HDFSHDFS读取消费读取消费/ /随机访问数据。随机访问数据。HBaseHBase是一个适合于非是一个适合于非结构化数据存储的数据库,工作模式基于列而不是基于行。结构化数据存储的数据库,工作模式基于列而不是基于行。简单介绍简单介绍数据模型数据模型HBaseHBase是面向列的,且模式灵活,列可以动态增加,同一张表中不同的是面向列的,且模式灵活,列可以动态增加,同一张表中不同的行可以有截然不同的列。数据可以有多个时间戳,每张数据表的数据量行可以有截然不同的列。数据可以有多个时间戳,每张数据表的数据量都可以非常大,都可以非常大, HBaseHBase的逻辑模型包括
13、行键、时间戳和列族。的逻辑模型包括行键、时间戳和列族。系统架构系统架构医学应用案例医学应用案例提取对象主键(如身份证等信息)提取对象的其他信息(如时间、监护指标等)根据数据元字典对对象进行数据抽象处理创建数据表根据数据集目录提取数据集标识符8.4.3MongoDBMongoDBMongoDB是一个基于分布式文件存储,使用是一个基于分布式文件存储,使用C+C+编写的开源、跨平台、面向文档的数据库,旨在为编写的开源、跨平台、面向文档的数据库,旨在为WEBWEB应用提应用提供可扩展的高性能数据存储解决方案。供可扩展的高性能数据存储解决方案。MongoDBMongoDB是一个介于关系数据库和非关系数据
14、库之间的产品,是非关是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,此可以存储比较复杂的数据类系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,此可以存储比较复杂的数据类型。型。简单介绍简单介绍运行平台运行平台MongoDBMongoDB服务端可运行在服务端可运行在LinuxLinux、WindowsWindows或或mac os xmac os x平台,支持平台,支持3232位和位和6464位应用,默认端口为位应用,默认端口为2701727017。特点特点面向集合存储,易存储对象类型数据面向集合存储,易
15、存储对象类型数据模式自由,采用无模式结构存储模式自由,采用无模式结构存储支持完全索引支持完全索引支持查询支持查询强大的聚合工具强大的聚合工具支持复制和数据恢复支持复制和数据恢复高效的二进制数据存储,包括大型对象高效的二进制数据存储,包括大型对象自动处理分片,以支持云计算层次的扩展自动处理分片,以支持云计算层次的扩展支持多驱动程序,提供当前所有主流开发语支持多驱动程序,提供当前所有主流开发语言的数据库驱动包言的数据库驱动包文件存储格式为文件存储格式为BSONBSON可以通过网络访问可以通过网络访问8.4.3MongoDBMongoDBMongoDB采用面向集合的文档存储形式。面向集合(采用面向集
16、合的文档存储形式。面向集合(Collection-OrientedCollection-Oriented),即数据被分组存储在数据集中),即数据被分组存储在数据集中,被称为一个集合(,被称为一个集合(Collection)Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。模式自由(文档。模式自由(schema-free)schema-free),意味着对于存储在,意味着对于存储在MongoDBMongoDB数据库中的文件,我们不需要知道它的任何结数据库中的文件,我们不需要知道它的任何结构定
17、义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。工作原理工作原理医学应用案例医学应用案例u MongoDB MongoDB病历文档病历文档病历文档:病历文档:“姓名:刘中华;住院号:姓名:刘中华;住院号:2017008523620170085236;性别:;性别:男;年龄:男;年龄:6262;住院科室:骨科;住院科室:骨科”u 转换成转换成MongoDBMongoDB文档的形式,可以表示如下:文档的形式,可以表示如下:“住院号住院号”:“20170085236”20170085236”, “ “患者基本信息
18、患者基本信息” “ “姓名姓名”:“刘中华刘中华”, “ “性别性别”:“男男”, “ “年龄年龄”:6262, “ “住院科室住院科室”:“骨科骨科”, u MongoDB MongoDB电子健康档案电子健康档案EHREHR(Electronic Health RecordElectronic Health Record)注册服务患者医疗人员医疗机构云存储服务业务规则安全HER索引电子健康档案服务数据存储EHR(CDA文档)医嘱诊断医学图像检验结果药品卫生信息专网(参照HL7标准)科研单位卫生监管机构个人医疗机构8.4.3MongoDB医学应用案例医学应用案例u MongoDB MongoD
19、B医学图像管理医学图像管理 医学数据层:医学数据主要以医学数据层:医学数据主要以DICOM DICOM 文件、文件和元数据文件为主,但也包文件、文件和元数据文件为主,但也包括其他结构性和非结构性文件。括其他结构性和非结构性文件。 数据存储层:以数据存储层:以MongoDBMongoDB为数据存储方式。为数据存储方式。 数据操作层:数据操作中主要包括文件处理模块,数据操作层:数据操作中主要包括文件处理模块,DICOM DICOM 文件处理主要处理文件处理主要处理DICOM DICOM 文件,并将文件,并将DICOM DICOM 文件中含有的病人信息存储文件中含有的病人信息存储MongoDBMon
20、goDB数据库中。数据库中。NRRDNRRD处处理则是进行分段处理,以方便上传。而理则是进行分段处理,以方便上传。而MongoDBMongoDB数据操作以及数据操作以及GridFSGridFS操作则是基操作则是基于于MongoDBMongoDB提供的提供的MongoDB DriverMongoDB Driver库来进行实现。库来进行实现。 业务逻辑层:业务逻辑主要包括文件操作逻辑以及业务逻辑层:业务逻辑主要包括文件操作逻辑以及MongoDBMongoDB数据操作逻辑,数据操作逻辑,并且添加并且添加MQ MQ 服务,使其能够在不同平台上调用该层逻辑。服务,使其能够在不同平台上调用该层逻辑。 表示
21、层:表示层主要包括表示层:表示层主要包括WinForm WinForm 以及医学图像软件。其中医学图像软件是以及医学图像软件。其中医学图像软件是使用使用MQ MQ 进行通信,将医学图像传输至医学图像软件所在的地址,方便医学图像进行通信,将医学图像传输至医学图像软件所在的地址,方便医学图像软件进行操作。软件进行操作。表示层WinForm医学图像软件业务逻辑层MQ服务文件操作逻辑MongoDB数据操作逻辑数据操作层MQ服务GridFS操作MongoDB数据操作文件处理组件DICOM处理组件NRRD处理组件医学数据层DICOM文件NRRD文件元数据文件数据存储层MongoDB小结 在20世纪,各网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。近10年,各类型网站快速发展,受到网友广泛热捧的论坛、博客、微博等逐渐开始引领Web领域的潮流。NoSQL数据库的出现,弥补了关系数据在某些方面的不足,在某些方面能极大的节省开发和维护成本。大大小小的Web站点在追求高效、高性能、高可靠性方面,纷纷选择了NoSQL技术。中国医科大学