

# DynamoDB와 고유 Hive 테이블 간 데이터 복사
<a name="EMRforDynamoDB.CopyingData.NativeHive"></a>

DynamoDB 테이블에 데이터가 있을 경우 이 데이터를 고유 Hive 테이블로 복사할 수 있습니다. 그러면 복사 시점의 데이터 스냅샷이 제공됩니다.

수많은 HiveQL 쿼리를 수행해야 하지만 DynamoDB에서 프로비저닝된 처리량을 소비하지 않으려면 이렇게 할 수 있습니다. 고유 Hive 테이블의 데이터는 DynamoDB 내 데이터의 복사본이고 ‘실시간’ 데이터가 아니므로 쿼리에서 최신 데이터를 기대할 수 없습니다.

**참고**  
이 단원의 예제는 [자습서: Amazon DynamoDB 및 Apache Hive 작업](EMRforDynamoDB.Tutorial.md)의 단계를 완료했고 DynamoDB에 *ddb\_features*라는 외부 테이블이 있다는 전제하에 작성되었습니다.

**Example DynamoDB에서 고유 Hive 테이블로**  
다음과 같이 고유 Hive 테이블을 생성하여 *ddb\_features*로부터 데이터를 채울 수 있습니다  

```
CREATE TABLE features_snapshot AS
SELECT * FROM ddb_features;
```
그런 다음 언제라도 데이터를 새로 고칠 수 있습니다.  

```
INSERT OVERWRITE TABLE features_snapshot
SELECT * FROM ddb_features;
```
이들 예제에서는 하위 쿼리 `SELECT * FROM ddb_features`가 *ddb\_features*에서 모든 데이터를 검색합니다. 데이터의 하위 집합만 복사하려면 하위 쿼리에 `WHERE` 절을 사용할 수 있습니다.  
다음 예제는 호수 및 산정 속성을 일부만 포함하는 고유 Hive 테이블을 생성합니다.  

```
CREATE TABLE lakes_and_summits AS
SELECT feature_name, feature_class, state_alpha
FROM ddb_features
WHERE feature_class IN ('Lake','Summit');
```

**Example 고유 Hive 테이블에서 DynamoDB로**  
다음 HiveQL 문을 사용하여 고유 Hive 테이블에서 *ddb\_features*로 데이터를 복사합니다.  

```
INSERT OVERWRITE TABLE ddb_features
SELECT * FROM features_snapshot;
```