编辑: cyhzg | 2019-07-10 |
edu.cn 厦门大学计算机科学系 2017年2月版本 林子雨 厦门大学计算机科学系 E-mail: [email protected] 主页:http://www.cs.xmu.edu.cn/linziyu 第6章 云数据库 (PPT版本号:2017年2月版本) http://dblab.xmu.edu.cn/post/bigdata 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 《大数据技术原理与应用(第2版)》 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 本章配套教学视频 http://dblab.xmu.edu.cn/post/bigdata-online-course/#lesson6 《大数据技术原理与应用(第2版)》 《第6章 云数据库》在线视频观看地址 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 提纲 ? 6.1 云数据库概述 ? 6.2 云数据库产品 ? 6.3 云数据库系统架构 ? 6.4 Amazon AWS和云数据库 ? 6.5 微软云数据库SQL Azure ? 6.6 云数据库实践 欢迎访问《大数据技术原理与应用》教材官方网站: http://dblab.xmu.edu.cn/post/bigdata 本PPT是如下教材的配套讲义: 《大数据技术原理与应用 ――概念、存储、处理、分析与应用》 (2017年2月第2版) ISBN:978-7-115-44330-4 厦门大学 林子雨 编著,人民邮电出版社 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.1 云数据库概述 ? 6.1.1 云计算是云数据库兴起的基础 ? 6.1.2 云数据库概念 ? 6.1.3 云数据库的特性 ? 6.1.4 云数据库是个性化数据存储需求的理想选择 ? 6.1.5 云数据库与其他数据库的关系 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.1.1云计算是云数据库兴起的基础 ?通过整合、管理、调配分布 在网络各处的计算资源,通过 互联网以统一界面,同时向大 量的用户提供服务 云计算概念 云计算特点 ?超大规模计算、虚拟化、高 可靠性和安全性、通用性、动 态扩展性、按需服务、降低成 本 云计算应用场景 ?Google个人云服务 ?企业应用实例:Animoto ?Amazon 云计算示意图 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.1.2云数据库概念 云数据库是部署和虚拟化在云计算环境中的数据库.云数据库是在云计算的大背景 下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力 ,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易.云数据库 具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点. 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.1.3云数据库的特性 云数据库具有以下特性: (1)动态可扩展 (2)高可用性 (3)较低的使用代价 (4)易用性 (5)高性能 (6)免维护 (7)安全 表6-2 腾讯云数据库和自建数据库的比较 自建数据库 腾讯云数据库 数据安全性 开发者自行解 决,成本高昂 15种类型备份数据 ,保证数据安全 服务可用性 99.99%高可靠性 数据备份 0花费,系统自动 多时间点数据备份 维护成本 0成本,专业团队 7x24小时帮助维护 实例扩容 一键式直接扩容, 安全可靠 资源利用率 按需申请,资源利 用率高达99.9% 技术支持 专业团队一对一指 导、QQ远程协助 开发者 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.1.4 云数据库是个性化数据存储需求的理想选择 企业类型不同,对于存储的需求也千差万别,而云数据库可以很好地满 足不同企业的个性化存储需求: ?首先,云数据库可以满足大企业的海量数据存储需求 ?其次,云数据库可以满足中小企业的低成本数据存储需求 ?另外,云数据库可以满足企业动态变化的数据存储需求 到底选择自建数据库还是选择云数据库,取决于企业自身的具体需求 ?对于一些大型企业,目前通常采用自建数据库 ?对于一些财力有限的中小企业而言,IT预算比较有限,云数据库这种 前期零投入、后期免维护的数据库服务,可以很好满足它们的需求 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.1.5云数据库与其他数据库的关系 ?从数据模型的角度来说,云数据库并非一种全新的数据库技术,而只是以服 务的方式提供数据库功能 ?云数据库并没有专属于自己的数据模型,云数据库所采用的数据模型可以是 关系数据库所使用的关系模型(微软的SQL Azure云数据库、阿里云RDS都 采用了关系模型),也可以是NoSQL数据库所使用的非关系模型(Amazon Dynamo云数据库采用的是 键/值 存储) ?同一个公司也可能提供采用不同数据模型的多种云数据库服务 ?许多公司在开发云数据库时,后端数据库都是直接使用现有的各种关系数据 库或NoSQL数据库产品 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.2 云数据库产品 ? 6.2.1 云数据库厂商概述 ? 6.2.2 Amazon的云数据库产品 ? 6.2.3 Google的云数据库产品 ? 6.2.4 Microsoft的云数据库产品 ? 6.2.5 其他云数据库产品 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.2.1云数据库厂商概述 表6-3 云数据库产品 企业 产品 Amazon Dynamo、SimpleDB、RDS Google Google Cloud SQL Microsoft Microsoft SQL Azure Oracle Oracle Cloud Yahoo! PNUTS Vertica Analytic Database v3.0 for the Cloud EnerpriseDB Postgres Plus in the Cloud 阿里 阿里云RDS 百度 百度云数据库 腾讯 腾讯云数据库 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.2.2Amazon的云数据库产品 Amazon是云数据库市场的先行者.Amazon除了提供著名的S3 存储服务和EC2计算服务以外,还提供基于云的数据库服务: ?Amazon RDS:云中的关系数据库 ?Amazon SimpleDB:云中的键值数据库 ?Amazon DynamoDB:云中的NoSQL数据库 ?Amazon Redshift:云中的数据仓库 ?Amazon ElastiCache:云中的分布式内存缓存 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.2.3Google的云数据库产品 ?Google Cloud SQL是谷歌公司推出的基于MySQL的云数据库 ?使用Cloud SQL,所有的事务都在云中,并由谷歌管理,用户不需要配 置或者排查错误 ?谷歌还提供导入或导出服务,方便用户将数据库带进或带出云 ?谷歌使用用户非常熟悉的MySQL,带有JDBC支持(适用于基于Java 的App Engine应用)和DB-API支持(适用于基于Python的App Engine 应用)的传统MySQL数据库环境,因此,多数应用程序不需过多调试即 可运行,数据格式对于大多数开发者和管理员来说也是非常熟悉的 ?Google Cloud SQL还有一个好处就是与Google App Engine集成 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.2.4Microsoft的云数据库产品 SQL Azure具有以下特性: ?属于关系型数据库:支持使用TSQL(Transact Structured Query Language)来管理、创建和操作云数据库 ?支持存储过程:它的数据类型、存储过程和传统的SQL Server具有 很大的相似性,因此,应用可以在本地进行开发,然后部署到云平 台上 ?支持大量数据类型:包含了几乎所有典型的SQL Server 2008的数 据类型 ?支持云中的事务:支持局部事务,但是不支持分布式事务 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3 云数据库系统架构 ? 6.3.1 UMP系统概述 ? 6.3.2 UMP系统架构 ? 6.3.3 UMP系统功能 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.1UMP系统概述 总的来说,UMP系统架构设计遵循了以下原则: ?保持单一的系统对外入口,并且为系统内部维护单一的资源池 ?消除单点故障,保证服务的高可用性 ?保证系统具有良好的可伸缩,能够动态地增加、删减计算与存储节点 ?保证分配给用户的资源也是弹性可伸缩的,资源之间相互隔离,确保 应用和数据安全 ?UMP系统是低成本和高性能的MySQL云数据库方案 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 UMP系统中的角 色包括: ?Controller服务器 ?Proxy服务器 ?Agent服务器 ?Web控制台 ?日志分析服务器 ?信息统计服务器 ?愚公系统 依赖的开源组件 包括: ?Mnesia ?LVS ?RabbitMQ ?ZooKeeper 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 1. Mnesia ?Mnesia是一个分布式数据库管理系统 ?Mnesia支持事务,支持透明的数据分片,利用两阶段锁实现分布式事 务,可以线性扩展到至少50个节点 ?Mnesia的数据库模式(schema)可在运行时动态重配置,表能被迁移或 复制到多个节点来改进容错性 ?Mnesia的这些特性,使其在开发云数据库时被用来提供分布式数据库 服务 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 2. RabbitMQ ?RabbitMQ是一个工业级的消息队列产品(功能类似于IBM公司的消息队列产品 IBM Websphere MQ),作为消息传输中间件来使用,可以实现可靠的消息传 送?UMP集群中各个节点之间的通信,不需要建立专门的连接,都是通过读写队列 消息来实现的 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 3. Zookeeper 在UMP系统中,Zookeeper主要发挥三个作用: ?作为全局的配置服务器 ?提供分布式锁(选出一个集群的 总管 ) ?监控所有MySQL实例 Zookeeper是高效和可靠的协同工作系统,提供分布式锁之类的基本服 务(比如统一命名服务、状态同步服务、集群管理、分布式应用配置项 的管理等),用于构建分布式应用,减轻分布式应用程序所承担的协调 任务 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 4.LVS ?LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群 系统 ?UMP系统借助于LVS来实现集群内部的负载均衡 ?LVS集群采用IP负载均衡技术和基于内容请求分发技术 ?调度器是LVS集群系统的唯一入口点,调度器具有很好的吞吐率,将请 求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故 障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器 ?整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器 端的程序 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 5. Controller服务器 ?Controller服务器向UMP集群提供各种管理服务,实现集群成员管 理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容 等功能 ?Controller服务器上运行了一组Mnesia分布式数据库服务,其中存 储了各种系统元数据,主要包括集群成员、用户的配置和状态信息 ,以及用户名到后端MySQL实例地址的映射关系(或称为 路由表 )等 ?当其它服务器组件需要获取用户数据时,可以向Controller服务器 发送请求获取数据 ?为了避免单点故障,保证系统的高可用性,UMP系统中部署了多 台Controller服务器,然后,由Zookeeper的分布式锁功能来帮助选 出一个 总管 ,负责各种系统任务的调度和监控 《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 [email protected] 6.3.2UMP系统架构 6. Web控制台 Web控制台向用户提供系统管理界面 7. Proxy服务器 Proxy服务器向用户提供访问MySQL数据库的服务,它完全实现了 MySQL协议,用户可以使用已有的MySQL客户端连接到Proxy服务器, Proxy服务器通过用........