1 云数据库概述
(1)云计算是云数据库兴起的基础
- 云计算概念:通过整合、管理、调配分布在网络各处的计算资源,通过互联网以统一界面,同时向大量的用户提供服务。
- 云计算特点:超大规模计算、虚拟化、高可靠性和安全性、通用性、动态扩展性、按需服务、降低成本。
- 云计算应用场景:Google个人云服务;企业应用实例:Animoto、Amazon
(2)云数据库概念
云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
(3)云数据库的特性
- 动态可扩展
- 高可用性
- 较低的使用代价
- 易用性
- 高性能
- 免维护
- 安全
(4)云数据库是个性化数据存储需求的理想选择
企业类型不同,对于存储的需求也千差万别,而云数据库可以很好地满足不同企业的个性化存储需求:
- 首先,云数据库可以满足大企业的海量数据存储需求
- 其次,云数据库可以满足中小企业的低成本数据存储需求
- 另外,云数据库可以满足企业动态变化的数据存储需求
到底选择自建数据库还是选择云数据库,取决于企业自身的具体需求 :
- 对于一些大型企业,目前通常采用自建数据库
- 对于一些财力有限的中小企业而言,IT预算比较有限,云数据库这种前期零投入、后期免维护的数据库服务,可以很好满足它们的需求
(5)云数据库与其他数据库的关系
- 从数据模型的角度来说,云数据库并非一种全新的数据库技术,而只是以服务的方式提供数据库功能
- 云数据库并没有专属于自己的数据模型,云数据库所采用的数据模型可以是关系数据库所使用的关系模型(微软的SQL Azure云数据库、阿里云RDS都采用了关系模型),也可以是NoSQL数据库所使用的非关系模型(Amazon Dynamo云数据库采用的是“键/值”存储)
- 同一个公司也可能提供采用不同数据模型的多种云数据库服务
- 许多公司在开发云数据库时,后端数据库都是直接使用现有的各种关系数据库或NoSQL数据库产品
2 云数据库产品
(1)云数据库厂商概述
(2)Amazon的云数据库产品
Amazon是云数据库市场的先行者。Amazon除了提供著名的S3存储服务和EC2计算服务以外,还提供基于云的数据库服务:
- Amazon RDS:云中的关系数据库
- Amazon SimpleDB:云中的键值数据库
- Amazon DynamoDB:云中的NoSQL数据库
- Amazon Redshift:云中的数据仓库
- Amazon ElastiCache:云中的分布式内存缓存
(3)Google的云数据库产品
Google Cloud SQL是谷歌公司推出的基于MySQL的云数据库。
- 使用Cloud SQL,所有的事务都在云中,并由谷歌管理,用户不需要配置或者排查错误
- 谷歌还提供导入或导出服务,方便用户将数据库带进或带出云。
- 谷歌使用用户非常熟悉的MySQL,带有JDBC支持(适用于基于Java的App Engine应用)和DB-API支持(适用于基于Python的App Engine应用)的传统MySQL数据库环境,因此,多数应用程序不需过多调试即可运行,数据格式对于大多数开发者和管理员来说也是非常熟悉的
- Google Cloud SQL还有一个好处就是与Google App Engine集成
(4)Microsoft的云数据库产品
SQL Azure具有以下特性:
- 属于关系型数据库:支持使用TSQL(Transact Structured Query Language)来管理、创建和操作云数据库
- 支持存储过程:它的数据类型、存储过程和传统的SQL Server具有很大的相似性,因此,应用可以在本地进行开发,然后部署到云平台上
- 支持大量数据类型:包含了几乎所有典型的SQL Server 2008的数据类型
- 支持云中的事务:支持局部事务,但是不支持分布式事务
3 云数据库系统架构
3.1 UMP系统概述
UMP系统架构 UMP(Unified MySQL Platform)是由阿里集团核心系统数据库团队设计与实现的,提供低成本和高性能的MySQL云数据服务。
总的来说,UMP系统架构设计遵循了以下原则:
- 保持单一的系统对外入口,并且为系统内部维护单一的资源池
- 消除单点故障,保证服务的高可用性
- 保证系统具有良好的可伸缩,能够动态地增加、删减计算与存储节点
- 保证分配给用户的资源也是弹性可伸缩的,资源之间相互隔离,确保应用和数据安全
3.2 UMP系统架构
UMP系统中的角色包括:
- Controller服务器
- Proxy服务器
- Agent服务器
- Web控制台
- 日志分析服务器
- 信息统计服务器
- 愚公系统
依赖的开源组件包括:
- Mnesia
- LVS
- RabbitMQ
- ZooKeeper
3.3 UMP系统功能
UMP系统是构建在一个大的集群之上的,通过多个组件的协同作业,整个系统实现了对用户透明的各种功能:
- 容灾
- 读写分离
- 分库分表
- 资源管理
- 资源调度
- 资源隔离
- 数据安全
4 Amazon AWS和云数据库
亚马逊开创的云计算服务模式——把IT资源作为一种服务出租给美国中小企业。
- Amazon Web Services业务相当于紧随其后的4大竞争对手的总和
- 亚马逊在全球拥有12个区域性数据中心
- Amazon Web Services提供的多个亚马逊数据库都在与甲骨文(Oracle)激烈竞争,其中Amazon RDS有10万多个活跃用户
- 亚马逊数据库Aurora,是Amazon Web Services历史上增长最快的服务
总体而言,Amazon AWS的产品分为几个部分:
计算类:
- 弹性计算云EC2:EC2提供了云中的虚拟机
- 弹性MapReduce:将Hadoop MapReduce搬到云环境中,大量EC2实例动态地成为执行大规模MapReduce计算任务的工作机
存储类:
- 弹性块存储EBS
- 简单消息存储SQS
- Blob对象存储S3
- NoSQL型数据库:SimpleDB和DynamoDB
- 关系数据库RDS
工具支持:
- AWS支持多种开发语言,提供Java、Rupy、Python、PHP、Windows &.NET 以及Android和iOS的工具集
- 工具集中包含各种语言的SDK,程序自动部署以及各种管理工具
- AWS通过CloudWatch系统提供丰富的监控功能
其他相关笔记:
数据研发学习笔记4.1:大数据之概述与处理架构Hadoop
数据研发学习笔记4.2:大数据之分布式文件系统HDFS
数据研发学习笔记4.3:大数据之分布式数据库HBase
数据研发学习笔记4.4:大数据之NoSQL数据库
数据研发学习笔记4.5:大数据之云数据库
数据研发学习笔记4.6:大数据之MapReduce
数据研发学习笔记4.7:大数据之数据仓库Hive
数据研发学习笔记4.8:大数据之Spark
数据研发学习笔记4.9:流计算
数据研发学习笔记4.10:图计算
数据研发学习笔记4.11:大数据之数据可视化