云数据库
----云数据库相关知识及相关产品
在我们的课题研究中,多次听到云计算概念的提及。每个老师对云计算或相关技术的研究方向都是不同的,在此我们回顾下云计算。
云计算(Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算是在分布式处理、并行处理和网格计算等技术基础之上发展起来的,是一种新兴的共享基础架构的方法。它可以自我维护和管理庞大的虚拟计算资源(包括计算服务器、存储服务器、宽带资源等等),从而提供各种IT服务。
用户在使用云计算提供的服务时按需付费,这不仅降低了使用门槛,也极大地节省了开销。由于云计算存在着巨大的潜在市场,Google,IBM,Microsoft,Sun,Oracle百度,腾讯,等国际知名大公司都已经涉足云计算领域。
随着云计算技术的不断升温,它对各个技术领域的影响开始显现,其中比较典型的就包括数
据库领域。截止到2014年6月,传统的数据库厂商,比如Oracle, IBM,Microsoft等,都已经推出了基于云计算环境的相关数据库产品;原来没有从事数据库产品开发的知名大公司,比如Amazon和Google等,也发布了SimpleDB和BigTable等云数据库产品。
迅速发展的云数据库市场极大地影响着数据库技术的未来发展方向,甚至出现了关系数据库是否已经没落的争议。与此同时,许多云数据库的相关问题开始被关注,比如云数据库的体系架构、数据模型、事务一致性、数据安全和性能优化等等。由于云数据库是一个比较新的研究领域,目前还没有相关研究对这个领域进行全面详尽的的介绍。因此,本文将结合大量网络信息数据,对云数据库及其相关研究进行综合阐述
1 云数据库概述
云数据库是在SaaS(software-as-a-service:软件即服务)成为应用趋势的大背景下发展起来的云计算技术的应用,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易,同时也虚拟化了许多后端功能。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。可以说,云数据库是数据库技术的未来发展方向。
云数据库的产生:由于云计算技术的出现,对数据库领域影响极大,需要将数据库部署或虚拟化到云端以适应云技术的发展,但是目前应用的数据库,功能等方面出现很多问题制约云的发展,也就是不适应云,所以推动各大公司研发出适合部署到云端的数据库版本,这些数据库就是云数据库。所以说云数据库是适应大数据时代的自然产物。云数据库的基础功能与传统数据库基本一致,但是其效率,能力等方面要优于传统数据库。
目前中小型企业大多会选择使用云数据库平台商提供的云数据库服务,相对于传统数据,花费小,效率高,安全性高,服务好。大型企业大多会选择建立自己的私有数据库服务器。
下面是云数据库的示意图
如图1所示,在云数据库应用中,客户端不需要了解云数据库的底层细节,所有的底层硬件都已经被虚拟化,对客户端而言是透明的。它就像在使用一个运行在单一服务器上的数据库一样,非常方便容易,同时又可以获得理论上近乎无限的存储和处理能力
云数据库比传统数据库优越在哪里呢?通过云数据库的特性我们可以全面了解。
1.1云数据库的特性
云数据库具有以下特性:
(1) 动态可扩展:理论上,云数据库具有无限可扩展性,可以满足不断增加的数据存储需求。在面对不断变化的条件时,云数据库可以表现出很好的弹性。例如:对于一个从事产品零售的电子商务公司,会存在季节性或突发性的产品需求变化,双十一活动,这时,就可以分配额外的数据库存储资源来处理增加的需求,这个过程只需要几分钟。一旦需求过去以后,就可以立即释放这些资源。
(2) 高可用性:不存在单点失效问题。如果一个节点失效了,剩余的节点就会接管未完成的事务。而且在云数据库中,数据通常是复制的,在地理上也是分布的。诸如Google,Amazon和IBM等大型云计算供应商具有分布在世界范围内的数据中心,通过在不同地理区间内进行数据复制,可以提供高水平的容错能力。例如,Amazon SimpleDB会在不同的区间内进行数据复制,因此,即使整个区域内的云设施发生失效,也能保证数据继续可用。
(3) 较低的使用代价:通常采用多租户(multi-tenancy)的形式,这种共享资源的形式对于用户
而言可以节省开销;而且用户采用按需付费的方式使用云计算环境中的各种软、硬件资源,不会产生不必要的资源浪费。另外,云数据库底层存储通常采用大量廉价的商业服务器,这也大大降低了用户开销。
(4) 易用性:使用云数据库的用户不用控制运行原始数据库的机器,也不必了解它身在何处。用户只需要一个有效地链接字符串就可以开始使用云数据库。
(5) 大规模并行处理:支持几乎实时的面向用户的应用、科学应用和新类型的商务解决方案
1.2云数据库是海量存储需求的必然选择
云数据库在当前数据爆炸的时代具有广阔的应用前景。根据IDC的研究报告,在未来的5年中,企业对结构化数据的存储需求会每年增加20%左右,而对非结构化数据的存储需求将会每年增加60%左右。在小规模应用的情况下,系统负载的变化可以由系统空闲的多余资源来处理;但是在大规模应用的情况下,不仅存在海量的数据存储需求,而且应用对资源的需求也是动态变化的,这意味着大量虚拟机器的增加或减少。对于这种情形,传统的关系数据库已经无法满足要求,云数据库成为必然的选择。换句话说,海量存储催生了云数据库。
1.3云数据库与传统的分布式数据库
分布式数据库是计算机网络环境中各场地或节点上的数据库的逻辑集合。逻辑上它们属于同一系统,而物理上它们分散在用计算机网络连接的多个节点,并统一由一个分布式数据库管理系统管理。 分布式数据库已经存在很多年,它可以用来管理大量的分布存储的数据,并且通常采用非共享的体系架构。云数据库和传统的分布式数据库有着相似的地方,比如,都把数据存放到不同的节点上。但是,分布式数据库在可扩展性方面是无法和云数据库相比的。由于需要考虑数据同步和分区失败等开销,前者随着节点的增加,会导致性能快速下降。而后者则具有很好的可扩展性,因为后者在设计的时候就已经避免了许多会影响到可扩展性的因素,比如采用更加简单的数据模型、对元数据和应用数据进行分离以及放松对一致性的要求等等。另外,在使用方式上,云数据库也不同于传统的分布式数据库。云数据库通常采用多租户模式,即多个租户共用一个实例,租户的数据既有隔离又有共享,从而解决数据存储的问题,同时也降低了用户使用数据库的成本。
1.4云数据库的影响
云数据库的影响主要体现在以下几个方面:
(1) 极大地改变企业管理数据的方式。著名分析师Yuhanna指出,18%的企业正在把目光投向云数据库。对于中小企业而言,云数据库可以允许他们在Web上快速搭建各类数据库应用,越来越多的本地数据和服务将逐渐被转移到云中。企业用户可以在任意地点通过简单的终端设备,就可以对企业数据进行全面管理。此外,云数据库可以很好地支持企业开展一些短期项目,降低开销,而不需要企业为某个项目单独建立昂贵的数据中心。但是,云数据库的成熟仍然需要一段时间。中小企业会更多地采用云数据库产品,但是对于大企业而言,云数据库并非首选,因为大企业通常自己建造数据中心。
(2) 催生新一代的数据库技术。IDC的数据库分析师Olofson认为,云模型提供了无限的处理能力以及大量的RAM(随机存取存储器),因此,云模型将会极大改变数据库的设计方式,将会出现第三代数据库技术。第一代是20世纪70年代的早期关系数据库,第二代是80到90年代的更加先进的关系模型。第三代的数据库技术,要求数据库能够灵活处理各种类型的数据,而不是强制让数据去适应预先定制的数据结构。事实上,从目前云数据库产品中的数据模型设计方式来看,已经有些产品(比如SimpleDB,Hbase,Dynamo,BigTable)放弃传统的行存储方式,而采用键/值存储,从而可以在分布式的云环境中获得更好的性能。可以预期的是,云数据库将会吸引越来越多的学术界的目光,该领域的相关问题也将
成为未来一段时间内数据库研究的重点内容,比如云数据库的体系架构和数据模型等等。
(3) 数据库市场份额面临重新分配。在过去的几十年里,数据库市场一直被诸如Oracle,IBM DB2, Microsoft SQL Server,Sybase(洒)等传统数据库厂商所垄断。随着云数据库的出现和不断发展,市场将面临重新洗牌。首先,Amazon和Google等原本并不从事数据库业务的国际知名企业,也乘着云计算的东风,开发了云中的数据库产品,加入这场新兴市场的角逐。实际上,对于云数据库市场而言,Amazon SimpleDB和Google BigTable这类产品扮演了引领者的角,传统的数据库厂商已然成为跟进者;其次,一些新的云数据库厂商开始出现,并且推出了具有影响力的产品,比如Vertica的Analytic Database for the Cloud和EnterpriseDB的Postgres Plus in the Cloud。因此,数据库市场份额的重新分配不可避免
2 云数据库产品
云数据库供应商主要分为3云数据库服务类:
• 传统的数据库厂商: Oracle,IBM DB2和Microsoft SQL Server,Teradata;
• 涉足数据库市场的云供应商:Amazon,Google和Yahoo;
• 新兴小公司:Vertica(被惠普收购),LongJump和EnterpriseDB。
就目前阶段而言,虽然一些云数据库产品,如Google BigTable,SimpleDB和HBase,在一定程度上实现了对于海量数据的管理,但是这些系统暂时还不完善,只是“云数据库”的雏形。让这些系统支持更加丰富的操作以及更加完善的数据管理功能(比如复杂查询和事务处理)以满足更加丰富的应用,仍然需要研究人员的不断努力。
表1给出了目前市场上常见的云数据库产品,对于其中一些主要产品,下面我们会作简要介绍
2.1 Amazon 的SimpleDB
SimpleDB是Amazon 提供的简单数据库服务,主要用于存储结构化数据,并为数据提供查、删除等基本的服务,其具体的实现细节Amazon 没有公开。由于Amazon 主要是提供商业性的服务,使用其服务需要一个Amazon 的帐户,那么一个用户帐户就相当于全集,而具体的数据则相当于子集。由于SimpleDB简单的数据存储方式,其所有的数据都是以字符串形式存储,导致其采取词典顺序进行查询,数据操作很不方便。
2.2 Google 的BigTable
BigTable是Google 基于GFS (Google File System)和Chubby 开发的分布式存储系统。BigTable 是非关系型数据库,是一个稀疏的、分布式、持久化存储的多维度排序表。它采用行键(row key)、列键(column key)和时间戳(timestamp)对表进行索引。表中的每个值都是未经解释的字节数组。BigTable 在行键上根据字典顺序对数据进行维护,并且一张表的行键也是其划分行区间,进行Split 和负载均衡的依据。其设计目的是可靠地处理PB 级的数据,并且能够部署到上千台机器上。BigTable 已经实现了下面的几个目标:适用性广泛、可扩展、高性能和高可用性。BigTable已经在多个Google 的新产品和项目中得到了应
用,如Google Analytics 和Google Earth 等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论