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 GetPartitions 및 BatchDeletePartition 작업을 스크립팅에 사용할 수 있습니다. 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='');