开发/数据库

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 开发/数据库

如何权衡Amazon DynamoDB和SimpleDB?

作者:IT专家网出处:IT专家网2014-07-14 09:34

  NoSQL数据库促进了可扩展性,且能够帮助Web应用减少开发时间。不像关系型数据拥有固定的模式,很多NoSQL数据库无模式,但也为开发者提供了更多的灵活性。两个比较流行的NoSQL数据库是亚马逊Web服务的SimpleDB和DynamoDB。

  亚马逊DynamoDB和SimpleDB充分管理了非关系型数据库,并且提供了简单的应用程序接口(API)进行存储、查询和管理数据。这两个数据库都是适用于寻求灵活数据库设计的应用,但是也有数个不同点和应用。

  用SimpleDB管理更小的数据库

  SimpleDB最适合每一个域不超过10GB的小型数据库,这种数据库需要基本的存储和查询操作。如果你期望的表的增长速度比这个更大,而且计划使用SimpleDB的话,将需要自己将数据分成两个或者更多的域来管理。同时它也能够跨域手动分割数据,附加的管理费用破坏了SimpleDB的优势。

  这项服务旨在服务于小型数据库应用,这些应用这种灵活性、可用性以及耐久性是关键考量,同时可扩展性需求较少。能够在运行中改变表的属性,且无须修改模式、重新索引数据或者离线操纵表结构都是其灵活性很好地体现。SimpleDB分布在一个区域中的多个数据中心提供了可用性和耐久性。

  SimpleDB数据库围绕域组织管理,类似于关系表。域包含多个元素,或者键值对集。根据关系表中的行考虑元素,同时键和值分别是属性和属性组件。数据被添加到域中,要求使用基础API或者控制台。

  SimpleDB支持简单的选择声明,即任何SQL程序员都能理解。然而也有明显的区别。SimpleDB不支持跨域联合。如果你需要结合多个域的数据,必须查询和结合每一个所使用的定制程序。对于简单的联合并不困难,但是如果你的应用需要支持多个复杂的联合,就要使用MySQL或者PostgreSQL这样的关系型数据库了。二者都可以通过亚马逊的关系型数据库服务获得。

  SimpleDB的一个优势就是在一个表中索引所有的元素,这对于允许用户查询任何元素的应用很有用。由于所有的元素都在索引中,通过姓氏、城市、国籍或者邮政编码查询客户表可以很快实现。

  用DynamoDB管理大型数据库

  亚马逊DynamoDB旨在为要求更高的应用设计,这些应用要求可扩展的数据存储以及更高级的数据管理功能。代替使用硬盘,DynamoDB使用固态硬盘,实现恒定、低延迟的读写时间。旨在扩展大容量同时维持一致的性能,虽然这种性能伴随着更为严格的查询模型。

  由于DynamoDB同更大的企业数据库协作,他们可能要求额外的数据管理服务。AWS同弹性MapReduce(EMR_AWS Hadoop服务)和Redshift(其数据仓库服务)集成DynamoDB。使用亚马逊Redshift或者EMR进行大规模特殊查询或者分析,使用DynamoDB基于散列和散列分区值进行更有针对性的查询。你可以使用DynamoDB来避免管理分割域产生的额外费用。DynamoDB没有规模限制,而且可以按需管理数据域。

  DynamoDB在主键值上索引,允许二级索引。主索引和二级索引都基于散列或者散列分区键值。取代单一的选择声明,这项服务使用查询和扫描声明。查询声明同主或者二级散列或者刷哪里额分区键值使用。在表中扫描读取每一个元素,提供了更多的灵活性,但是这种操作比查询更慢,尤其是在大型的表中更是如此。你的应用的响应性也部分由此决定。

  开发者可以使用DynamoDB Local来构建和测试本地数据库代码,而不是通过实际生产的数据库。DynamoDB和DynamoDB Local API互相兼容,因此代码可以在两种环境中运行。

  

相关文章

关键词:DB2,SQL,Amazon DynamoDB,SimpleDB

责任编辑:紫英

网警备案