专业支持:(0512) 63016160 / 销售热线:(0512)63016068
当前在线: 288 今日上线: 1384 今日新增: 3

云中的数据库---天堂还是地狱?

文章来源:  中国云计算 发布时间: 2009年09月02日   浏览: 1339   作者:中国云计算
最近影响我们开发和部署服务以及应用最前沿的技术要数云计算了,数据库技术也发展得很快,也出现了一些新的计算模型,因此如何正确选择数据库技术以满足新的需求也成为了大家讨论的话题。

  云是一种弹性计算和数据存储引擎、虚拟的网络服务器、存储设备和其它计算机资源,它的主要意义在于按需计算、效用计算、分时计算、高性能网络和网格计算。分时计算早在40年前就出现了,当时是按需计算和按使用的存储和应用进行付费。最近由Ian Foster和Carl Kesselman提出的网格计算使得通过服务模型建立大型计算机成为可能。与分时计算和网格计算类似,云计算往往需要持续的存储空间,开源项目和商业公司都已经提出了自己的数据存储和数据库方案。

  公共云

  可以托管应用和数据库的商业公司提供的软件即服务(SaaS)、平台即服务(PaaS)、基础架构即服务(IaaS)和数据库即服务(DaaS)。基础架构提供商包括亚马逊的弹性计算云EC2、GoGrid、Rackspace Mosso和Joyent,而微软的Azure、Google AppEngine、Force.com、Zoho和Facebook则是平台提供商,也有一些针对特定用户的云服务提供商,如惠普的云打印服务,IBM的LotusLive为企业提供的协作和社交网络服务。其它SaaS提供商如Birst和SAS提供按需商务智能服务,Salesforce.com和Zoho提供客户关系管理(CRM),Epicor、 NetSuite、SAP Business ByDesign和Workday提供企业资源规划(ERP)套件,DaaS提供商包括EnterpriseDB、FathomDB、 Longjump和TrackVia。

  私有云

  和服务器整合,集群和虚拟化类似,私有云是数据中心和网格技术的另一个进化结果,Gartner研究报告称政府将会拥有最大的私有云,但那些有成千上万的服务器以及大型存储需求的任何一个组织都可能建立起自己的私有云。安全性和可靠性是有能力建设私有云的大型企业考虑得最多的事情。公共云计算提供不了99.99%的正常运行时间,但这却是企业数据中心管理人员最希望在服务协议中看到的条款。而位于防火墙后面的私有云降低了在云中暴露数据的风险,也降低了在多租赁云环境中数据保护的担心,私有云相对公共云的一个问题是调用云服务时需要多个API,急需标准出台,假设亚马逊的API成为事实上的一种标准,那么它开发的私有云软件将与亚马逊的EC2 API保持良好的兼容性。

  在评估云中的数据库解决方案时,需要考虑多个方面的内容:

  1、 首先需要考虑应用程序服务的类型:

  商业智能(BI),电子商务交易,知识库,协作等。

  2、 其次,你必须确定是适合采用公共云还是适合采用私有云。

  3、 第三必须考虑是否易于开发。

  当然,预算不能忽视。

  什么系统将会运行在云上?

  有些组织利用云提供商作为其关键应用或数据库的备份,而不是将云作为主要的选择,oracle用户可以使用亚马逊的简化存储系统(S3)为oracle数据库备份,云计算可以作为一个灾难恢复选择。

  纽约时报创建了时间机器项目,它是一个网上查阅数字档案的系统,它是一个云计算项目很好的例子,除了提供按需计算外,它的主要目标是托管长期运行的应用,特别是数据库应用。

  云用户往往希望以一种伸缩性好,按需提供服务的架构部署应用和数据库,使用云服务的常见用户是创业型公司和以项目为生的用户,他们希望在基础设施方面减少投资。但亚马逊的公共云也被用于支持电子商务网站,如NetFlix.com,eHarmony.com和Target.com。电子邮件是一个现代化企业的骨干,如波士顿凯尔特人队就将电子邮件和协作应用放到云上了。企业也可以选择使用云托管ERP或CRM套件,如开源的ERP套件(Compiere,Openbravo,SugarCRM)和BI解决方案(Jasper,Pentaho),由于数据仓库使用来自业务系统的源数据,因此组织也可能使用云托管业务数据库。

  在现收现付的基础上,云按需处理配置,主机、IP地址和磁盘阵列不是永久地分配,但公共云上的数据库可以被永久地存储,这样可以避免在发生火灾时批量加载数据库,但在多租赁存储情况时,数据库的安全就需要着重考虑了。

  云特别适合处理大型数据集和计算密集型应用,这些都受益于并行处理,如提供视频和数据分析。亚马逊EC2的早期用户,包括生物医学研究机构,医药,生物工程和金融机构,他们早期采用的是网格计算,如金融建模,药物发现和其它研究,医学研究往往需要大量的模拟遗传测序和分子间的相互作用,之前已经使用网格技术搭建起来了,常用的程序是基础本地对准搜索工具(BLAST),最近也开始使用云了,研究人员还使用MapReduce软件在云中进行基因分析。Eli Lilly使用亚马逊EC2处理生物信息学序列信息。

  云计算也可由于其它目的,如将SaaS和企业系统进行集成。商务智能(BI)活动,如分析,数据仓库和数据挖掘,要求的支出要中小企业望而却步。云计算提供了一个吸引力,因为商务智能可以按需使用,按使用情况进行收费了。

  云计算和商务智能结合有多种手段,一种选择是将数据和应用托管到SaaS提供商,另一种选择是创建一个云计算基础设施环境,第三种办法是两者都做,使用数据复制或数据集成套件。

