Como posso agendar uma consulta ao Amazon Athena?

4 minuto de leitura
0

Quero agendar consultas no Amazon Athena.

Breve descrição

O agendamento de consultas é útil em muitos cenários, como na execução de consultas periódicas de relatórios ou no carregamento de novas partições em intervalos regulares. Aqui estão algumas maneiras de agendar consultas no Athena:

Resolução

Siga estas etapas para agendar uma consulta do Athena usando uma função do Lambda e uma regra do EventBridge:

1.    Crie um perfil do AWS Identity and Access Management (IAM) para o Lambda. Em seguida, anexe uma política que permita o acesso ao Athena, ao Amazon Simple Storage Service (Amazon S3) e ao Amazon CloudWatch Logs. Por exemplo, você pode adicionar AmazonAthenaFullAccess e CloudWatchLogsFullAccess ao perfil. AmazonAthenaFullAccess permite acesso total ao Athena e inclui permissões básicas para o Amazon S3. **CloudWatchLogsFullAccess ** permite acesso total ao CloudWatch Logs.

2.    Abra o console do Lambda.

3.    Selecione Criar função.

4.    Certifique-se de que a opção Criar do zero esteja selecionada e configure as seguintes opções:

Em Nome, insira um nome para a função.
Em Runtime, escolha uma das opções do Python.
Em Perfil, escolha Usar um perfil existente e depois escolha o perfil do IAM criado na etapa 1.

5.    Selecione Criar função.

6.    Cole seu código na Código da função. O exemplo a seguir usa o Python 3.7. Substitua os seguintes valores no exemplo:

default: o nome do banco de dados Athena
SELECT * FROM default.tb: a consulta que você deseja agendar
s3://AWSDOC-EXAMPLE-BUCKET/: o bucket do S3 para a saída da 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.    Escolha Implantar.

8.    Abra o console do Amazon EventBridge.

9.    No painel de navegação, selecione Regras, em seguida, selecione Criar regra.

10.    Insira um nome e uma descrição para a regra.

11.    Em Definir padrão, selecione Cronograma.

12.    Selecione Expressão Cron e insira uma expressão cron.

13.    Em Selecionar barramento de eventos, selecione Barramento de eventos padrão da AWS.

14.    Na seção Selecionar destinos, faça o seguinte:

Em Destino, selecione Função do Lambda na lista suspensa. Em Função, selecione o nome da sua função do Lambda na lista suspensa.

15.    Escolha Criar.

Se estiver agendando várias consultas, observe que há cotas para o número de chamadas à API do Athena por conta. Para obter mais informações, consulte Cotas de chamada de API por conta.


Informações relacionadas

Tutorial: Schedule AWS Lambda functions using EventBridge

Creating an Amazon EventBridge rule that runs on a schedule

AWS OFICIAL
AWS OFICIALAtualizada há um ano