翻译文章:使用Amazon DynamoDB还是关系型数据库?

温馨提示:本文由厦门大学计算机系林子雨翻译自英文网站,转载请注明出处,仅用于学习交流,请勿用于商业用途。

[本文翻译的原始出处:厦门大学计算机系数据库实验室网站林子雨老师的云数据库技术资料专区http://dblab.xmu.edu.cn/topic/research/documentation/cloud_database]

使用Amazon DynamoDB还是关系型数据库?

英文原文地址:http://aws.amazon.com/dynamodb/

翻译:厦门大学计算机系林子雨(http://www.cs.xmu.edu.cn/linziyu) 翻译时间:201253日星期四

    当今基于网页的应用,会生成和消耗大量的数据。例如,一个在线游戏,在开始的时候也许只有几千个用户,这个时候,数据库负载就很轻,可能只是每秒10次写操作和50次读操作。但是,如果这个游戏成功了,用户规模就会很快达到几百万,每秒就会存在成千上万次读写操作。每天可能会产生几TB的数据。在Amazon DynamoDB上开发你的应用,可以允许你在初始阶段使用很小的数据库,当你的需求增加的时候,你可以把一个表的处理能力设置得更高一些,这个过程不需要停止对外服务,更不需要修改任何代码。Amazon DynamoDB提供了一个在任何扩展级别下的完全托管的数据库服务。

    虽然Amazon DynamoDB可以处理数据库扩展、管理、性能和可靠性等方面的核心问题,但是,Amazon DynamoDB并不是一个关系型数据库,不支持复杂的关系查询(比如连接操作)和复杂的事务操作。如果你的工作负载需要这种功能,或者你需要和现有的关系数据库保持兼容,那么,你不妨尝试Amazon Relational Database Service(简称:Amazon RDS)。你也可以在Amazon EC2上面运行你自己的关系数据库。虽然关系型数据库提供了丰富的数据类型和各种功能,但是,如果工作负载对可扩展性有要求的话,就需要你在多个数据库实例上面对数据的分区和重新分区进行管理。这会是一个很复杂的任务。因此,如果你的应用对可扩展性的要求很高,同时又不需要关系数据库提供的那些特性和功能,Amazon DynamoDB会更加适合你。(厦门大学计算机系 林子雨 翻译)