PaaS,公共云和私有云

  平台即服务(PaaS)解决方案将开发工具和数据存储打包到一起,但用户可以选择一个基础设施提供商或是建立自己的私有云使数据存储或数据库满足应用和预算的需要,有开源和商业化的产品可以选择,从简单的可扩展数据存储,到功能强大的处理复杂查询和交易的平台。

  云计算中的数据库,数据存储和数据访问软件必须是经过评估及适合于公共云,又适合于私有云,同时提供一流应用支持的产品。例如,亚马逊的Dynamo用于构建一个值得信赖的环境,没有身份验证和授权要求,环境是否支持多租户或多实例应用程序也会影响数据库的决定。

  数据库和数据存储

  云中的数据库选择包括单一格式数据存储,文档数据库,列数据存储,语义数据存储,联合数据库和对象关系数据库,后者包括IBM瑞士军刀服务器,微软,OpenLink和oracle,它们处理SQL表,XML文档,RDF和用户定义的类型。

  构建一个PB大小的搜索引擎和处理命令或映射无线网络有很大不同,应用程序的需求和数据存储任务有很大不同,对于托管到云中的新应用程序,开发人员主要看几个数据存储类:

  1、 SQL/XML(对象关系)数据库

  2、 列数据存储

  3、 分布式散列表(DHT),简单的键值存储

  4、 元组空间变异,内存数据库,实体属性值存储和其他非SQL数据库具有的功能,如过滤、排序、范围查询和事务等。

  了解应用程序对伸缩性、负载均衡、一致性、数据完整性、事务支持和安全的需要非常重要,对于非常大的数据集可伸缩性是云计算必需具备的特性。

  关联数组、字典、哈希表、环和元组空间已经出现了几年,和实体属性值存储,数据库分区和联合数据库一样,但是云计算侧重于可扩展性和负载均衡,跨多个服务器分布数据,

  元组空间是一个分布式内存共享解决方案,包括对象空间,JavaSpaces,GigaSpaces,LinuxTuples,IBM TSpaces和PyLinda。你可以在亚马逊的EC2上找到GigaSpaces极限应用平台,它包括一个本地和分布式Jini事务管理器,Java事务API(JTA),JDBC支持,B叉树和基于散列的索引功能,亚马逊的SimpleDB也提供了标准的元组空间接口,但添加了二级索引,支持传统的查询操作。

  对于大型数据集和数据库,分区数据已经成为并行查询处理和负载均衡的得力助手,水平分区已经受到建立TB级云数据库的开发商们的注意,因为在亚马逊,Digg,易趣,Facebook,Flickr,Friendster,Skype和Youtube上都已经成功了。

  SQLAlchemy和Hibernate分片,Python和Java对象关系映射器提供的分片功能对云数据库设计很有用。Google开发的Hibernate分片用于将数据推送给Hibernate项目之前进行分组,可以使用SQLAlchemy或Hibernate手动为Google AppEngine进行分片,也可以使用云数据存储,如MongoDB,它提供手动创建分片的管理命令。

  分布式哈希表和key-value数据存储

  分布式哈希表和key-value存储是构建可伸缩的,负载均衡的应用程序的工具,不强制执行数据完整性、一致性、和原子持久性检查,它们有限地支持应用做即席查询和复杂分析处理。这样的产品包括memcached, MemcacheDB, Project Voldemort, Scalaris, and Tokyo Cabinet。

  Memcached使用得非常普遍,广泛用于数据库驱动的网站缓存解决方案,他是一个巨大的关联数组,使用GET或PUT功能访问,用一个键值标识数据的唯一性。对于缓存查询代价高的SQL语句返回的信息特别有用,如数量和总计。MemcacheDB是一个分布式key-value数据存储,符合memcached协议,但使用了Berkeley数据库进行数据持久化存储。

  Scalaris是一个分布式key-value存储,它是用ErLang实现的,它为事务实现了无阻塞提交协议,使用Web接口,你可以读写key-value值,每个操作都是一个原子事务。使用Java可以执行更复杂的事务。Scalaris具有很强的一致性,支持对称复制,但没有持久性存储。

  开源的Tokyo Cabinet数据库key-value存储目前在网上很多社区讨论得火热,它的速度快得惊人,使用哈希表引擎存储1百万条记录只需要0.7秒,使用B叉树引擎时也只需要1.6秒。数据模型是每个键都有一个值,它支持LZW压缩,当键排好序后,可以进行前缀和范围匹配,在处理事务时,它可以在写入日志和影式分页之前写入。

  Tokyo Tyrant是 Tokyo Cabinet的一个数据库服务器版本,它主要用于高容量应用中缓存SQL数据库。

  有些产品支持基于键范围的查询,但即席查询操作和总计操作(求和,平均数和分组)需要编程实现,因为没有内置这些功能。

