Amazon Athena 쿼리에 새 파티션을 추가했지만 쿼리에서 결과를 반환하지 않습니다.
해결 방법
다음 방법 중 하나를 사용하여 새 파티션을 추가한 경우 이 문제가 발생할 수 있습니다.
문제를 해결하려면 사용 사례에 따라 다음 단계를 따르십시오.
MSCK REPAIR TABLE
MSCK REPAIR TABLE 명령은 데이터 경로에 등호로 연결된 키 값 쌍이 포함된 Hive 스타일 파티션에서만 작동합니다. 예를 들어 country=us/..., **year=2021/month=01/day=26/...**과 같습니다.
또한 MSCK REPAIR TABLE 명령으로 새 파티션을 추가하지 못할 수 있는데, 특히 Amazon Simple Storage Service(Amazon S3) 버킷에 큰 파티션이 있는 경우에 그렇습니다. 이 경우 MSCK REPAIR TABLE 명령이 데이터 범위의 모든 파티션을 로드하기 때문에 성능 및 제한 시간 문제가 발생할 수도 있습니다. 예를 들어 기존 데이터가 2020년부터이고 새 파티션 데이터는 2023년부터인 경우 2020년부터의 모든 파티션을 읽습니다.
Hive 스타일이 아닌 파티션을 추가하려면 다음과 유사하게 ALTER TABLE ADD PARTITION 명령을 실행하십시오.
ALTER TABLE table_name ADD [IF NOT EXISTS]
PARTITION
(partition_col1_name = partition_col1_value
[,partition_col2_name = partition_col2_value]
[,...])
[LOCATION 'location1']
[PARTITION
(partition_colA_name = partition_colA_value
[,partition_colB_name = partition_colB_value
[,...])]
[LOCATION 'location2']
[,...]
파티션 프로젝션
파티션 프로젝션에서는 테이블을 만들 때 테이블 속성이 정의됩니다. 테이블 속성은 필수 사양을 충족해야 합니다. 그렇지 않으면 파티션을 읽을 수 없습니다.
다음 명령을 사용하여 테이블 파티션을 나열하십시오.
"SELECT * FROM 'table_name$partitions'"
출력에서 파티션 데이터 형식을 확인합니다. 연도, 월, 일 또는 시간과 같은 날짜 형식을 사용하는 경우 범위, 간격 및 숫자에 필요한 테이블 속성을 추가하십시오.
자세한 내용은 지원되는 파티션 프로젝션 유형을 참조하십시오.
AWS Glue Data Catalog 또는 AWS Glue 콘솔
Data Catalog 또는 AWS Glue 콘솔을 사용하여 파티션 열을 정의한 경우 파티션 데이터 유형을 확인하십시오. 파티션 데이터 형식은 S3 버킷에 정의된 데이터 유형과 일치해야 합니다.
참고: Data Catalog 또는 AWS Glue 콘솔과 S3 버킷에서 일관된 데이터 유형을 사용하는 것이 가장 좋습니다.
관련 정보
MSCK REPAIR TABLE 쿼리가 AWS Glue Data Catalog에 파티션을 추가하지 않는 이유는 무엇입니까?
Amazon Athena 테이블을 쿼리할 때 레코드가 0개로 나오는 이유는 무엇입니까?