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
'CLOUD' 카테고리의 다른 글
[TIL] AWS CLI s3 sync를 사용하여 파일 전송하기 221028 (0) | 2022.10.28 |
---|---|
[TIL] AWS redshift에 Copy 명령어로 csv 데이터 적재 시 csv 내에 json이 포함되어 있을 때 고려해야 할 데이터 변환 파라미터 종류 221026 (0) | 2022.10.26 |
[TIL] AWS Redshift에서 block이 걸려서 쿼리가 지연될 때 확인하고 강제 종료하는 방법 221017 (0) | 2022.10.17 |
[TIL] AWS Athena에서 Json 값 추출 220927 (0) | 2022.09.27 |
[TIL] AWS cli를 사용해서 s3 파일 일괄 다운받기 220921 (0) | 2022.09.21 |
[TIL] Docker로 wireguard VPN 서버 실행하기 220920-1 (0) | 2022.09.20 |