

# ステップ 5: データを DynamoDB にコピーします
<a name="EMRforDynamoDB.Tutorial.CopyDataToDDB"></a>

このステップでは、データを Hive テーブル (`hive_features`) から DynamoDB の新しいテーブルにコピーします。

1. DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. [**テーブルの作成**] を選択します。

1. **[Create DynamoDB table]** (DynamoDB テーブルの作成) ページで、次の操作を行います。

   1. **[Table]** (テーブル) に **Features** とタイプします。

   1. **[Partition key]** (パーティションキー) フィールドの **[Primary key]** (プライマリキー) に **Id** とタイプします。データ型を [**数値**] に設定します。

      **[Use default settings]** (デフォルト設定の使用) を消します。**[Provisioned Capacity]** (プロビジョニングキャパシティ) に以下をタイプします。
      + **[Read Capacity Units]** (読み込みキャパシティユニット) — `10`
      + **[Write Capacity Units]** (書き込みキャパシティユニット) — `10`

   [**Create**] を選択します。

1. Hive プロンプトが表示された状態で、次の HiveQL ステートメントを入力します。

   ```
   CREATE EXTERNAL TABLE ddb_features
       (feature_id   BIGINT,
       feature_name  STRING,
       feature_class STRING,
       state_alpha   STRING,
       prim_lat_dec  DOUBLE,
       prim_long_dec DOUBLE,
       elev_in_ft    BIGINT)
   STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
   TBLPROPERTIES(
       "dynamodb.table.name" = "Features",
       "dynamodb.column.mapping"="feature_id:Id,feature_name:Name,feature_class:Class,state_alpha:State,prim_lat_dec:Latitude,prim_long_dec:Longitude,elev_in_ft:Elevation"
   );
   ```

   これで、Hive と DynamoDB のフィーチャーテーブル間でのマッピングが確立されました。

1. 次の HiveQL ステートメントを入力して DynamoDB にデータをインポートします。

   ```
   INSERT OVERWRITE TABLE ddb_features
   SELECT
       feature_id,
       feature_name,
       feature_class,
       state_alpha,
       prim_lat_dec,
       prim_long_dec,
       elev_in_ft
   FROM hive_features;
   ```

   Hive が MapReduce ジョブを送信します。このジョブは Amazon EMR クラスターによって処理されます。このジョブが完了するまで数分間かかります。

1. データが DynamoDB にロードされていることを確認します。

   1. DynamoDB コンソールのナビゲーションペインで、**[Tables]** (テーブル) を選択します。

   1. フィーチャーテーブルを選択し、**[Items]** (アイテム) タブを選択して、データを表示します。

**次のステップ**  
[ステップ 6: DynamoDB テーブル内のデータをクエリを行います](EMRforDynamoDB.Tutorial.QueryDataInDynamoDB.md)