HIVE 외부 테이블 삭제
8752 단어 빅 데이터
truncate 명령 으로 외부 테이블 삭제:
truncate table mytable;
#FAILED: SemanticException [Error 10146]: Cannot truncate non-managed table mytable. (state=,code=0)
분석 하 다.
표 구조 보기 1.describe extended tablename 2.desc formatted tablename;
| NULL | NULL |
| # Partition Information | NULL | NULL |
| # col_name | data_type | comment |
| | NULL | NULL |
| load_date | string | |
| | NULL | NULL |
| # Detailed Table Information | NULL | NULL |
| Database: | ods_project | NULL |
| Owner: | hive | NULL |
| CreateTime: | Wed Jul 25 16:24:48 CST 2018 | NULL |
| LastAccessTime: | UNKNOWN | NULL |
| Protect Mode: | None | NULL |
| Retention: | 0 | NULL |
| Location: | hdfs://***/myname | NULL |
| Table Type: | EXTERNAL_TABLE | NULL |
| Table Parameters: | NULL | NULL |
| | EXTERNAL | TRUE |
| | numPartitions | 1 |
| | transient_lastDdlTime | 1532507088 |
| | NULL | NULL |
| # Storage Information | NULL | NULL |
| SerDe Library: | org.apache.hadoop.hive.ql.io.orc.OrcSerde | NULL |
| InputFormat: | org.apache.hadoop.hive.ql.io.orc.OrcInputFormat | NULL |
| OutputFormat: | org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat | NULL |
| Compressed: | No | NULL |
| Num Buckets: | -1 | NULL |
| Bucket Columns: | [] | NULL |
| Sort Columns: | [] | NULL |
| Storage Desc Params: | NULL | NULL |
| | serialization.format | 1 |
+-------------------------------+----------------------------------------------------+-----------------------+--
원인.
truncate 는 외부 테이블 을 삭제 할 수 없고 내부 테이블 만 삭제 할 수 있 습 니 다
외부 테이블 삭제
1.이 표 의 파 티 션 삭제:
alter table tablename drop partition(load_date='2018-11-23',p_hou16);
2.hdfs 의 데이터 삭제
[hdfs@localhost ~]$ hadoop fs -ls /home/tablename
Found 8 items
drwxr-x--- - root users 0 2018-09-27 13:39 /home/tablename/p_date=2018-03-19
drwxr-x--- - root users 0 2018-09-27 15:24 /home/tablename/p_date=2018-03-20
외부 시 계 를 내부 표 로 바 꾸 고 내부 표를 삭제 할 수 있 습 니 다.
ALTER TABLE xxx SET TBLPROPERTIES('EXTERNAL'='False');
drop table xxx;
총결산
외부 테이블:테이블 을 만 들 때 EXTERNAL 을 지 정 했 습 니 다.외부 테이블 은 파 티 션 을 삭제 한 후에 도 hdfs 의 데이터 가 존재 하 므 로 삭제 되 지 않 습 니 다.
내부 표:표를 만 들 때 지정 되 지 않 았 습 니 다.drop 을 사용 하면 hdfs 의 데 이 터 를 삭제 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spark 의 2: 원리 소개Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.