温馨提示:本文由厦门大学计算机系林子雨翻译自英文网站,转载请注明出处,仅用于学习交流,请勿用于商业用途。
[本文翻译的原始出处:厦门大学计算机系数据库实验室网站林子雨老师的云数据库技术资料专区https://dblab.xmu.edu.cn/topic/research/documentation/cloud_database]
在Amazon DynamoDB中使用Amazon Elastic MapReduce(EMR)的几种方式
英文原文地址:http://aws.amazon.com/dynamodb/
翻译:厦门大学计算机系林子雨(http://www.cs.xmu.edu.cn/linziyu) 翻译时间:2012年5月3日星期四
Amazon DynamoDB同时集成了Amazon Elastic MapReduce(Amazon EMR)。Amazon EMR可以支持对大型的数据集执行复杂的分析操作,并且采用AWS中按需付费的Hadoop框架。在Amazon DynamoDB中使用EMR的方式可以有以下几种:
1、用户可以使用EMR对存储在Amazon DynamoDB中的数据进行分析,并把分析结果存储在Amazon Simple Storage Service(简称Amazon S3)中,而原来的数据仍然原封不动地保存在AWS DynamoDB中。
比如,你正在使用Amazon DynamoDB来存储客户订单,每个月,你都可以创建一个新的订单表,然后,你使用EMR的多表查询能力,你就可以把DynamoDB中不同表进行连接,从而可以回答一些特定的查询,比如“某个客户在过去三个月都下了哪些订单”。然后,你就可以使用EMR,把分析结果存储到Amazon S3中供以后查询使用,而每月的客户订单数据则仍然保存在DynamoDB中。
2、用户可以使用EMR把数据从DynamoDB备份到S3中。
就拿之前的客户订单为例,一旦你不再需要每个月都把订单数据写入到表中,你就可以把这个表备份到S3中,并且从DynamoDB中删除这个表。这样你就可以充分利用S3更加低廉的存储服务。存储在S3中的数据仍然可以用来进行各种分析。
3、用户也可以使用Amazon EMR来对存储在多个存储设施(比如Amazon DynamoDB, Amazon RDS, and Amazon S3)中的数据进行访问。并且对来自这些地方的数据进行合并以后,做更加复杂的分析,并且把分析结果存储在Amazon S3中。
例如,你正在使用DynamoDB来存储客户订单,你可以每个月创建一个新的订单表,并且,在每个月月末的时候,使用EMR把过去六个月的订单都归档到Amazon S3中。这可以让你把那些很少使用的订单数据归档到价格更加低廉的S3中,减少存储花费,而只把那些频繁使用的数据存储到DynamoDB中。你可以使用EMR来执行一些跨越多个表(比如,存储在DynamoDB中的表和存储在S3中的表)的分析操作,比如“在过去的48个月内,某个用户Y对某个商品X下了多少订单”。(厦门大学计算机系 林子雨 翻译)