[TIL] AWS Athena에서 쿼리 진행 상태 확인하기

728x90
💡 Today I Learned 요약 (24회차)
- boto3에선 Athena 쿼리 상태를 확인하는 batch_get_query_execution가 존재
- 해당 기능을 사용해서 Athena가 쿼리를 돌고 있는지 상태를 확인할 수 있다.

 

boto3를 사용해서 Athena 쿼리 실행 상태 확인하기

Python 기반의 AWS SDK인 boto3를 사용해서 Athena 쿼리를 실행할 수 있다.

하지만 boto3로 Athena 쿼리를 실행할 경우 async로 돌아가기 때문에 쿼리를 날렸다고 바로 결과를 확인할 수 있는 게 아니다. 그럴 때 사용하기 위한 batch_get_query_execution가 boto3에 존재한다.

 

query 실행했을 때의 ExecutionID를 알고 있다면 아래와 같이 batch_get_query_execution에 넣어서 status 값을 확인할 수 있다. 여러가지 정보가 return 되지만 아래 코드 기준으로만 간다면 status 값 QUEUED / RUNNING / SUCCEEDED / FAILED / CANCELLED 중 하나가 return 되게 된다. 이를 확인하여 쿼리 실행 후 결과를 다시 확인하기까지 while 같은 걸 사용해서 대기를 걸어놓을수도 있을 것이다.

 

예시의 QueryExecutionIds는 An array of query execution IDs. 즉, array로 여러 값을 넣어서 조회도 가능하다. 최대 50개까지 조회가 가능한 듯 하다.

import boto3

athena = boto3.client('athena',
                   aws_access_key_id='API_KEY',
                   aws_secret_access_key='SECRET_KEY',
                   region_name='REGION'
                   )

response = athena.batch_get_query_execution(QueryExecutionIds=['QueryExecutionIds'])
status = response['QueryExecutions'][0]['Status']['State']

print(status)

#athena 관련 리서치 내역:

728x90