Hive 테이블 생성: 내부 테이블, 변경, 삭제(예제 포함)

작업대 Opera다음과 같은 생성, 변경 및 삭제 이 튜토리얼에서는 Hive의 테이블을 관찰할 수 있습니다.

아래 스크린샷에서는 열이 있는 테이블을 만들고 테이블 이름을 변경하고 있습니다.

1. "empid" 및 "empname"과 같은 두 개의 열 이름을 사용하여 guru_sample 테이블 생성

2. guru99 데이터베이스에 있는 테이블 표시

3. 테이블 아래에 표시되는 Guru_sample

4. "guru_sample" 테이블을 "guru_sampleNew"로 변경

5. 다시 "show" 명령을 실행하면 새 이름 Guru_sampleNew가 표시됩니다.

Hive 테이블 생성

Dropping table guru_sampleNew:

Hive 테이블 생성

테이블 유형 및 사용법

오는 테이블 이는 전통적인 관계형 데이터베이스에서 생성하는 방식과 같습니다. 필터링, 조인 등의 기능을 테이블에서 수행할 수 있습니다.

하이브 다음과 같은 두 가지 유형의 테이블 구조를 다룹니다. 내부적 인 그리고 외부적인 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 내