Hive 테이블 생성: 내부 테이블, 변경, 삭제(예제 포함)
작업대 Opera다음과 같은 생성, 변경 및 삭제 이 튜토리얼에서는 Hive의 테이블을 관찰할 수 있습니다.
아래 스크린샷에서는 열이 있는 테이블을 만들고 테이블 이름을 변경하고 있습니다.
1. "empid" 및 "empname"과 같은 두 개의 열 이름을 사용하여 guru_sample 테이블 생성
2. guru99 데이터베이스에 있는 테이블 표시
3. 테이블 아래에 표시되는 Guru_sample
4. "guru_sample" 테이블을 "guru_sampleNew"로 변경
5. 다시 "show" 명령을 실행하면 새 이름 Guru_sampleNew가 표시됩니다.
Dropping table guru_sampleNew:
테이블 유형 및 사용법
오는 테이블 이는 전통적인 관계형 데이터베이스에서 생성하는 방식과 같습니다. 필터링, 조인 등의 기능을 테이블에서 수행할 수 있습니다.
하이브 다음과 같은 두 가지 유형의 테이블 구조를 다룹니다. 내부적 인 그리고 외부적인 Hive의 스키마 로딩 및 디자인에 따라 테이블이 달라집니다.
내부 테이블
- 내부 테이블은 본질적으로 긴밀하게 결합되어 있습니다. 이러한 유형의 테이블에서는 먼저 테이블을 생성하고 데이터를 로드해야 합니다.
- 우리는 이것을 다음과 같이 부를 수 있습니다. 스키마의 데이터.
- 이 테이블을 삭제하면 데이터와 스키마가 모두 제거됩니다.
- 이 테이블의 저장 위치는 /user/hive/warehouse입니다.
내부 테이블을 언제 선택해야 합니까?
- 로컬 파일 시스템에서 처리 데이터를 사용할 수 있는 경우
- Hive가 삭제를 포함하여 데이터의 전체 수명주기를 관리하도록 하려는 경우
내부 테이블의 샘플 코드 조각
1. 내부 테이블을 생성하려면
Hive>CREATE TABLE guruhive_internaltable (id INT,Name STRING); Row format delimited Fields terminated by '\t';
2. 내부 테이블에 데이터 로드
Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO table guruhive_internaltable;
3. 테이블의 내용을 표시합니다.
Hive>select * from guruhive_internaltable;
4. 내부 테이블을 삭제하려면
Hive>DROP TABLE guruhive_internaltable;
guruhive_internaltable을 삭제하면 해당 메타데이터와 해당 데이터가 Hive에서 삭제됩니다.
다음 스크린샷에서 우리는 출력을 관찰할 수 있습니다
위의 코드와 스크린샷에서 우리는 다음과 같은 작업을 수행합니다.
- 내부 테이블 만들기
- 내부 테이블에 데이터 로드
- 테이블의 내용을 표시합니다.
- 내부 테이블을 삭제하려면
외부 테이블
- 외부 테이블은 본질적으로 느슨하게 결합되어 있습니다. 데이터는 HDFS에서 사용할 수 있습니다. 테이블은 HDFS 데이터에 생성됩니다.
- 다른 방법으로 우리는 그것이 창조하는 것과 같다고 말할 수 있습니다. 데이터에 대한 스키마.
- 테이블을 삭제할 때 스키마만 삭제하며 데이터는 이전과 마찬가지로 HDFS에서 계속 사용할 수 있습니다.
- 외부 테이블은 스키마가 업데이트될 때마다 데이터를 삭제하는 대신 HDFS에 저장된 데이터에 대해 여러 스키마를 생성하는 옵션을 제공합니다.
언제 외부 테이블을 선택해야 합니까?
- HDFS에서 데이터 처리가 가능한 경우
- 파일이 Hive 외부에서 사용될 때 유용합니다.
외부 테이블의 샘플 코드 조각
1. 외부 테이블 생성
Hive>CREATE EXTERNAL TABLE guruhive_external(id INT,Name STRING) Row format delimited Fields terminated by '\t' LOCATION '/user/guru99hive/guruhive_external;
2. 테이블 생성 시 위치를 지정하지 않은 경우 수동으로 데이터를 로드할 수 있습니다.
Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO TABLE guruhive_external;
3. 테이블의 내용을 표시합니다.
Hive>select * from guruhive_external;
4. 내부 테이블을 삭제하려면
Hive>DROP TABLE guruhive_external;
다음 스크린샷에서 우리는 출력을 관찰할 수 있습니다
위의 코드에서 우리는 다음과 같은 일을 합니다.
- 외부 테이블 만들기
- 외부 테이블에 데이터 로드
- 테이블의 내용을 표시합니다.
- 외부 테이블 삭제
내부 테이블과 외부 테이블의 차이점
특색 | 내부의 | 외부 |
---|---|---|
개요 | 스키마 데이터 | 데이터에 대한 스키마 |
보관 장소 | /usr/하이브/창고 | HDFS 위치 |
데이터 가용성 | 로컬 파일 시스템 내 | HDFS 내 |