

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Consulta de las tablas de Amazon DynamoDB con SQL mediante Amazon Athena
<a name="query-amazon-dynamodb-tables-sql-amazon-athena"></a>

*Gavin Perrie, Ajit Ambike y Brad Yates, Amazon Web Services*

## Resumen
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-summary"></a>

Si sus datos incluyen orígenes distintos de Amazon Simple Storage Service (Amazon S3), puede utilizar consultas federadas para acceder a esos orígenes de datos relacionales, no relacionales, de objetos o personalizados. Este patrón muestra cómo configurar el acceso a consultas federadas de Amazon Athena a Amazon DynamoDB mediante un conector de origen de datos SQL.

Con este patrón, puede hacer lo siguiente:
+ Consultar tablas de DynamoDB mediante SQL.
+ Hacer consultas SQL federadas en Athena y combinar tablas de DynamoDB con otros orígenes de datos compatibles.

## Requisitos previos y limitaciones
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-prereqs"></a>

**Requisitos previos **
+ Una tabla de DynamoDB.
+ Un grupo de trabajo de Athena configurado para utilizar el la versión 2 del motor Athena. Para obtener instrucciones, consulte la [documentación de Athena](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html).
+ Un depósito de S3 donde la `AthenaDynamoDBConnector` AWS Lambda función puede filtrar los datos. La función de Lambda debe estar en la misma región de AWS que el bucket de S3.

Si es la primera vez que accede a Athena, necesitará un bucket de S3 adicional para usarlo como ubicación de los resultados de la consulta. Para obtener instrucciones, consulte la [documentación de Athena](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location-console).

**Limitaciones**
+ No se admiten operaciones de escritura como [INSERT INTO](https://docs.aws.amazon.com/athena/latest/ug/insert-into.html).** **

**Versiones de producto**
+ [Athena Query Federation se publica el GitHub](https://github.com/awslabs/aws-athena-query-federation/releases)

## Arquitectura
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-architecture"></a>

**Arquitectura de destino**

El siguiente diagrama muestra el flujo de conexión después de establecer el patrón. El usuario se conecta a Amazon Athena para realizar la consulta. Athena pasa la consulta y el destino a la función de Lambda del conector del origen de datos de DynamoDB, que recupera y devuelve los datos a Athena. Si se devuelven grandes cantidades de datos, Athena almacena los resultados temporales en el bucket de desbordamiento antes de empaquetar y devolver el conjunto de datos completo.

![Flujo de trabajo de los usuarios a Athena y Lambda, que se conecta al bucket de S3 y a la tabla de DynamoDB.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9d1ee529-36f3-4c7e-a2e7-05b76e09a3d8/images/e50a00cf-a55a-4def-81d5-4d2755dc9a97.png)


## Tools (Herramientas)
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-tools"></a>

**Servicios de AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) es un servicio interactivo de consultas que le permite analizar datos directamente en Amazon Simple Storage Service (Amazon S3) usando SQL estándar. Este patrón utiliza [Amazon Athena DynamoDB Connector, una herramienta](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb) creada con el SDK de Amazon Athena Query Federation e instalada como una aplicación a través del. AWS Lambda AWS Serverless Application Repository
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

**Repositorio de código**

El código de este patrón está disponible en el repositorio de GitHub [Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation/releases).

## Epics
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-epics"></a>

### Configuración del conector de origen de datos de DynamoDB y pruebas
<a name="set-up-and-test-the-ddb-data-source-connector"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la AthenaDynamo DBConnector aplicación. | Para AthenaDynamo DBConnecter implementarla, haga lo siguiente:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Cree un origen de datos para Athena. | Para crear un origen de datos, haga lo siguiente:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Utilice Athena para consultar la tabla de DynamoDB. | Para consultar la tabla de DynamoDB, haga lo siguiente:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | Desarrollador de aplicaciones | 

## Resolución de problemas
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| La consulta devuelve el error `GENERIC_INTERNAL_ERROR: The bucket is in this region: <region>`*.* | Asegúrese de que el bucket de desbordamiento de Athena y la función de Lambda estén creadas en la misma Región de AWS. | 
| El origen de datos recién creado no está visible en la consola de Athena. | Los catálogos de datos de Athena son regionales. Asegúrese de que `AthenaDynamoDBConnector` se haya implementado en la región en la que está intentando utilizar Athena. | 
| No puede poner en marcha la consulta en el origen de datos recién creado. | Compruebe que se haya definido **Ubicación del resultado de la consulta**. | 

## Recursos relacionados
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-resources"></a>
+ [Conector Amazon Athena DynamoDB](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb)
+ [Consultas federadas de Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)