

# Copia de datos entre DynamoDB y una tabla nativa de Hive
<a name="EMRforDynamoDB.CopyingData.NativeHive"></a>

Si tiene datos en una tabla de DynamoDB, puede copiarlos en una tabla de Hive nativa. Al hacerlo, obtendrá una instantánea de los datos en el momento de la copia. 

Puede ser algo conveniente si tiene que realizar muchas consultas de HiveQL, pero no desea consumir capacidad de rendimiento aprovisionada de DynamoDB. Dado que los datos de la tabla de Hive nativa son una copia de los datos de DynamoDB, y no son datos "en tiempo real", en las consultas no cabe esperar que los datos estén actualizados.

**nota**  
Los ejemplos de esta sección se han escrito partiendo del supuesto de que ya ha llevado a cabo los pasos del [Tutorial: Uso de Amazon DynamoDB y Apache Hive](EMRforDynamoDB.Tutorial.md) y de que ya dispone de una tabla externa en DynamoDB llamada *ddb\_features*. 

**Example Desde DynamoDB a una tabla nativa de Hive**  
Puede crear una tabla de Hive nativa y rellenarla con datos de *ddb\_features*, así:  

```
CREATE TABLE features_snapshot AS
SELECT * FROM ddb_features;
```
A continuación, puede actualizar los datos en cualquier momento:  

```
INSERT OVERWRITE TABLE features_snapshot
SELECT * FROM ddb_features;
```
En estos ejemplos, la subconsulta `SELECT * FROM ddb_features` recuperará todos los datos de *ddb\_features*. Si solamente desea copiar un subconjunto de los datos, puede usar una cláusula `WHERE` en la subconsulta.  
En el siguiente ejemplo se crea una tabla de Hive nativa que únicamente contiene algunos de atributos de lagos y cumbres:  

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

**Example Desde una tabla nativa de Hive a DynamoDB**  
La instrucción de HiveQL siguiente permite copiar los datos de la tabla de Hive nativa a *ddb\_features*:  

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