[HADOOP] 하이브에서 'load data inpath'와 'location'의 차이점은 무엇입니까?
HADOOP하이브에서 'load data inpath'와 'location'의 차이점은 무엇입니까?
우리 회사에서는이 두 명령이 자주 사용되는 것을 보았습니다. 그 차이점을 알고 싶습니다. 그 기능이 저와 동일하기 때문입니다.
create table <mytable>
(name string,
number double);
load data inpath '/directory-path/file.csv' into <mytable>;
create table <mytable>
(name string,
number double);
location '/directory-path/file.csv';
그들은 모두 HDFS의 디렉토리에있는 데이터를 HIVE의 테이블에 대한 디렉토리로 복사합니다. 이들을 사용할 때주의해야 할 차이점이 있습니까? 고맙습니다.
해결법
-
==============================
1.그렇습니다, 그들은 전혀 다른 목적으로 사용됩니다.
그렇습니다, 그들은 전혀 다른 목적으로 사용됩니다.
load data inpath 명령은 하이브 테이블에 데이터를로드하는 데 사용됩니다. 'LOCAL'은 입력 파일이 로컬 파일 시스템에 있음을 나타냅니다. 'LOCAL'이 생략되면 HDFS에서 파일을 찾습니다.
load data inpath '/directory-path/file.csv' into <mytable>; load data local inpath '/local-directory-path/file.csv' into <mytable>;
LOCATION 키워드는 구성 등록 정보 hive.metastore.warehouse.dir에 지정된 폴더에 저장되는 것이 아니라 저장소에 대한 모든 HDFS 위치를 가리킬 수 있습니다.
즉, 'LOCATION'/ your-path / '를 지정하면 하이브는이 테이블의 기본 위치를 사용하지 않습니다. 이미 데이터가 생성 된 경우 유용합니다.
LOCATION은 EXTERNAL 테이블에만 지정할 수 있습니다. 일반 테이블의 경우 기본 위치가 사용됩니다.
요약, 로드 데이터 inpath는 하이브에게 입력 파일을 찾을 위치를 알려주고 LOCATION 키워드는 하이브에게 HDFS에 출력 파일을 저장할 위치를 알려줍니다.
참고 문헌 : https://cwiki.apache.org/confluence/display/Hive/GettingStarted https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
-
==============================
2.옵션 1 : 내부 테이블
옵션 1 : 내부 테이블
create table <mytable> (name string, number double); load data inpath '/directory-path/file.csv' into <mytable>;
이 명령은 소스 디렉토리의 내용을 제거하고 내부 테이블을 작성합니다.
옵션 2 : 외부 테이블
create table <mytable> (name string, number double); location '/directory-path/file.csv';
외부 테이블을 생성하고 테이블에 데이터를 복사하십시오. 이제 데이터가 소스에서 이동되지 않습니다. 외부 테이블을 삭제할 수 있지만 여전히 소스 데이터를 사용할 수 있습니다.
외부 테이블을 삭제하면 HIVE 테이블의 메타 데이터 만 삭제됩니다. 데이터가 HDFS 파일 위치에 계속 존재합니다.
내부 및 외부 테이블 모두에 대한 사용 사례와 관련된 SE 관련 질문을 살펴보십시오.
하이브 내부 테이블과 외부 테이블의 차이점은 무엇입니까?
from https://stackoverflow.com/questions/35473933/difference-between-load-data-inpath-and-location-in-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Spark에서 Hdfs에 액세스하면 토큰 캐시 오류가 발생 함 마스터 Kerberos 원칙을 갱신 자로 사용할 수 없음 (0) | 2019.08.05 |
---|---|
[HADOOP] Spark 어플리케이션에 Yarn 클러스터 구성 추가 (0) | 2019.08.05 |
[HADOOP] json 문서의 Avro 직렬화에 문제가 누락되었습니다. (0) | 2019.08.05 |
[HADOOP] HDFS에서 조회 데이터가있는 Kafka 스트림 (0) | 2019.08.05 |
[HADOOP] 자바 5와 함께 0.20.2 API hadoop 버전 (0) | 2019.08.05 |