Amazon Athena 쿼리를 예약하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Athena에서 쿼리를 예약하고 싶습니다.

간략한 설명

쿼리 예약은 정기적인 보고 쿼리를 실행하거나 정기적으로 새 파티션을 로드하는 등 다양한 시나리오에서 유용합니다. Athena에서 쿼리를 예약할 수 있는 몇 가지 방법은 다음과 같습니다.

해결 방법

다음 단계에 따라 Lambda 함수 및 EventBridge 규칙을 사용하여 Athena 쿼리를 예약하세요.

1.    Lambda에 대한 AWS Identity and Access Management(IAM) 서비스 역할을 생성합니다. 그런 다음 Athena, Amazon Simple Storage Service(S3) 및 Amazon CloudWatch Logs에 대한 액세스를 허용하는 정책을 첨부합니다. 예를 들어 AmazonAthenaFullAccessCloudWatchLogsFullAccess를 역할에 추가할 수 있습니다. AmazonAthenaFullAccess는 Athena에 대한 전체 액세스 권한을 허용하며 Amazon S3에 대한 기본 권한을 포함합니다. CloudWatchLogsFullAccess를 사용하면 CloudWatch Logs에 대한 전체 액세스를 사용할 수 있습니다.

2.    Lambda 콘솔을 엽니다.

3.    함수 생성을 선택합니다.

4.    새로 작성이 선택되어 있는지 확인하고 다음 옵션을 구성합니다.

이름에 함수의 이름을 입력합니다.
런타임에서 Python 옵션 중 하나를 선택합니다.
역할에서 기존 역할 사용을 선택한 다음 1단계에서 생성한 IAM 역할을 선택합니다.

5.    함수 생성을 선택합니다.

6.    함수 코드 섹션에 코드를 붙여넣습니다. 다음 예제에서는 Python 3.7을 사용합니다. 예제에서 다음 값을 바꿉니다.

기본값: Athena 데이터베이스 이름
SELECT * FROM default.tb: 예약하려는 쿼리
s3://AWSDOC-EXAMPLE-BUCKET/: 쿼리 출력을 위한 S3 버킷

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.    배포를 선택합니다.

8.    Amazon EventBridge 콘솔을 엽니다.

9.    탐색 창에서 규칙을 선택한 다음 규칙 생성을 선택합니다.

10.    규칙의 이름과 설명을 입력하세요.

11.    패턴 정의에서 예약을 선택합니다.

12.    Cron 표현식을 선택한 다음 cron 표현식을 입력합니다.

13.    이벤트 버스 선택에서 AWS 기본 이벤트 버스를 선택합니다.

14.    대상 선택 섹션에서 다음을 수행합니다.

대상에서 드롭다운 목록에서 Lambda 함수를 선택합니다. 함수에서 드롭다운 목록에서 Lambda 함수 이름을 선택합니다.

15.    생성을 선택합니다.

여러 쿼리를 예약하는 경우 계정당 Athena API 호출 수에 대한 할당량이 있다는 점에 유의하세요. 자세한 내용을 보려면 계정별 API 직접 호출 할당량을 참조하세요.


관련 정보

자습서: EventBridge를 사용한 AWS Lambda 함수 예약

일정에 따라 실행되는 Amazon EventBridge 규칙 생성

AWS 공식
AWS 공식업데이트됨 2년 전