\

PythonとAWS Lambdaを使用してAmazon Athenaをクエリする方法について説明します。この記事では、AWS LambdaからAthenaを実行するサンプルコードを紹介します。

まず、Athenaクライアントを初期化します。

import boto3
client = boto3.client('athena')

次に、クエリを実行します。

queryStart = client.start_query_execution(
    QueryString = 'SELECT * FROM myTable',
    QueryExecutionContext = {
        'Database': 'your_database'
    },
    ResultConfiguration = {
        'OutputLocation': 's3://your_output_location',
    }
)

このコードは、指定したデータベースのmyTableからすべてのデータを選択するクエリを実行します。

また、AWS LambdaからAthenaをクエリする際には、クエリの実行ステータスを確認することが重要です。以下に、クエリの実行ステータスを確認するためのサンプルコードを示します。

# get query execution id
query_execution_id = response['QueryExecutionId']

# get execution status
for i in range(1, 1 + RETRY_COUNT):
    # get query execution
    query_status = client.get_query_execution(QueryExecutionId=query_execution_id)
    query_execution_status = query_status['QueryExecution']['Status']['State']

    if query_execution_status == 'SUCCEEDED':
        print("STATUS:" + query_execution_status)
        break

    if query_execution_status == 'FAILED':
        raise Exception("STATUS:" + query_execution_status)
    else:
        print("STATUS:" + query_execution_status)
        time.sleep(i)
else:
    client.stop_query_execution(QueryExecutionId=query_execution_id)
    raise Exception('TIME OVER')

このコードは、クエリが成功するか、指定したリトライ回数が終了するまで、クエリの実行ステータスを確認します。

以上がPythonとAWS Lambdaを使用してAmazon Athenaをクエリする基本的な方法です。この情報がPythonとAWS Lambdaを使用してAmazon Athenaをクエリする際の参考になれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です