aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

訳:Amazon DynamoDB : Amazon Elastic MapReduceとの統合

http://aws.amazon.com/jp/dynamodb/

Amazon DynamoDBは Amazon Elastic MapReduce (Amazon EMR)とも統合できる。Amazon EMRは、AWS上にホストされているHadoopフレームワークを従量課金で使って、ビジネスにおける大きなデータ集合に対して複雑な分析を行うことが可能である。 DynamoDBとEMRを使った方法としては以下がある。

  1. EMRを使ってDynamoDBに保存されたデータを分析し、そのデータを残したまま、分析結果をS3に出力可能。 例えば、顧客からの注文をAmazon DynamoDBに保存していたとすると、毎月新しい注文テーブルを作成し、EMRの複数テーブルクエリを利用できる。DynamoDB内の異なるテーブルをジョインし、「過去3ヶ月に特定の顧客が何を注文しったか?」といった質問に答えられる。DynamoDB内の月別注文テーブルのデータはそのままで、最新の問い合わせ結果をS3に保存できる。
  2. EMRを使ってDynamoDBからS3にデータをバックアップ。注文についての例だと、もう書き込まなくなったある月次注文テーブルを、S3にバックアップしDynamoDBからそのテーブルを削除することで、S3の安いストレージコストを活かすことが可能。S3に保存されたデータは、引き続き容易に解析可能である。
  3. Amazon EMRをつかって、複数のデータ保存先(例:Amazon DynamoDB, Amazon RDS, Amazon S3) にアクセスでき、複数のデータソースを使って複雑な分析ができ、S3に分析結果を保存できる。

例えば、顧客からの注文をAmazon DynamoDBに保存していたとすると、毎月新しい注文テーブルを作成し、毎月末に、EMRを使って6ヶ月以上古い注文データをS3にアーカイブできる。こうすることで、コストを削減でき頻繁にアクセスする注文データだけをDynamoDBで保持することができる。DynamoDBに保存されている現在の注文データと、S3に保存されているアーカイブデータを使って、「直近48ヶ月で、widget Xが顧客Yからどのくらい注文されているか?」といったクエリに答えることができる。

参考:Adam's Blog Post

Amazon Web Services Blog: AWS HowTo: Using Amazon Elastic MapReduce with DynamoDB (Guest Post)

参考:Users Guide

Exporting, Importing, Querying, and Joining Tables in Amazon DynamoDB Using Amazon EMR -

Optimizing Performance for Amazon EMR Operations in Amazon DynamoDB - Amazon Elastic MapReduce

Step 4: Set Up a Hive Table to Run Hive Commands - Amazon Elastic MapReduce