하이브 테이블의 파티션을 제거(drop)하는 문법은 다음과 같습니다.
ALTER TABLE table_name DROP PARTITION(partition_name='partitions_value');
yyyymmdd 파티션을 가지는 table을 이용해서 삭제 방법을 알아보겠습니다.
# table은 yyyymmdd 파티션을 가지고 있음
hive> show partitions table;
OK
yyyymmdd=20190220
yyyymmdd=20190221
yyyymmdd=20190222
yyyymmdd=20190223
yyyymmdd=20190224
yyyymmdd=20190225
yyyymmdd=20190226
yyyymmdd=20190227
yyyymmdd=20190228
yyyymmdd=20190229
# 2019.02.23 일자 파티션 삭제
ALTER TABLE table DROP PARTITION (yyyymmdd='20190223')
# 2019.02.23 일 미만의 일자 삭제, (20, 21, 22일 삭제)
ALTER TABLE table DROP PARTITION (yyyymmdd < '20190223')
# 2019.02.23 일 이하의 일자 삭제, (20, 21, 22, 23일 삭제)
ALTER TABLE table DROP PARTITION (yyyymmdd <= '20190223')
# 2019.02.23 일 미만의 일자와 27일 초과의 데이터 삭제(20, 21, 22, 28, 29 일 삭제)
ALTER TABLE table DROP PARTITION (yyyymmdd < '20190223'), PARTITION (yyyymmdd > '20190227');
범위로 삭제할 때 주의할 점은 between 과 같은 문법을 사용하면 안됩니다.
다음의 예제는 24일에서 26일의 파티션을 삭제 할 것 같지만 and 조건으로 뭉쳐서 처리되지 않기 때문에 23일 이상의 파티션과 27일 이하의 파티션을 모두 삭제하여 테이블에 존재하는 모든 파티션을 삭제하게 됩니다.
ALTER TABLE table DROP PARTITION (yyyymmdd > '20190223'), PARTITION (yyyymmdd < '20190227');
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] 하이브 처리 결과를 gzip으로 압축하는 방법 (0) | 2019.04.03 |
---|---|
[hive] MSCK REPAIR 처리중 Caused by: MetaException(message:Expected 2 components, got 1) 처리 (0) | 2019.04.01 |
[hive] 하이브의 LLAP(Live Long And Process) 구조 (0) | 2019.02.26 |
[hive] 하이브 3의 특징 (0) | 2019.02.25 |
[hive] CLI 동작중 에러 발생시 무시하기 (0) | 2019.02.22 |