Consulta de las tablas de Amazon DynamoDB con SQL mediante Amazon Athena - Recomendaciones de AWS

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

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

Resumen

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

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.

  • 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.

Limitaciones

  • No se admiten operaciones de escritura como INSERT INTO. 

Versiones de producto

Arquitectura

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.

Tools (Herramientas)

Servicios de AWS

  • Amazon Athena 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 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 es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.

  • AWS Lambda 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) 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.

Epics

TareaDescripciónHabilidades requeridas

Implemente la AthenaDynamo DBConnector aplicación.

Para AthenaDynamo DBConnecter implementarla, haga lo siguiente:

  1. Inicie sesión en y elija la Consola de administración de AWS Región de AWS que está utilizando para la tabla de DynamoDB y el depósito de residuos.

  2. Abra el Serverless Application Repository https://console.aws.amazon.com/serverlessrepo/ en.

  3. En el panel de navegación, elija Aplicaciones disponibles.

  4. Para acceder a AWS Identity and Access Management (IAM), en la barra de búsqueda, active la casilla Mostrar aplicaciones que creen políticas de recursos o funciones de IAM personalizadas.

  5. Busque AthenaDynamoDBConnector, seleccione y asegúrese de que el autor que aparece en la lista es Amazon Athena Federation.

  6. En Configuración de la aplicación, ingrese los siguientes valores:

    • SpillBucket‒ Ubicación en la que la función puede transferir datos.

    • AthenaCatalogName‒ El nombre de la función Lambda que se va a crear. El nombre también se utilizará como nombre del origen de datos en Athena.

  7. Seleccione la casilla de verificación para confirmar la creación de roles y políticas de IAM.

  8. Elija Implementar.

AWS DevOps

Cree un origen de datos para Athena.

Para crear un origen de datos, haga lo siguiente:

  1. Abra la consola de Athena en

    https://console.aws.amazon.com/athena/.

  2. Amplíe el panel de navegación y elija Orígenes de datos.

  3. Elija Crear origen de datos.

  4. Elija Amazon DynamoDB.

  5. Ingrese el nombre del origen de datos.

  6. Seleccione la función de Lambda que creó.

  7. Revise los detalles y seleccione Crear origen de datos.

AWS DevOps

Utilice Athena para consultar la tabla de DynamoDB.

Para consultar la tabla de DynamoDB, haga lo siguiente:

  1. En la consola de Athena, amplíe el panel de navegación y elija Editor de consultas.

  2. En la lista desplegable Origen de datos, seleccione el origen de datos que creó.

  3. Confirme que las tablas de DynamoDB aparecen en Tablas.

  4. Ejecute la consulta.

Desarrollador de aplicaciones

Resolución de problemas

ProblemaSolució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