智能计算平台应用开发(高级)-智能计算机应用平台开发数据存储-智能计算机分布式数据库课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《智能计算平台应用开发(高级)-智能计算机应用平台开发数据存储-智能计算机分布式数据库课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 计算 平台 应用 开发 高级 计算机 数据 存储 分布式 数据库 课件
- 资源描述:
-
1、第0页第第4 4章章 数据存储数据存储第1页目录目录1.分布式存储系统2.分布式数据库3.分布式文件系统第2页分布式数据库分布式数据库l分布式数据库一般从单机关系数据库发展而来,用于存储结构化数据。l然而非关系型(NoSQL)数据库在分布式数据库领域也占据着越来越重要的地位,非关系型分布式数据库去掉了关系型数据库的关系型特性,使用简单的数据库结构,具有良好的读写性能,为大数据提供了高可用、高可扩展的存储方案。第3页分布式数据库简介分布式数据库简介l随着传统的数据库技术日趋成熟,以及计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库系统的研究与开发受到人们的注意。l分布式数据库
2、是数据库技术与网络技术相结合的产物,在数据库领域已形成一个分支。第4页分布式数据库简介分布式数据库简介起源与概念起源与概念 通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS(数据库管理系统)的一份完整拷贝副本,并具有自己局部的数据库。位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。分布式数据库系统分布式数据库系统第5页分布式数据库简介分布式数据库简介起源与概念起源与概念l分布式数据库系统第6页分布式数据库简介分布式数据库简介起源与概念起源与概念l分布式数据库系统p符合信息系统应用的需求;p符合当前企业组织的管理思想和管理方式。l对
3、于地域上分散而管理上又相对集中的大企业而言,数据通常是分布存储在不同地理位置,每个部门都会负责维护与自己工作相关的数据,整个企业的信息就被分隔成多个“信息孤岛”,分布式数据库为这些信息孤岛提供了一座桥梁。第7页分布式数据库简介分布式数据库简介起源与概念起源与概念l分布式数据库可以把子部门的信息通过网络连接起来,组成一个分布式存储系统。满足本地数据保存在本地维护;异地数据通过互联网进行存取的需求;允许各部门对数据进行局部控制和分散管理;提供整个组织的全局控制和高层次的协同管理。第8页分布式数据库简介分布式数据库简介起源与概念起源与概念l分布式数据库系统是数据库系统与计算机网络相结合的产物。p分布
4、式数据库系统产生于20世纪70年代末期,在20世纪80年代进入迅速成长阶段。p由于数据库应用需求的拓展和计算机硬件环境的改变,计算机网络与数字通信技术的飞速发展,卫星通信、蜂窝通信、计算机局域网、广域网和Internet的迅速发展,使得分布式数据库系统应运而生,并成为计算机技术最活跃的研究领域之一。第9页分布式数据库简介分布式数据库简介起源与概念起源与概念世界上第一个分布式数据库系统SDD-1,是由美国计算机公司于1976年至1978年设计,并于1979年在DEC-10和DEC-20计算机上面实现。1987年,关系数据库的最早设计者之一C.J.Date提出了分布式数据库系统应遵循的规则,作为分
5、布式数据库系统的理想目标或标准定义。20世纪90年代,分布式数据库系统已进入商品化应用阶段。一些数据库厂商也在不断推出和改进自己的分布式数据库产品,以适应应用的需求。但是实现和建立分布式数据库系统不是将数据库技术与网络技术简单结合,而是在这两种技术相互渗透和有机融合后的技术升华。l分布式数据库系统的发展第10页分布式数据库简介分布式数据库简介起源与概念起源与概念l目前,分布式数据库系统已发展成熟,主要的开发方向是开发基于客户机-服务器的系统或异构型多数据库系统。l分布式数据库的主要特点 用户不必关心数据的逻辑分区与物理位置分布式细节、副本数据一致性问题、局部数据库支持的数据模型等,使用起来如同
6、集中式数据库。透明性 分布式数据库依靠冗余实现系统可靠性、可用性,并改善其性能。多个节点存储数据副本,当某一节点数据遭到破坏时,冗余副本可保证数据的完整性。数据冗余性第11页分布式数据库简介分布式数据库简介起源与概念起源与概念l分布式数据库的主要特点 在分布式数据库中能够方便地通过水平扩展提高系统的整体性能,也能够通过垂直扩展来提高性能。同时,扩展并不需要修改系统程序。易于扩展性 各节点上的数据由本地的DBMS管理,DBMS有自治处理能力,能完成本地的应用或局部应用。自治性第12页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l应对大数据处理的分布式数据库
7、系统可以归纳为关系型和非关系型两种。关系型分布式数据库 关系型数据库发展比较早,其理论和应用比较丰富,如Oracle、Microsoft SQL Sever、MySQL等关系数据库系统已被广泛应用在各行各业。关系数据库设计之初并没有预见IT行业发展如此快速,总是假设系统运行在单机这一封闭系统上。随着对关系数据库扩展性、可用性和并发性等方面的要求日益提升,关系数据库也在进行相应的研发。第13页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l关系数据库的可扩展性实现思路有很多种。在应用层划分数据,将不同的数据分片划分到不同的关系数据库上,如MySQL Shar
8、ding、PostgreSQL。在关系数据库内部支持数据自动分片,如Microsoft SQL Azure。从存储引擎开始重写一个全新的分布式数据库,如Google Spanner和Alibaba OceanBase。第14页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构 MySQL Sharding指在MySQL的基础上,通过数据分片将数据进行水平切分或垂直切分,并将分片数据分布到多个物理节点上的一个分区方案。每一个分区包含数据库的某一部分,称为一个shard。一个shard可以包含多个表的内容,甚至可以包含多个数据库实例中的内容。每个shard被放置在
9、一个数据库服务器上,一个数据库服务器可以处理一个或多个shard的数据。MySQL Sharding第15页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l数据分片p将数据全局地划分为相关的逻辑片段。p数据分片有水平切分、垂直切分、混合切分3种类型。水平切分 水平切分是按照某个字段的某种规则分散到多个节点数据库中,每个节点数据库中包含一部分数据。数据的水平切分还可以简单理解为按照数据行进行切分,即将表中的某些行切分到一个节点,并将另外某些行切分到其他节点,从分布式的整体来看它们是一个整体的表。第16页分布式数据库简介分布式数据库简介常见分布式数据库的技术架
10、常见分布式数据库的技术架构构垂直切分 一个数据库的多个表可能对应不同的业务,垂直切分是指按照业务将表进行分类并分布到不同的节点上。垂直拆分简单明了,拆分规则明确,应用程序模块清晰、明确、容易整合,但是当某个表的数据量达到一定程度后,扩展起来比较困难。混合切分 混合切分就是结合水平切分与垂直切分。第17页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构lMySQL Sharding实现分布式存储的一般架构图p客户端p中间层dbproxy集群p数据库组p元数据服务器p常驻进程p第18页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术
11、架构构客户端l应用程序通过MySQL原生的客户端与系统交互,实现支持JDBC,并使得原有的单机访问数据库程序可以无缝迁移。第19页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构中间层dbproxy集群lMySQL dbproxy是MySQL客户端与服务器端的中间层,作用是解析客户端SQL请求并转发到后端的数据库。dbproxy中间层可以解析MySQL协议,执行SQL路由、SQL过滤、读写分离、结果归并、排序分组等。l中间层dbproxy集群由多个无状态的dbproxy组成,不会存在单点的情况。l此外,在客户端和中间层之间引入Linux虚拟服务器(Linux
12、 Virtual Server,LVS)可以对客户端请求进行负载均衡。但引入LVS后,客户端请求需要额外增加一层通信开销。因此,常见的做法是直接在客户端配置中间层服务器列表,由客户端处理请求负载均衡以及中间层服务器故障等情况。第20页l每个dbgroup由N台数据库机器组成,其中一台为主机(Master),另外N-1台为备机(Slave)。l主机负责所有的写事务及强一致读事务,并将操作以binlog(MySQL的二进制日志)的形式复制到备机,备机可以支持有一定延迟的读事务。数据库组分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构第21页分布式数据库简介分布式
13、数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l元数据服务器主要负责维护dbgroup拆分规则,并用于dbgroup选主(选择Master)。ldbproxy通过元数据服务器获取拆分规则,从而确定SQL语句的执行计划。此外,如果dbgroup的主机出现故障,那么需要通过元数据服务器为dbgroup重新选主(选择Master)。l元数据服务器本身也需要多个副本实现HA(高可用),HA常见的实现方式是采用Zookeeper。元数据服务器第22页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构常驻进程l部署在每台数据库服务器上的常驻进程,用于实现监
14、控、单点切换、安装、卸载程序等。ldbgroup中的数据库需要进行主备切换、软件升级等,这些控制逻辑需要与数据库读写事务处理逻辑隔离开。第23页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l假设数据库按照用户进行哈希分区,同一个用户的数据分布在一个数据库组上。l由于中间层的协议与MySQL兼容,所以客户端完全感受不到与访问单台MySQL机器之间的差别。如果SQL请求只涉及同一个用户,那么中间层将请求转发给相应的数据库组,等待返回结果并将结果返回给客户端。如果SQL请求涉及多个用户,那么中间层需要转发多个数据库组,等待返回结果并将结果执行合并、分组、排序等
15、操作后返回客户端。第24页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构 Google Spanner是Google的全球级分布式数据库(Globally-Distributed Database)。Spanner的扩展性达到了全球级,可以扩展到数百个数据中心、数百万台机器、上万亿行记录,并且能够通过同步复制和多版本控制满足外部一致性,从而支持跨数据中心事务。Spanner构建在Google分布式文件系统Colossus上。Colossus是GFS的延续,具有更好的实时性能,并且支持海量小文件。Google Spanner第25页分布式数据库简介分布式数据
16、库简介常见分布式数据库的技术架常见分布式数据库的技术架构构lSpanner的架构图 第26页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构lSpanner是全球性的,其中有以下两个一般分布式存储没有的概念。一个Spanner部署实例称为一个Universe。Universe支持多数据中心部署,且多个业务可以共享同一个Universe。Universe 每个Zone属于一个数据中心,一个数据中心可能有多个Zone。一般来说,Zone之间通信代价高,Zone内部通信代价低。Zone第27页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库
17、的技术架构构Spanner架构中的组件Universe Master:监控单个Universe里Zone级别的状态信息。Placement Driver:提供跨Zone数据迁移功能。zonemaster:管理Spanserver上的数据。Location Proxy:提供获取数据的位置信息服务。客户端需通过它才能知道数据由哪台Spannserver提供存储服务。Spanserver:提供存储服务。第28页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构lSpanner架构中的组件Spanserverp每个Spanserver会服务多个子表,而每个子表又包含多
18、个目录。p当客户端往Spanner发送读写请求时,首先需要查找目录所在的Spanserver,接着从Spanserver读写数据。第29页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构 PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型。PostgreSQL提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等。PostgreSQL还支持使用C语言写自定义函数、触发器,也支持使用流行的语言写自定义函数,如其中的PL/Perl提供了使用Perl语言写自
19、定义函数的功能。PostgreSQL第30页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l相比于运用广泛的MySQL,PostgreSQL的特点PostgreSQL功能强大 支持所有主流的多表连接查询方式和大多数SQL语法。性能优化工具和度量信息丰富 PostgreSQL有大量性能视图,可以方便地定位问题。在线操作功能好 PostgreSQL增加列可做到瞬间完成,还支持在线建索引,建索引过程中可以不锁更新操作。第31页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构lPostgreSQL可以通过一些第三方的插件、软件等
20、实现分布式架构,如PL/Proxy。PL/Proxy PL/Proxy是一款能在PostgreSQL数据库中实现水平拆分的软件,可以帮助PostgreSQL实现基于数据库水平拆分的分布式架构,但PL/Proxy并不是分布式数据库软件。PL/Proxy本身并不是一个可以独立运行的进程,而只是安装到PostgreSQL的一种PL语言,但它可以将请求(对函数的调用)路由至后端的其他数据库。第32页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l基于数据库水平拆分的分布式架构第33页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构
21、构l在基于数据库水平拆分的分布式架构中p装有PL/Proxy的PostgreSQL数据库服务器作为“水平拆分的中间件”,不参与存储实际的数据。p后台部署的多台PostgreSQL数据库服务器则用于存储实际的数据。客户端把SQL查询请求发送至“水平拆分的中间件”“水平拆分的中间件”根据SQL查询中水平拆分键的Hash值,把SQL分发至底层的数据库服务器进行处理。第34页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构非关系型分布式数据库 随着数据量越来越大,关系型数据库开始在高可扩展性、高并发性等方面暴露出一些难以克服的缺点,而Key-Value存储系统、文档
22、型数据库等非关系型(NoSQL)数据库,逐渐成为大数据时代下分布式数据库领域的主力。NoSQL数据库不使用SQL语句,不需要事先修改结构定义就可以自由添加字段。NoSQL数据库不支持事务,不保证严格的一致性,而由应用程序来控制数据一致性。因此,各种NoSQL数据库均对分布式部署都有较好的支持。第35页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l非关系型分布式数据库种类很多,大致可以分成列存储数据库、文档存储型数据库、Key-Value存储数据库和图数据库等。类型类型典型代表典型代表特点特点列存储数据库HBase按列存储数据,最大特点是方便存储结构化和半
23、结构化数据,方便进行数据压缩,对针对某一列或某几列的查询具有较大的I/O优势CassandraHyperTable文档存储型数据库MongoDB一般采用类似JSON的格式存储,存储内容是文档型的,便于对某些字段建立索引,实现关系数据库的某些功能CouchDBKey-Value存储数据库Redis可以通过关键字(Key)快速查询到其值(Value),不必考虑值的存储格式BerkeleyDBMemcacheDB图数据库Neo4j是图形关系的最佳存储,若使用传统关系型数据库存储,则性能低下,设计复杂第36页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构 列式存储
24、数据库不是按行来存储和处理数据,而是将列和行分割在多个节点,以此实现可扩展性。列式存储数据库的主要灵感来源于Google的BigTable,HBase就是按照BigTable的编程模型开发的。HBase数据库的数据最终存放在分布式文件系统HDFS上,从而保证了其强大的存储能力。通过数据处理模型MapReduce可以方便地处理分布式数据库中的数据,还可以为数据库中的数据提供强大的计算能力。HBase第37页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构lHBase实际上就是一个稀疏、多维、持久化存储的映射表,采用行键(Rowkey)、列族(Column Fa
25、mily)、列限定符(Column Qualifier)和时间戳(Timestamp)进行索引,每个值都是未经解释的字节数组byte。lHBase的数据模型的相关概念p表p行p列族p列限定符p单元格p时间戳第38页分布式数据库简介分布式数据库简介常见分布式数据库的技术架常见分布式数据库的技术架构构l表pHBase采用表来组织数据,表由行和列组成,列划分为若干个列族。l行p每个HBase表由若干行组成,每个行由行键(Rowkey)标识。行键被保存为字节数组,并按照行键的字典顺序排序数据。l列族p一个HBase表被分组成许多列族的集合,集合是基本的访问控制单元。列族需要在表创建时就定义好,数量不能
展开阅读全文