AWS CloudTrail 로그에 대한 Amazon Athena 테이블에서 SELECT 쿼리를 실행했습니다. 하지만 쿼리가 느리게 실행되거나, 결과를 반환하지 않거나, 시간 초과 오류로 실패했습니다.
해결 방법
해당 사용 사례에 따라 문제 해결 단계를 따르십시오.
쿼리에서 결과를 반환하지 않음
잘못된 Amazon S3 위치 경로
CloudTrail 로그의 Amazon Simple Storage Service(Amazon S3) 테이블 위치를 확인하십시오. 테이블의 입력 LOCATION 경로가 잘못된 경우 Athena는 레코드를 반환하지 않습니다.
파티션이 테이블로 로드되지 않음
수동 파티셔닝 CREATE TABLE 문을 사용하여 테이블을 생성한 경우 파티션을 Athena 테이블에 로드했는지 확인하십시오. 테이블에 파티션을 로드하지 않으면 Athena 쿼리에서 결과를 반환하지 않습니다.
테이블에 이미 로드된 파티션을 보려면 SHOW PARTITIONS 문을 사용합니다. 쿼리에서 결과를 반환하도록 필요한 파티션을 로드하려면 ALTER TABLE ADD PARTITION 명령을 사용합니다.
파티션이 잘못 정의됨
수동 파티셔닝 CREATE TABLE 문을 사용하여 테이블을 생성한 경우 타임스탬프 속성 범위를 확인하십시오. projection.timestamp.range 속성이 Amazon S3 버킷 위치의 파티션과 일치해야 합니다.
SELECT 쿼리는 projection.timestamp.range 속성에서 설정한 범위를 벗어난 값에 대한 데이터를 필터링하지 않아야 합니다.
스토리지 클래스
Athena는 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스에 대한 데이터 쿼리를 지원하지 않으며 객체는 무시됩니다.
CloudTrail 로그가 지원되지 않는 S3 스토리지 클래스에 있는지 확인합니다. 쿼리하려는 Amazon S3 보관된 객체를 복원합니다. 그런 다음, 복원된 Amazon S3 객체를 쿼리합니다.
쿼리를 실행하는 데 시간이 오래 걸리거나 시간 초과 오류로 실패함
파티션되지 않은 테이블
CloudTrail 콘솔을 사용하여 CloudTrail 로그에 대한 Athena 테이블을 생성한 경우 파티션되지 않은 테이블이 생성됩니다.
SELECT 쿼리는 파티션되지 않은 테이블이 있는 Amazon S3 버킷의 모든 로그 파일을 스캔합니다. DML 쿼리 시간 제한 한계를 초과하면 쿼리가 느리게 실행되거나 제한 시간이 초과될 수 있습니다.
쿼리 성능을 최적화하려면 파티션된 테이블을 만드는 것이 가장 좋습니다. 쿼리 시간을 줄이려면 Athena가 일치하는 파티션의 데이터만 스캔하도록 WHERE 절에 파티션 열을 지정합니다.
파티션된 테이블 쿼리가 파티션 열을 사용하여 데이터를 필터링하지 않음
SELECT 쿼리가 WHERE 절에서 파티션 열을 사용하지 않는 경우 Athena는 Amazon S3 버킷에서 모든 로그 파일을 스캔합니다.
다음 예제 쿼리에는 모든 로그를 스캔하기 때문에 느리게 실행되는 파티션 프로젝션 CloudTrail 테이블이 있습니다.
SELECT useridentity, sourceipaddress, eventtime
FROM cloudtrail_table
WHERE eventname = 'RunInstances'
AND eventtime >= '2023-10-30T00:00:00Z'
AND eventtime < '2023-10-30T00:04:00Z';
쿼리 시간을 줄이려면 Athena가 일치하는 파티션의 데이터만 스캔하도록 WHERE 절에 파티션 열을 지정합니다.
다음 예제 쿼리에는 파티션 열 타임스탬프에서 2023/10/30 파티션의 로그만 스캔하는 WHERE 절이 있습니다.
SELECT useridentity, sourceipaddress, eventtime
FROM cloudtrail_table
WHERE eventname = 'RunInstances'
AND eventtime >= '2023-10-30T00:00:00Z'
AND eventtime < '2023-10-30T00:04:00Z'
AND timestamp >= '2023/10/30'
AND timestamp < '2023/10/31'
자세한 내용은 Athena를 사용하여 CloudTrail 데이터를 쿼리할 때 발생하는 시간 제한 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
관련 정보
Amazon Athena에서 테이블을 자동으로 생성하여 AWS CloudTrail 로그를 검색하려면 어떻게 해야 합니까?
AWS CloudTrail 로그 쿼리