《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn厦门大学计算机科学系2015年版林子雨厦门大学计算机科学系E-mail:ziyulin@xmu.edu.cn主页:第六章云数据库(PPT版本号:2015年6月第1.0版)《大数据技术原理与应用》温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn提纲•6.1云数据库概述大数据的产生和应用•6.2云数据库产品•6.3云数据库系统架构•6.4云数据库实践欢迎访问《大数据技术原理与应用》教材官方网站:本PPT是如下教材的配套讲义:21世纪高等教育计算机规划教材《大数据技术原理与应用——概念、存储、处理、分析与应用》(2015年6月第1版)厦门大学林子雨编著,人民邮电出版社ISBN:978-7-115-39287-9《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.1云数据库概述•6.1.1云计算是云数据库兴起的基础•6.1.2云数据库概念•6.1.3云数据库的特性•6.1.4云数据库是个性化数据存储需求的理想选择•6.1.5云数据库与其他数据库的关系《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.1.1云计算是云数据库兴起的基础表6-1传统的软件使用方式和云计算方式的比较传统方式云计算方式获得软件的方式自己投资建设机房,搭建硬件平台,购买软件在本地安装直接购买云计算厂商的软件服务使用方式本地安装,本地使用软件运行在云计算厂商服务器上,用户在任何有网络接入的地方都可以通过网络使用软件服务付费方式需要一次性支付较大的初期投入成本,包括建设机房、配置硬件、购买各种软件(操作系统、杀毒、业务软件等)零成本投入就可以立即获得所需的IT资源,只需要为所使用的资源付费,多用多付,少用少付,极其廉价维护成本需要自己花钱聘请专业技术人员维护零成本,所有维护工作由云计算厂商负责获得IT资源速度需要耗费较长时间建设机房、购买和安装调试设备系统随时可用,购买服务后立即可用共享方式自己建设,自给自足云计算厂商建设好云计算服务平台后,同时为众多用户提供服务维修速度出现病毒、系统崩溃等问题时,需要自己聘请IT人员维护,很多普通企业的IT人员技术能力有限,碰到一些问题甚至需要寻找外援,通常不能立即解决出现任何系统问题时,云计算厂商都会凭借其专业化团队给出及时响应,确保云服务的正常使用资源利用率利用率较低,投入大量资金建设的IT系统,往往只供企业自己使用,当企业不需要那么多IT资源时,就会产生资源浪费利用率较高,每天都可以为大量用户提供服务;当存在闲置资源时,云计算管理系统会自动关闭和退出多余资源;当需要增加资源时,又会自动启动和加入相关资源用户搬迁时的成本当企业搬家时,原来的机房设施就要作废,需要在新地方重新投入较大成本建设机房企业无论搬迁到哪里,都可以通过网络重新零成本立即获得云计算服务,因为,资源在云端,不在用户端,用户搬迁不会影响到IT资源的分布资源可拓展性企业自己建设的IT基础设施的服务能力通常是有上限的,当企业业务量突然增加时,现有的IT基础设施无法立即满足需求,就需要花费时间和金钱购买和安装新设备;当业务高峰过去时,多余的设备就会闲置,造成资源浪费云计算厂商可以为企业提供近乎无限的IT资源(存储和计算等资源),用户想用多少都可以立即获得,当用户不使用时,只需退订多余资源,不存在任何资源闲置问题《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.1.2云数据库概念物理磁盘云数据库数据节点云数据库管理器客户端云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易,同时,也虚拟化了许多后端功能。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.1.3云数据库的特性云数据库具有以下特性:(1)动态可扩展(2)高可用性(3)较低的使用代价(4)易用性(5)高性能(6)免维护(7)安全表6-2腾讯云数据库和自建数据库的比较自建数据库腾讯云数据库数据安全性开发者自行解决,成本高昂15种类型备份数据,保证数据安全服务可用性99.99%高可靠性数据备份0花费,系统自动多时间点数据备份维护成本0成本,专业团队7x24小时帮助维护实例扩容一键式直接扩容,安全可靠资源利用率按需申请,资源利用率高达99.9%技术支持专业团队一对一指导、QQ远程协助开发者《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.1.4云数据库是个性化数据存储需求的理想选择企业类型不同,对于存储的需求也千差万别,而云数据库可以很好地满足不同企业的个性化存储需求:•首先,云数据库可以满足大企业的海量数据存储需求•其次,云数据库可以满足中小企业的低成本数据存储需求•另外,云数据库可以满足企业动态变化的数据存储需求到底选择自建数据库还是选择云数据库,取决于企业自身的具体需求•对于一些大型企业,目前通常采用自建数据库•对于一些财力有限的中小企业而言,IT预算比较有限,云数据库这种前期零投入、后期免维护的数据库服务,可以很好满足它们的需求《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.1.5云数据库与其他数据库的关系•从数据模型的角度来说,云数据库并非一种全新的数据库技术,而只是以服务的方式提供数据库功能•云数据库并没有专属于自己的数据模型,云数据库所采用的数据模型可以是关系数据库所使用的关系模型(微软的SQLAzure云数据库、阿里云RDS都采用了关系模型),也可以是NoSQL数据库所使用的非关系模型(AmazonDynamo云数据库采用的是“键/值”存储)•同一个公司也可能提供采用不同数据模型的多种云数据库服务•许多公司在开发云数据库时,后端数据库都是直接使用现有的各种关系数据库或NoSQL数据库产品《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.2云数据库产品•6.2.1云数据库厂商概述•6.2.2Amazon的云数据库产品•6.2.3Google的云数据库产品•6.2.4Microsoft的云数据库产品•6.2.5其他云数据库产品《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.2.1云数据库厂商概述表6-3云数据库产品企业产品AmazonDynamo、SimpleDB、RDSGoogleGoogleCloudSQLMicrosoftMicrosoftSQLAzureOracleOracleCloudYahoo!PNUTSVerticaAnalyticDatabasev3.0fortheCloudEnerpriseDBPostgresPlusintheCloud阿里阿里云RDS百度百度云数据库腾讯腾讯云数据库《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.2.2Amazon的云数据库产品•Amazon是云数据库市场的先行者。Amazon除了提供著名的S3存储服务和EC2计算服务以外,还提供基于云的数据库服务SimpleDB和Dynamo•SimpleDB是Amazon公司开发的一个可供查询的分布式数据存储系统,AWS(AmazonWebService)上的第一个NoSQL数据库服务,集合了Amazon的大量AWS基础设施•SimpleDB采用了“键/值”存储,它主要是服务于那些不需要关系数据库的Web开发者•SimpleDB存在一些明显缺陷,比如存在单表限制、性能不稳定、只能支持最终一致性等•Dynamo吸收了SimpleDB以及其他NoSQL数据库设计思想的精华,旨在为要求更高的应用设计,这些应用要求可扩展的数据存储以及更高级的数据管理功能•DynamoDB使用固态硬盘,实现恒定、低延迟的读写时间,旨在扩展大容量同时维持一致的性能•AmazonRDS(AmazonRelationalDatabaseService)是Amazon开发的一种Web服务,它可以让用户在云环境中建立、操作关系型数据库(可以支持MySQL和Oracle等数据库)《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.2.3Google的云数据库产品•GoogleCloudSQL是谷歌公司推出的基于MySQL的云数据库•使用CloudSQL,所有的事务都在云中,并由谷歌管理,用户不需要配置或者排查错误•由于数据在谷歌多个数据中心中复制,因此它永远是可用的•谷歌还提供导入或导出服务,方便用户将数据库带进或带出云•谷歌使用用户非常熟悉的MySQL,带有JDBC支持(适用于基于Java的AppEngine应用)和DB-API支持(适用于基于Python的AppEngine应用)的传统MySQL数据库环境,因此,多数应用程序不需过多调试即可运行,数据格式对于大多数开发者和管理员来说也是非常熟悉的•GoogleCloudSQL还有一个好处就是与GoogleAppEngine集成《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.2.4Microsoft的云数据库产品SQLAzure具有以下特性:•属于关系型数据库:支持使用TSQL(TransactStructuredQueryLanguage)来管理、创建和操作云数据库•支持存储过程:它的数据类型、存储过程和传统的SQLServer具有很大的相似性,因此,应用可以在本地进行开发,然后部署到云平台上•支持大量数据类型:包含了几乎所有典型的SQLServer2008的数据类型•支持云中的事务:支持局部事务,但是不支持分布式事务SQLAzureFabricSQLserver实例管理服务数据库连接到位于另一台机器上的SQLAzureFabric连接到位于另一台机器上的SQLAzure管理服务SQLAzureFabric管理服务SQLAzureFabric管理服务SQLAzureFabric管理服务...SQLserver实例SQLserver实例SQLserver实例SQLServerVMSQLServerVMSQLServerVM图6-2SQLAzure的体系架构《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.3云数据库系统架构•6.3.1UMP系统概述•6.3.2UMP系统架构•6.3.3UMP系统功能《大数据技术原理与应用》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn6.3.1UMP系统概述总的来说,UMP系统架构设计遵循了以下原则:•保持单一的系统对外入口,并且为系统内部维护单一的资源池•消除单点故障,保证服务的高可用性•保证系统具有良好的可伸缩,能够动态地增加、删减计算与存储节点•保证分配给用户的资源也是弹性可伸缩的,资源之间相互隔离,确保应用和数据安全•UMP系统是低成本和高性能的MySQL云数据方案,关键模块采用Erlang语言实现。开发者通过网络从平台上申请MySQL实例资源,由平台提供的单一入口来访问数据•UMP系统把各种服务器资源划分为资源池,并以资源池为单位把资源分配给MySQL实例•系统中包含了一系列组件,这些组件协同工作,以对用户透明的形式提供主从热备、数据备份、