

# Copiar dados entre o DynamoDB e uma tabela nativa do Hive
<a name="EMRforDynamoDB.CopyingData.NativeHive"></a>

Caso tenha dados em uma tabela do DynamoDB, você poderá copiá-los para uma tabela nativa do Hive. Isso gerará um snapshot dos dados, a partir do momento em que você os copiou. 

Você pode optar por fazer isso caso precise executar muitas consultas HiveQL, mas não deseja consumir o throughput provisionado do DynamoDB. Como os dados da tabela nativa do Hive são uma cópia dos dados do DynamoDB, e não dados "ao vivo", suas consultas não devem esperar que os dados sejam atualizados.

**nota**  
Os exemplos nesta seção são escritos sob a premissa de que você seguiu as etapas de [Tutorial: Como trabalhar com o Amazon DynamoDB e o Apache Hive](EMRforDynamoDB.Tutorial.md) e tem uma tabela externa chamada *ddb\_features* no DynamoDB. 

**Example Do DynamoDB para a tabela nativa do Hive**  
Você pode criar uma tabela nativa do Hive e preenchê-la com dados de *ddb\_features*, desta forma:  

```
CREATE TABLE features_snapshot AS
SELECT * FROM ddb_features;
```
Em seguida, você pode atualizar os dados a qualquer momento:  

```
INSERT OVERWRITE TABLE features_snapshot
SELECT * FROM ddb_features;
```
Nesses exemplos, a subconsulta `SELECT * FROM ddb_features` recuperará todos os dados de *ddb\_features*. Se quiser copiar apenas um subconjunto dos dados, você pode usar uma cláusula `WHERE` na subconsulta.  
O exemplo a seguir cria uma tabela nativa do Hive, contendo apenas alguns dos atributos para lagos e picos:  

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

**Example Da tabela nativa do Hive para o DynamoDB**  
Use a instrução HiveQL a seguir para copiar os dados da tabela nativa do Hive para *ddb\_features*:  

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