Hive - 내 표 와 외모 의 차이
create table zz (name string , age string) location '/input/table_data';
주: hive 는 기본적으로 내부 표를 만 듭 니 다.
이 때 hdfs 에 zz 표 의 데이터 저장 소 를 새로 만 듭 니 다.
load data inpath '/input/data' into table zz;
hdfs 의 / input / data 디 렉 터 리 에 있 는 데 이 터 를 / input / table 로 옮 깁 니 다.data 디 렉 터 리 아래.
zz 표를 삭제 하면 zz 표 의 데이터 와 메타 데이터 정 보 를 모두 삭제 합 니 다. 즉, 마지막 / input / tabledata 에 데이터 가 없습니다. 물론 / input / data 에 서 는 데이터 가 없습니다!
내부 표를 만 들 때 location 을 지정 하지 않 으 면 / user / hiv / warehouse / 아래 에 표 디 렉 터 리 를 새로 만 들 고 나머지 는 같 습 니 다.
주: load data 는 데 이 터 를 이전 합 니 다.
2. 외부 테이블
create external table et (name string , age string);
표 디 렉 터 리 를 / user / hiv / warehouse / 새로 만 듭 니 다 et
load data inpath '/input/edata' into table et;
hdfs 상 / input / edata / 하의 데 이 터 를 / user / hiv / warehouse / et 아래로 이동 합 니 다.
이 외부 테이블 을 삭제 하면 / user / hiv / warehouse / et 의 데 이 터 는 삭제 되 지 않 지만 / input / edata / 의 데 이 터 는 이전 load 이후 없습니다!
데이터 의 위치 가 바 뀌 었 습 니 다!본질은 load hdfs 의 데이터 일 때 데 이 터 를 이전 합 니 다!
3. 작은 매듭
마지막 으로 Hive 에서 표 와 외부 표 의 차 이 를 요약 합 니 다.
1. 데 이 터 를 외부 표 로 가 져 올 때 데 이 터 는 자신의 데이터 창고 디 렉 터 리 로 이동 하지 않 았 습 니 다 (location 을 지정 하면). 즉, 외부 표 의 데 이 터 는 스스로 관리 하 는 것 이 아 닙 니 다!내부 표 는 다르다. 2. 내부 표를 삭제 할 때 Hive 는 표 에 속 하 는 메타 데이터 와 데 이 터 를 모두 삭제 합 니 다.외부 테이블 을 삭제 할 때 Hive 는 외부 테이블 의 메타 데이터 만 삭제 하고 데 이 터 는 삭제 하지 않 습 니 다!
3. 내부 표 나 외부 표를 만 들 때 location 의 효 과 는 같 습 니 다. 표 디 렉 터 리 의 위치 가 다 를 뿐 입 니 다. 게다가 partition 용법 도 마찬가지 입 니 다. 표 디 렉 터 리 아래 에 파 티 션 디 렉 터 리 가 있 을 뿐 입 니 다. load data local inpath 는 로 컬 파일 시스템 의 데 이 터 를 hdfs 에 직접 업로드 하고 location 이 지정 한 위치 에 업로드 합 니 다.없 으 면 hive 기본 설정 데이터 창고 에 업로드 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 액세스 Hadoop 분산 파일 시스템 HDFS 구성 설명프로파일 m103은hdfs 서비스 주소로 바꿉니다. Java 클라이언트를 이용하여 HDFS의 파일을 액세스하려면 프로필hadoop-0.20.2/conf/core-site를 사용해야 합니다.xml입니다. 처음에 저는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.