¿Cómo puedo programar una consulta de Amazon Athena?

4 minutos de lectura
0

Quiero programar consultas en Amazon Athena.

Breve descripción

La programación de consultas resulta útil en muchos escenarios, como la ejecución de consultas de informes periódicas o la carga de nuevas particiones a intervalos regulares. Estas son algunas de las formas de programar consultas en Athena:

Solución

Siga estos pasos para programar una consulta de Athena mediante una función de Lambda y una regla de EventBridge:

1.    Cree un rol de servicio de AWS Identity and Access Management (IAM) para Lambda. A continuación, asocie una política que permita el acceso a Athena, Amazon Simple Storage Service (Amazon S3) y Registros de Amazon CloudWatch. Por ejemplo, puede agregar AmazonAthenaFullAccess y CloudWatchLogsFullAccess al rol. AmazonAthenaFullAccess permite total acceso a Athena e incluye permisos básicos para Amazon S3. CloudWatchLogsFullAccess permite total acceso a Registros de CloudWatch.

2.    Abra la consola de Lambda.

3.    Elija Crear una función.

4.    Asegúrese de que la opción Crear desde cero esté seleccionada y, a continuación, configure las siguientes opciones:

En Nombre, introduzca un nombre para la función.
En Versión ejecutable, elija una de las opciones de Python.
En Rol, seleccione Uso de un rol existente y, a continuación, elija el rol de IAM que creó en el paso 1.

5.    Elija Crear una función.

6.    Pegue el código en la sección Código de la función. En el siguiente ejemplo se usa Python 3.7. Sustituya los siguientes valores en el ejemplo:

default: nombre de la base de datos de Athena
SELECT * FROM default.tb: consulta que desea programar
s3://AWSDOC-EXAMPLE-BUCKET/: bucket de S3 para el resultado de la consulta

import boto3

# Query string to execute
query = 'SELECT * FROM database.tb'

# Database to execute the query against
DATABASE = 'database'

# Output location for query results
output='s3://OUTPUTBUCKET/'

def lambda_handler(event, context):
    # Initiate the Boto3 Client
    client = boto3.client('athena')

    # Start the query execution
    response = client.start_query_execution(
        QueryString=query,
        QueryExecutionContext={
            'Database': DATABASE
        },
        ResultConfiguration={
            'OutputLocation': output
        }
    )

    # Return response after starting the query execution
    return response

7.    Elija Desplegar.

8.    Abra la consola de Amazon EventBridge.

9.    En el panel de navegación, seleccione Reglas y, a continuación, elija Crear regla.

10.    Introduzca un nombre y una descripción para la regla.

11.    En Definir patrón, seleccione Programación.

12.    Seleccione Expresión cron y, a continuación, introduzca una expresión cron.

13.    En Seleccionar bus de eventos, elija Bus de eventos predeterminado de AWS.

14.    En la sección Seleccionar destinos, siga estos pasos:

En Destino, seleccione Función de Lambda en la lista desplegable. En Función, elija el nombre de la función de Lambda en la lista desplegable.

15.    Seleccione Crear.

Si programa varias consultas, tenga en cuenta que existen cuotas respecto al número de llamadas a la API de Athena por cada cuenta. Para obtener más información, consulte Per account API call quotas.


Información relacionada

Tutorial: Schedule AWS Lambda functions using EventBridge

Creating an Amazon EventBridge rule that runs on a schedule

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año