Hive 테이블 삭제, 수정
Hive 테이블 삭제, 수정
· Version : Hive
하이브에서 테이블을 삭제하는 명령은 DROP TABLE 명령어를 사용한다.
DROP TABLE IF EXISTS table_name; |
테이블을 삭제할때, 하둡의 휴지통기능이 활성화되어 있으면 데이터는 분산 파일 시스템의 .Trash 디렉터리로 이동된다. 휴지통 기능에 설정된 시간이후 데이터가 완전히 삭제 된다. 휴지통 기능이 비활성화 되어 있는 경우 즉시 삭제된다. 또한 삭제하려는 테이블이 외부 테이블인경우, 테이블의 메타데이터만 삭제되며 데이터는 그대로 남아있다.
테이블 수정은 ALTER TABLE 명령을 사용하여 변경한다. 테이블 수정은 메타데이터만 변경할 뿐 데이터 자체는 변경시키지 않는다.
[테이블명 변경]
Table_name 테이블명을 table_name_new 테이블명으로 변경한다.
ALTER TABLE table_name TO table_name_new |
[파티션 추가/변경/삭제]
파티션 추가는 ADD PARTITION 명령을 사용한다.
ALTER TABLE table_name ADD IF NOT EXISTS PARTITION(year = 2020, month = 1, day = 1) LOCATION '/user/data/20200101' PARTITION(year = 2020, month = 1, day = 2) LOCATION '/user/data/20200102' PARTITION(year = 2020, month = 1, day = 3) LOCATION '/user/data/20200103'; |
파티션 위치 변경은 SET LOCATION 명령을 사용한다.
ALTER TABLE table_name PARTIOTN(year = 2020, month = 1, day = 1) SET LOCATION '/user/data/…'; |
파티션 삭제는 DROP PARTITION 명령을 사용한다.
ALTER TABEL table_name DROP IF EXISTS PARTITION (year = 2020, month = 1, day = 1); |
[컬럼 변경]
컬럼명, 컬럼 위치, 주석 및 데이터 타입을 변경할 수 있다. old_column 컬럼명을 new_column 이름으로 변경하고 데이터 타입은 INT, 컬럼의 위치는 col2 뒤에 위치한다.
ALTER TABLE table_name CHANGE COLUMN old_column new_column INT COMMENT 'Input comment' AFTER col2; |
컬럼 이름이나 데이터 타입을 변경하지 않더라도, 컬럼의 예전이름과 새이름, 데이터 타입을 지정해야 한다.컬럼을 이동하지 않는다면 AFTER 명령은 필요하지 않으며, 컬럼을 맨 앞으로 위치할 경우 FIRST 를 사용할 수 있다.
[컬럼 추가 / 삭제 및 교체]
컬럼 추가는 이미 존재하는 컬럼의 마지막과 파티셔닝 컬럼 앞에 추가된다.
ALTER TABLE table_name ADD COLUMNS ( add_col1 STRING COMMENT 'Input Comments', add_cpl2 LONG COMMENT 'Input Comments'); |
이미 존재하는 모든 컬럼을 삭제하고 새로운 컬럼으로 교체한다. 메타 데이터만 변경된다.
ALTER TABLE table_name REPLACE COLUMNS( col1 INT COMMENT 'Input Comments', col2 STRING COMMENT 'Input Comments', col3 LONG COMMENT 'Input Comments'); |
2020-07-07 / Sungwook Kang / http://sungwookkang.com
Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, HDFS, 하둡 파일 시스템, Hive, 하이브, 하이브 테이블, Hive table, 하이브쿼리, Hive SQL, 하이브파티션, 테이블삭제, 테이블수정