Hadoop MapReduce

  应该为Hadoop MapReduce在超大型数据集并行处理方面做出的贡献颁发一个奥斯卡奖,它由来自Google,雅虎,微软和Facebook的开发人员在社区开发模式下完成的,开源的Hadoop可以从Apache网站下载,商业化版本可以从CloudEra获得,亚马逊也提供了一个基于Hadoop的Elastic MapReduce服务。

  MapReduce运行在Hadoop分布式文件系统(HDFS)上,分片文件和数据都以key-value方式存储,HDFS开启了多主机数据分区功能,可以有效减少并行处理批处理任务花费的时间。MapReduce非常适合处理大型数据集,如为搜索引擎建立索引或数据挖掘,但不适合用于在线应用,因为在线应用要求的响应时间非常低。在Hadoop上构建的框架,如Hive和Pig,对从数据库为Hadoop处理提取信息非常有用。eHarmony.com就是Oracle数据库和亚马逊MapReduce结合使用的例子,利用后者对数以百万计的用户进行分析。

  实体-属性-值存储

  实体-属性-值存储(Entity-Attribute-Value ,简称EAV)源于数据库管理技术中的关系模型,它们不具备完整的SQL数据库功能,如基于非程序性和陈述性查询语言的查询模型,它们也不仅仅是一个简单的key-value数据存储,EAV数据存储主要包括亚马逊的SimpleDB,Google AppEngine 数据库和微软的SQL数据服务。

  Google BigTable使用分布式文件系统,它可以在数千台服务器上存储非常大的数据集(PB大小),它基于Google AppEngine数据库,Google自身也在使用它,和MapReduce一起,为网页和应用如Google地球建立索引,BigTable是一个需要大量分析的项目解决方案,如10亿网页和47.8亿URL。对那些寻求BigTable开源替代方案的人而言,可以采用Hadoop,Hypertable和HBase。Hypertable运行在分布式文件系统(如HDFS)上。HBase数据通过表、行和多值列进行组织的,它有一个集成式接口扫描行的范围。Hypertable是用C++实现的,而HBase是用Java实现的。

  Google AppEngine包括一个灵活的数据存储,它专门为读操作进行了优化,支持原子事务和一致性,可以和属性一起存储实体。它允许根据键和属性过滤和排序,内置21个数据类型,包括list,blob,postal address和geographical point。应用程序可以定义实体组作为执行事务更新的基础。访问Google AppEngine数据库有编程接口,可以使用Python查询对象。数据库也是可编程的,可使用Java数据对象(JDO)和Java持久性API。虽然AppEngine捆绑了一个数据存储,AppScale项目提供了一个软件操作其它数据存储,如HBasem,Hypertable,MongoDB和MySQL。

  亚马逊平台

  亚马逊SimpleDB是灵活的,基于ErLang实现的,适合于高可用应用的最终一致性数据存储套件,数据模型提供了大项目收集域,实际上是包含了key-value值的属性的哈希表,属性可以有多个值,而且不需要联合,查询语言提供查询返回一个项目名、所有的属性、属性数量以及属性列表。数据是以单个格式(无类型字符串)存储的,不应用约束,因此要得到准确的查询结果,你必须将数据按规定格式存储,例如使用0或ISO 8601:2004日期格式填充数字。

  Azure服务平台

  微软的Windows Azure和Google AppEngine以及Froce.com一样,提供了一个云计算平台,其中包括数据存储和其他应用开发特性。微软.NET服务提供了一个服务总线和认证,Live服务就是通过搭积木的方式构建的应用。微软在Azure云中也提供了SharePoint服务和Dynamics CRM服务。和亚马逊的S2和EC2类似,使用Azure服务平台的通信是基于Web Service模型的,但同时支持SOAP和REST。微软Azure捆绑了SQL数据服务(SDS),通过ADO.NET数据服务将Azure表存储进行暴露。目前该数据库仅提供了一个单一SQL Server实例,并限制了存储空间最大为10GB。对于更大的需求,必须使用分区进行水平分割。

  对于那些使用了很长时间的工业标准数据库的人,需要适应新的EAV存储,最大的不同是EAV缺乏强大的类型,SimpleDB使用字符串值存储一切,因此进行比较和排序时需要你用0进行位数补齐。微软的SQL数据服务提供Base64,布尔,日期时间小数和字符串等类型,Google AppEngine内置了20多个类型,比SimpleDB和SQL数据服务都要多。

  RDF和语义数据存储

  社交网络和电子商务已经向我们表明了许多网络应用必须使用大规模数据存储,支持上百万的用户并发访问,云计算通常被吹捧为解决这一问题最佳办法,并提出了Web 3.0的概念。数据存储可以处理非常大的知识库和数据集编码,使用W3C资源描述格式(RDF)和W3C SPARQL查询语言传递语义。RDF数据是按照主题-谓词-对象三元组进行存储的,重要的RDF数据还存储了额外的信息,如版本信息,临时查询信息等。

  Sesame, Jena, and Mulgara是开源的解决方案,OpenLink Virtuoso是一个万能服务器,最近的基准测试达到了110500三元组/秒,除了SQL和XML数据库外,它还提供了在线备份亚马逊S3和安装RDFizer盒子的功能。Franz AllegroGraph RDFStore提供了一种手段在云中构建基于RDF的联合知识库存储,它支持SPARQL查询,Prolog语言和RDFS + +分析。在亚马逊EC2上,它使用10个大型EC2实例花了6.19小时存储和索引了10亿三元组数据集。可以存储RDF三元组的SQL/XML产品包括Oracle 11g,IBM Boca for DB2。在专利方面,微软一直在想办法存储RDF三元组,以及将SPARGL转换成SQL。

  文档存储和列存储

  按列存储数据虽然没有颠覆传统的按行存储数据的理论,但结合数据压缩,无共享,大规模并行处理架构时,它可以保持高性能做应用分析和商务智能处理,在云计算服务中使用Sybase IQ或Vertica列存储,组织可以在保持服务器硬件不变的情况下增强BI能力,Sybase IQ处理复杂的分析查询,加速报告处理,包括为字符串处理建立索引,如SQL LIKE查询,它通过标准数据访问API提供连接,它的Rcube方案相对普通关系数据仓库和数据集市提供了性能上的优势。Vertica分析数据库支持网格架构,TB级大小的数据库,基于标准的连接,亚马逊EC2用户可以即付即用,有一个大型AMI实例,ODBC,JDBC,Python和Ruby驱动,数据库大小每节点可以达到1TB,节点数量可以无限制增加。

  Apache CouchDB是一个灵活的,具有容错功能的数据存储,它支持JavaScript对象标记(JSON)和AtomPub数据格式,它为读取和更新命名文档提供REST风格的API。为了确保数据一致性,它具有ACID属性,不会覆盖提交的数据,它使用一个文档ID和序列号写入B叉树索引,并依靠序列号提供生成文档版本的功能。CouchDB提供了一个基于对等的分布式数据库解决方案,支持双向复制。

