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をクエリする際の参考になれば幸いです。