ALTER TABLE DROP PARTITION - Amazon Athena

ALTER TABLE DROP PARTITION

명명된 테이블에 지정된 하나 이상의 파티션을 삭제합니다.

시놉시스

ALTER TABLE table_name DROP [IF EXISTS] PARTITION (partition_spec) [, PARTITION (partition_spec)]

파라미터

[IF EXISTS]

지정된 파티션이 없는 경우 오류 메시지를 억제합니다.

PARTITION (partition_spec)

각각의 partition_spec은(는) partition_col_name = partition_col_value [,...] 형식으로 열 이름/값 조합을 지정합니다.

예시

ALTER TABLE orders DROP PARTITION (dt = '2014-05-14', country = 'IN');
ALTER TABLE orders DROP PARTITION (dt = '2014-05-14', country = 'IN'), PARTITION (dt = '2014-05-15', country = 'IN');

참고

ALTER TABLE DROP PARTITION 문은 한 번에 모든 파티션을 삭제하기 위한 단일 구문을 제공하지 않으며 삭제할 파티션 범위를 지정하는 필터링 기준을 지원하지 않습니다.

차선책으로, AWS Glue API GetPartitionsBatchDeletePartition 작업을 스크립팅에 사용할 수 있습니다. GetPartitions 작업은 SQL WHERE 표현식과 같은 복잡한 필터 표현식을 지원합니다. GetPartitions를 사용하여 삭제할 파티션의 필터링된 목록을 만들려면, BatchDeletePartition 작업을 사용하여 25개 단위의 배치로 파티션을 삭제할 수 있습니다.

중요

알려진 문제로 인해 ALTER TABLE DROP PARTITION 문에 잘못된 파티션을 지정하면 AWS Glue에서 테이블의 모든 파티션이 삭제됩니다. 예를 들어 다음 명령문은 지정된 파티션이 없더라도 my_table 테이블의 모든 파티션을 삭제합니다. 이 문제를 해결하려면 ALTER TABLE DROP PARTITION 문을 실행하기 전에 파티션 정보를 올바르게 입력해야 합니다.

ALTER TABLE my_table DROP IF EXISTS PARTITION(zzz='');