SQL/XML数据库

  批评家认为SQL数据库是个幸存者,SQL应该消亡,其它还包括面向对象编程(OOP),联机分析处理(OLAP),互联网计算和WWW,有些人认为SQL平台对于大型负载和数据量提供的可扩展性远远不足,UPS的物流系统中央数据库每小时要处理5900万个事务,它有一张表的记录超过了420亿,每小时的峰值负载是10亿SQL语句,它们的数据库采用的是IBM DB2。eBay的数据仓库运行在Teradata系统上,大约有5PB数据。LGR电话通话记录信息达到了310TB,采用的是Oracle数据仓库,在最近的一次会议上,微软报告Hotmail已经达到了3亿用户,每天要处理超过20亿封非垃圾邮件,数据库采用的是SQL Server服务器农场。

  SQL/XML数据库平台提供了一个丰富的查询模型,支持SQL,XQuery,XPath表达式和SPARQL查询,通常一个key-value存储需要应用程序中的逻辑执行以记录为导向的查询处理,但在编程时,SQL解决方案提供了一个说明性编程解决方案,它依赖于查询优化器生成数据访问路径。SQL平台提供成熟的管理工具和基于标准的连接,但高存储容量SQL配置尚未出现在付费使用的云中。

  IBM DB2提供了一种混合存储引擎,支持事务处理,商务智能和XML文档处理,目前它拥有多项TPC基准测试世界记录,包括在一台8处理器/64核心集群,运行Red Hat Linux高级服务器版的服务器上百万级TPC-C事务/秒的记录,亚马逊EC2 AMI捆绑的是IBM DB2 Express版或工作组版,以及Informix动态服务器版和工作组版。如果你购买了DB2企业版或Informix动态服务器版,也可以将它们的许可迁移到EC2上。除了DB2和Informix动态服务器外,还有预先打包好的AMI和IBM Lotus Web内容管理和WebSphere sMash,对于DB2或IDS开发,IBM提供了Developer AMI for EC2工具,不需要DB2或IDS使用费用。

  Oracle用户可以将Oracle 11g数据,融合中间件和企业管理器许可转移到EC2上,也提供了现成的AMI和Oracle安全备份云模块,使用亚马逊S3可以创建压缩和加密的数据库备份。可以使用它的SBT接口轻松将S3备份集成到Oracle恢复管理器中,可供选择的包括Oracle 10g Express版,11g企业版,11g SE和WebLogic Server 10g,Oracle的许可政策允许转移融合中间件到EC2上,包括WebLogic Server,JRockit(Java VM),Coherence和Tuxedo事务处理监控器。

  Oracle Coherence是一个在内存中的,存储key-value值的分布式数据网格,它为分布式数据提供线性扩展(据说曾经部署过5000个节点),复制,缓存和透明容错。Coherence支持在整个网格上分析和汇总,它可用于C++,Java和.NET开发平台。Oracle真正应用集群目前公共云提供商还没有成功的例子。

  MySQL企业版是一个非常适合于云计算的平台,它可以扩大到多台服务器,也可以只使用主/从复制,有些MySQL用户已经为亚马逊EC2创建了高可用解决方案,使用的是多实例主-主复制集群方式实现的。MySQL企业版用户可以申请24×7的EC2支持服务,如果是铂金用户,你可以获得一个企业仪表板,复制监视器,连接器,告诉缓存(memcached)和MySQL高级分区。Continuent和Sun也正在努力让MySQL集群技术可以在云计算中发挥作用,如GoGrid,Rackspace Mosso和亚马逊EC2。

  EnterpriseDB公司的Postgres plus云版本是Postgre SQL增强了GridSQL,复制,RAID异步预取和分布式内存缓存功能的版本,GridSQL使用无共享架构,以支持并行查询,处理高可扩展的环境,如网格和云,对于这个云版本,EnterpriseDB公司与Elastra(它在亚马逊上有一个SaaS产品使用了PostgreSQL和MySQL,以及一个集群数据仓库管理产品)建立了合作伙伴关系,在尝试使用EC2实例管理数据库时,Elastra使用亚马逊S3作为持久性解决方案,以解决临时的磁盘存储问题。

  内存数据库和缓存

  对于那些需要高吞吐量的应用,部署内存数据库和缓存可以满足其需要。一种解决方案是将内存数据库和普通磁盘SQL数据库进行组队,前者作为后者的缓存。TimeTen和solidDB都是很好很强大的内存数据库产品,分别被Oracle和IBM收购了。

  Oracle TimeTen是一个可嵌入的内存数据库,支持ODBC和JDBC数据访问。它可以为Oracle 11g数据库提供实时缓存和自动同步。IBM solidDB维护数据库的冗余拷贝,提供ODBC和JDBC查询功能。它可以为实例大规模使用分区,作为SQL数据库的缓存,并定期做快照(检查磁盘)。GigaSpaces XAP构建在三元组空间共享内存模型上,提供JDBC查询功能。

  为了提高响应速度,高容量网站通常使用缓存减少SQL查询。Ehcache是由LinkedIn使用的分布式Java缓存。Memcached服务器常常用于为MySQL应用程序提供分布式对象缓存。JBoss缓存以及集成到开放的云平台GridGain中。Grid Dynamics使用亚马逊EC2运行Monte Carlo模拟器将GridGain平台从2个扩展到了512个。Quetzall CloudCache是针对托管在EC2上的云应用程序的,它返回JSON或XML格式的数据,它可以运行在多个EC2区域,它提供REST风格的API,捆绑了Ruby,Python,PHP和Java开发。微软目前正在预览一个分布式内存缓存,代号Velocity。它支持按键或标记检索数据,它包括了一个ASP.NET会话提供程序。

  联合数据

  联合数据库为分散的数据聚合提供了一个解决方案,Open SkyQuery和Flickr已经有成功的例子了。SkyQuery在联合的多个数据源上执行分布式查询。Flickr使用分片在联合MySQL数据库上支持每天上亿的查询,这种类型的成功和可扩展性需要云计算,并因此推出了新的联合数据和分片。兼并和收购也迫使建立联合数据存储以执行商务智能,以及其它查询不同的客户关系管理数据库。

  IBM以及在使用GaianDB,它是基于Apache Derby的,IBM用它来测试一个轻量级联合数据库引擎的性能。它分布的数据库多大1000多个节点,GaianDB可以在1/8秒内查询,5秒钟取回了百万行记录。

  平台和API问题

  为公共云计算选择数据库会受到选择的云提供商的限制,SaaS提供商如Google AppEngine和Force.com为开发提供了一个特殊的平台,包括预定义的PAI和数据存储,但私有云和基础架构提供商如GoGrid, Joyent和Amazon EC2,能够满足云用户对软件,数据库环境和API的需求。

  除了云存储API外,开发人员可以实现各种各样的数据存储API和为SQL/XML数据库开发基于标准的API,为云开发应用的程序员可以使用SQL API和云服务API,对于亚马逊涉及到使用Web服务描述语言(WSDL)调用特定的Web服务,对于使用云实现富互联网应用(Web 2.0)的项目,开发人员可以使用JavaScript对象标记(JSON)和Atom发布协议(AtomPub),不止一个大师认为AtomPub应该成为访问基于云的数据的事实标准。

  易于开发是云数据库解决方案的一个重要考虑方面,应用编程接口(API)是一个主要的因素,有些云数据访问编程可以使用我们熟悉的API,如开放数据库连接(ODBC),JDBC,Java数据对象(JDO)和ADO.NET。

