

# Amazon EMR での Apache Hive を使用した DynamoDB データの処理
<a name="EMRforDynamoDB"></a>

Amazon DynamoDB は、Amazon EMR で実行されるデータウェアハウスアプリケーションである Apache Hive と統合されています。Hive では、DynamoDB テーブルにあるデータの読み込み/書き込みが行えます。これにより、以下のことが可能になります。
+ SQL に似た言語 (HiveQL) を使用して、その時点の DynamoDB データがクエリできます。
+ DynamoDB テーブルから Amazon S3 バケットに (あるいはその逆の方向で) データをコピーできます。
+ DynamoDB テーブルから Hadoop Distributed File System (HDFS) に (あるいはその逆の方向で) データをコピーできます。
+ DynamoDB テーブルで JOIN オペレーションを実行できます。

**Topics**
+ [概要](#EMRforDynamoDB.Overview)
+ [チュートリアル:Amazon DynamoDB と Apache Hive の使用](EMRforDynamoDB.Tutorial.md)
+ [Hive に外部テーブルを作成します](EMRforDynamoDB.ExternalTableForDDB.md)
+ [HiveQL ステートメントの処理](EMRforDynamoDB.ProcessingHiveQL.md)
+ [DynamoDB 内データのクエリ](EMRforDynamoDB.Querying.md)
+ [Amazon DynamoDB との間でデータをコピーします](EMRforDynamoDB.CopyingData.md)
+ [パフォーマンスチューニング](EMRforDynamoDB.PerformanceTuning.md)

## 概要
<a name="EMRforDynamoDB.Overview"></a>

Amazon EMR は、膨大な量のデータの迅速かつコスト効率の良い処理を容易に行えるサービスです。Amazon EMR を使用するには、Hadoop のオープンソースフレームワークを実行する Amazon EC2 インスタンスの、マネージド型クラスターを起動します。*Hadoop*は、タスクがクラスター内の複数のノードにマッピングされている場合に、MapReduce アルゴリズムを実装するための分散型アプリケーションです。各ノードは、他のノードと並列的に指定された作業を処理します。それらの出力は単一のノードに集約され、最終的な結果が得られます。

Amazon EMR では、永続的または一時的のどちらかを選択して、クラスターを起動することができます。
+ *永続的*なクラスターは、シャットダウンされるまでその実行が継続します。永続的なクラスターは、データ分析やデータウェアハウスなどを含む、インタラクティブな使用に最適です。
+ *一時的*なクラスターは、ジョブフローの処理に必要な長さだけ実行された後、自動的にシャットダウンされます。一時的なクラスターは、スクリプトの実行など、定期的な処理タスクに最適です。

Amazon EMR のアーキテクチャと管理の詳細については、[Amazon EMR 管理ガイド](https://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide)を参照してください。

ユーザーは、Amazon EMR クラスターを起動する際に、初期段階での Amazon EC2 インスタンスの数とタイプを指定します。また、(Hadoop 自体に加えて) クラスターで実行する他の分散型アプリケーションも指定する必要があります。これらのアプリケーションには Hue、Mahout、Pig、Spark などが含まれます。

Amazon EMR のアプリケーションについては、[Amazon EMR リリース ガイド](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide)を参照してください。

クラスター構成に応じて、次の中の 1 つ以上のノードタイプが利用可能です。
+ リーダーノード – クラスターを管理します。MapReduce の実行可能ファイル、および生データのサブセットを、コアおよびタスクインスタンスグループに適切に分散させます。また、実行された各タスクのステータスを追跡し、インスタンスグループの正常性をモニタリングします。クラスターにはリーダーノードが 1 つのみ存在します。
+ コアノード – MapReduce タスクを実行しデータを保存します。その際、Hadoop Distributed File System (HDFS) を使用します。
+ タスクノード – (オプション) MapReduce タスクを実行します。