

# 5단계: DynamoDB로 데이터 복사
<a name="EMRforDynamoDB.Tutorial.CopyDataToDDB"></a>

이 단계에서는 Hive 테이블(`hive_features`)의 데이터를 DynamoDB의 새 테이블로 복사합니다.

1. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)에서 DynamoDB 콘솔을 엽니다.

1. **Create Table(테이블 생성)**을 선택합니다.

1. **Create DynamoDB table** 페이지에서 다음 작업을 수행합니다.

   1. **테이블**에 **Features**를 입력합니다.

   1. **기본 키**의 **파티션 키** 필드에 **Id**를 입력합니다. 데이터 형식을 [**Number**]로 설정합니다.

      **Use Default Settings**를 지웁니다. **Provisioned Capacity**에 대해 다음을 입력합니다.
      + **읽기 용량 단위** `10`- 
      + **쓰기 용량 단위** `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의 Features 테이블에 사이에 매핑이 설정되었습니다.

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. Features 테이블을 선택한 다음 **Items** 탭을 선택하여 데이터를 봅니다.

**다음 단계**  
[6단계: DynamoDB 테이블의 데이터 쿼리](EMRforDynamoDB.Tutorial.QueryDataInDynamoDB.md)