安全

  对于某些类型的应用,安全是使用云服务的重大障碍,但它不是一个不可逾越的障碍,目前关于这一问题的主要思路是强调加密、授权、认证、数字证书、角色和基于策略的安全控制。数据库备份到云中可以进行加密,通讯可以使用安全网络和加密数据。

  Java和.NET都为应用和访问数据库的服务提供了强大的加密解决方案,操作系统和强大的SQL数据库提供了额外层次的安全,SQL数据库提供了诸如列级加密和基于角色的权限分配和数据存取功能,但即使有多层安全保护机制,在公共云和企业数据中心中严重威胁到数据库安全的是违反安全规定的得到安全授权的内部职员。为了帮助加强数据安全,亚马逊EC2提供了安全组的定义,但是你必须使用亚马逊的API函数手动监测安全组,同时也没有日志功能。

  安全差异取决于你选择的是SaaS,还是PaaS,抑或IaaS,因为SaaS提供商提供了一个捆绑工具,API和服务,SaaS用户不能选择最佳的数据存储和安全模式。但那些创建私有云或使用基础设施提供商的用户必须选择一个数据管理解决方案,这个方案必须满足应用程序的安全需求。

  Saleforce.com在Oracle数据库上使用多租赁模式托管应用程序,另一方面,亚马逊EC2是一个多实例安全的例子,如果你租用了一个运行在Oracle,DB2或SQL Server上的AMI,你会拥有一个唯一的实例,不会其他用户共享。使用IaaS时,认证数据库用户的进程确定角色和授予的权限。

  容错和云故障转移

  一个令人兴奋的消息是云服务提供商能够配置容错,高可用的系统和热备份,以及灾难恢复,在亚马逊EC2上也可以配置和操作私有云进行故障转移,需要复制私有云和公共云中的数据,执行亚马逊API和可用的区域,IP分配和负载均衡,使用与亚马逊实例兼容的服务器配置。后者是非常必要的,可以避免破坏应用程序或服务由于字节存储顺序、Java堆大小的变化和其他差异。在最近一次和IBM的对话中谈到,要将部署在公共云中的数据库转移到私有云中难度是很大的。

  最后的想法

  SQL数据库目前占据主导地位,即使早期一代的数据库在创建替换-更新-删除(CRUD)操作时遵循ACID属性和良好的性能,但他们需要程序员编写代码才能浏览数据和执行查询,SQL平台提供了一个即席查询解决方案,它不需要编程,因为它使用的是陈述性语言,并提供了内置的聚集功能。

  组织在选择云计算类型时,无论是选择私有云路线还是公共云路线,都取决于可用的数据管理。对于那些走PaaS路线的人,重点应该放在平台的功能上,而不是数据存储本身。对于那些走私有云或IaaS路线的人不得不选择硬件和软件配置,包括满足业务目标和应用需求的数据存储。

  许多因素都会影响到云数据库方案的选择,从简单的数据存储到支持复杂查询和事务处理的平台。并不是每个项目都需要SQL数据库管理的全部功能,而要确定一个轻量级,快速和可扩展的数据存储。


一键分享:

在线客服