欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

一网打尽18种主流数据库:12种SQL+6种NoSQL

程序员文章站 2022-06-09 11:16:52
...

还记得两三年前仅有几家云计算平台供应商可供选择的时候,似乎市场上也没有多少云数据库。但是云蓬勃发展之后,云数据库也呈现雨后春笋之势。而哪些是真正可靠而易用的,对用户而言,并不好分析。所以,本文分析了18种数据库的可用性以及应用方向(注意,这

还记得两三年前仅有几家云计算平台供应商可供选择的时候,似乎市场上也没有多少云数据库。但是云蓬勃发展之后,云数据库也呈现雨后春笋之势。而哪些是真正可靠而易用的,对用户而言,并不好分析。所以,本文分析了18种数据库的可用性以及应用方向(注意,这里说的管理数据库服务,不是仍然需要用户管理和实施的数据库实例)。仍有不足之处,希望听到大家更多的评论。

一网打尽18种主流数据库:12种SQL+6种NoSQL

SQL services

1.Amazon Relational Database Service(RDS)

AWS的RDS是第一个云数据库服务,也是目前最完整的数据库服务。如同AWS的大部分服务一样,其作为AWS的管理接口,可以兼容大部分AWS所提供的其他云计算服务。其最初仅是为了AWS自身掌握和管理MySQL服务而存在,而现在RDS还支持Microsoft SQL Server或Oracle Database。这一消息在2012年5月由AWS博客发布,当时称Microsoft SQL Server将成为RDS的一部分。当然,业内分析者认为这是亚马逊为了避免用户认为“*绑定”而做出的妥协与让步。用户可以运行装载在Amazon EC2上的Windows SQL Server实例,但是这些操作需要DBA经验以及对工作负荷管理有清晰认识。而RDS则提供了更易实现的管理数据库服务。

2.Clustrix Database as a Service

不久前,数据库厂商Clustrix刚加入云,但其在云计算方面早有积累。其服务,可以运行在Rackspace Cloud,为用户提供高性能的固态硬盘,可靠的single-tenant部署,以及弹性MySQL(旗舰版)。Clustrix称其适合在OLTP(联机事务处理)和OLAP(联机分析处理)的应用,并可以利用2500个以上的指标来监测系统。

3.EnterpriseDB Postgres Plus Cloud Database

EnterpriseDB是商业化Post greSQL数据库,由Postgres Plus提供的基于云的旗舰版产品。其目标是企业开发商,Postgres Plus Cloud包含高可用群集、高连接数和与Oracle的高兼容性。

4.FathomDB

有些读者对FathomDB的印象还停留在作为Rackspace的合作伙伴,FathomDB与AWS当时新的RDS相竞争。但现在,FathomDB仍然存在,但却是作为开源其原有技术以帮助开发者建立任何服务而不仅局限在托管数据库服务方面。据悉,该公司正在开发下一代数据库服务,持续关注。

5.Google Cloud SQL

Google Cloud SQL不是最丰富的数据库,但是也有其独到之处。首先,其与谷歌其他云服务能够集成,并实现轻松互动;其次,凭借谷歌在云计算的名气,Cloud SQL很容易在区域中复制,效用最大。虽然目前其仅支持Java和Python的开发应用,且实例受限于10GB存储容量。

6.Heroku Postgres

一网打尽18种主流数据库:12种SQL+6种NoSQL

Heroku Postgres是PaaS平台——Heroku的内部PostgresSQL数据库。其设计是为了可靠性而后数据保护(Heroku声称可以达到99.99%的正常运行时间,并准备实现99.9999999999%(小数点后还有9个9,数据持久性),且不需要通过PaaS平台,将经验传递给开发者。Heroku Postgres还有一个有趣的功能——数据夹。其允许用户通过URL将一个SQL查询结果发送给其他人。

7.HP Cloud Relational Database for MySQL

显然,这个名字还没有准备好。因为其仍处于内测阶段,还有很多工作要做,很多功能需要添加。作为构建在OpenStack上的一个MySQL分布,理论上看,将一个数据库业务一朵云移到另一朵上更为容易。

8.IBM SmartCloud Application Services

如同HP的云数据库一样,IBM的云数据库也在建设中。详细的具体特点还比较少。但是相比其他,IBM SmartCloud Application Services是建立在IBM DB2的基础上,作为IBM PaaS平台——SmartCloud Application Service的一部分来提供,目前也在测试阶段。

9.Microsoft SQL Database

其前身是SQL Azure,在微软新的重点策略——混合云中,SQL Database是一个关键关键组成部分。其既可以作为一个独立的云数据库使用,也可以提供Microsoft SQL Server的用户共同体验,以及允许在本地服务器数据库上的数据共享。SQL Database还提供了一种选择,使得在同一公司基础设施架构中,与其他数据库部署同步。

10.Oracle Database Cloud Service

并非适合每个人,但是对于现有的使用Oracle数据库的用而言,如果想要选择云主机就要感谢Oracle Database Cloud Service的存在了。毕竟,声称其所有功能和性能都与Oracle Database 11g Release 2相当。不过其定价并不明确,每月付费金额是基于数据库大小的,而长期合同则估计要单独确定。

11.Rackspace Cloud Databases

一网打尽18种主流数据库:12种SQL+6种NoSQL

Cloud Databases是Rackspace最新增加的在线数据库服务,一开始就建立在OpenStack平台上。在早期接入方式上,用户很难使用SLAs或云主机相关功能(如监测、备份或图形用户界面)。但受益于基于虚拟化和存储区域网络体系架构,这些用户得到了高性能和可靠性的的服务承诺。

12.Xeround

服务于亚马逊RDS,Xeround可能是市场上最受欢迎的云数据库之一。其也是最灵活的云数据库,基于MySQL的服务可以部署在任何公有云拼图,比如AWS,Rackspace,Joyent,Heroku等。Xeround声称自动缩放是其主要的一个优势,基于MySQL前端架构设计使得其理论上可以支持多种数据库选项,较为独特。

NoSQL services

1.Amazon DynamoDB

DynamoDB是亚马逊今年2月发布的NoSQL产品,其本身基于原始的Dynamo kay-value,最初是为了满足公司内部需求。具体看,就是设计网页或大数据应用时满足快速访问数据和及时实现部署的弹性收放。DynamoDB建立在SSD结构上,并自动实现数据添加功能。据悉,DynamoDB是一个共享型的数据库云服务。所谓共享型的数据库云服务,是指一台机器上的CPU、内存及磁盘资源会给多用户使用。按照AWS CTO Werner Vogels的说法:“DynamoDB是一个性能好、可靠高且具有可扩展性的NoSQL云数据库服务,DynamoDB集15年分布式非关系性数据库开发之精粹,又通过内部使用考验,是AWS团队精心打造的产品。”事实上,在AWS首页的Database列表中,只能看到RDS和DynamoDB,显然DynamoDB已经替换了SimpleDB原来在这个列表中的位置。详细对比可见《程序员文章》解析DynamoDB

2.Amazon ElastiCache

Amazon ElastiCache不是技术上的NoSQL服务,但是其完全可以实现为开发者提供类似Memcached管理服务,以确保用户可以在MySQL部署尽可能快地使用数据。Memcached已被诸多网络所应用,包括Facebook。据了解,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

3.Cloudant

虽然Cloudant基于开源的CouchDB架构的数据库平台,但其自己认为自己并非是NoSQL服务,而仅是一个数据层。其通过收集全球各地的云供应商的资源来提供可预见的扩展性NoSQL存储,并内置了MapReduce analytics engine。这也是农业企业巨头——Monsanto采用Cloudant来支持其基因架构的一个原因。

从应用来看,Cloudant的数据存储方案更加适合分布式产生的数据,比如传感网、web服务器、移动设备服务等等。

4.Database.com

一网打尽18种主流数据库:12种SQL+6种NoSQL

作为Salesforce.com的独立数据库服务,Database.com不是NoSQL,也不是SQL。可以确定的是,多租户数据库架构也是为Salesforce.com的CRM和Force.com平台而服务的。其存储的数据类型非常多,包含非结构数据,专为但不仅局限于为Salesforce.com服务。

5.Microsoft Windows Azure Table Storage

这是专为Windows Azure而存在的NoSQL数据存储,其目的是为了方便查询数百万TB非关系型数据。因为其是 Windows Azure Storage的一部分,平均每个账户总数据库最大不超过100TB(Blob,Table和Queue storage)。

6.MongoHQ/MongoLab

MongoDB是迄今为止最流行的NoSQL数据库,其可以承担起管理云的重任。因此,围绕在MongoDB周围有很多服务,其中MongoHQ/MongoLab是最广为人知的。其应用场景很简单:快速部署、全面监测与实现高可靠性。二者都是通过提供共享和专用产品的方式来吸引更多用户。

显然,作者Derrick Harris 没有花费笔墨来描述Oracle、SQLServer、Symfoware、DB2、Sybase等更多耳熟能详的数据库,但作为目前市场主流的这18种创新数据库,与云计算的关系无疑更为紧密。(郭雪梅/编译

cloud-databases-101