Come posso pianificare una query su Amazon Athena?

3 minuti di lettura
0

Voglio pianificare le query in Amazon Athena.

Breve descrizione

La pianificazione delle query è utile in molti scenari, ad esempio per l'esecuzione di query di reporting periodiche o il caricamento di nuove partizioni a intervalli regolari. Ecco alcuni modi in cui puoi pianificare le query in Athena:

Risoluzione

Segui questi passaggi per pianificare una query Athena utilizzando una funzione Lambda e una regola EventBridge:

1.    Crea un ruolo di servizio AWS Identity and Access Management (IAM) per Lambda. Quindi, associa una policy che consenta l'accesso ad Athena, Amazon Simple Storage Service (Amazon S3) e Amazon CloudWatch Logs. Ad esempio, puoi aggiungere AmazonAthenaFullAccess e CloudWatchLogsFullAccess al ruolo. AmazonAthenaFullAccess consente l'accesso completo ad Athena e include autorizzazioni di base per Amazon S3. CloudWatchLogsFullAccess consente l'accesso completo a CloudWatch Logs.

2.    Apri la console Lambda.

3.    Scegli Crea funzione.

4.    Assicurati che l'opzione Crea da zero sia selezionata, quindi configura le seguenti opzioni:

In Nome, inserisci un nome per la tua funzione.
In Runtime, scegli una delle opzioni di Python.
In Ruolo, scegli Utilizza un ruolo esistente, quindi scegli il ruolo IAM che hai creato nel passaggio 1.

5.    Scegli Crea funzione.

6.    Incolla il codice nella sezione Codice della funzione. L'esempio seguente utilizza Python 3.7. Sostituisci i seguenti valori nell'esempio:

default: il nome del database Athena
SELECT * FROM default.tb: la query che vuoi pianificare
s3://AWSDOC-EXAMPLE-BUCKET/: il bucket S3 per l'output della query

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.    Scegli Distribuisci.

8.    Apri la console Amazon EventBridge.

9.    Nel pannello di navigazione, scegli Regole, quindi scegli Crea regola.

10.    Inserisci un nome e una descrizione per la regola.

11.    In Definisci il modello, seleziona Pianifica.

12.    Seleziona Espressione cron, quindi inserisci un'espressione cron.

13.    In Seleziona il bus di eventi, seleziona il bus di eventi predefinito di AWS.

14.    Nella sezione Seleziona destinazioni, esegui le seguenti operazioni:

In Destinazione, seleziona la funzione Lambda dall'elenco a discesa. In Funzione, seleziona il nome della tua funzione Lambda dall'elenco a discesa.

15.    Scegli Crea.

Se stai pianificando più query, tieni presente che sono previste delle quote per il numero di chiamate all'API Athena per ogni account. Per ulteriori informazioni, consulta la pagina Quote di chiamate API per account.


Informazioni correlate

Tutorial: pianificazione delle funzioni AWS Lambda mediante EventBridge

Creazione di una regola Amazon EventBridge eseguita in base a una pianificazione

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa