남는건 기록뿐

Hive의 3 가지 Table Type, Data Load 본문

Hive & Impala

Hive의 3 가지 Table Type, Data Load

루크안 2020. 6. 17. 10:01
반응형

Managed

-> 테이블 생성 시 옵션을 따로 설정하지 않으면 Managed Table로 생성된다. 세션이 종료되어도 테이블의 데이터와 파일은 유지되는데, Table을 Drop하면 파일도 함께 삭제된다.

USE retail_db; 

CREATE TABLE orders (

  order_id INT COMMENT 'Unique order id',

  order_dat STRING COMMENT 'Date on which order is placed',

  order_customer_id INT COMMENT 'Customer id who placed the order',

  order_status STRING COMMENT 'Current status of the order'

) COMMENT 'Table to save order level details'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/data/retail_db/orders' INTO TABLE orders;

 

 

External

-> External 옵션은 Managed Table과 파일 삭제 정책을 제외하고 동일하다고 한다. External Table은 DROP하면 파일은 그대로 유지되므로 사용자의 실수로 인한 파일 삭제를 방지할 수 있다는 장점이 있다.

USE retail_db; 

CREATE EXTERNAL TABLE orders (

  order_id INT COMMENT 'Unique order id',

  order_dat STRING COMMENT 'Date on which order is placed',

  order_customer_id INT COMMENT 'Customer id who placed the order',

  order_status STRING COMMENT 'Current status of the order'

) COMMENT 'Table to save order level details'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA INPATH '/public/retail_db/orders' INTO TABLE orders;

Managed와 차이점은 Table을 생성할 때 있다.

 

Temporary

Temporary Table은 현재 세선에서만 사용 가능한 Table을 생성한다. 현재 세션이 종료되면 제거되기 때문에 말 그대로 임시 Table이다.

 

Data Load

1. 테이블을 만들고 데이터를 LOAD 했을 시, 해당 경로에 있는 DATA는 삭제된다.

USE retail_db; 

CREATE EXTERNAL TABLE orders (

  order_id INT COMMENT 'Unique order id',

  order_dat STRING COMMENT 'Date on which order is placed',

  order_customer_id INT COMMENT 'Customer id who placed the order',

  order_status STRING COMMENT 'Current status of the order'

) COMMENT 'Table to save order level details'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA INPATH '/public/retail_db/orders' INTO TABLE orders;

 

 

2. 테이블을 만드는 Query 안에 경로가 있을 시, 해당 경로에 있는 DATA는 삭제 되지 않는다.

USE retail_db; 

CREATE EXTERNAL TABLE orders (

  order_id INT COMMENT 'Unique order id',

  order_dat STRING COMMENT 'Date on which order is placed',

  order_customer_id INT COMMENT 'Customer id who placed the order',

  order_status STRING COMMENT 'Current status of the order'

) COMMENT 'Table to save order level details'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

LOCATION '/public/retail_db/orders';

Hive 3.x에서 수정된 사항

  • Hive default execution engine은 기존 MR에서 Tez로 바뀌었다.
  • 주요 권한 모델로 Ranger를 사용하지만, Ranger를 쓰지 않는다면 기존 HDFS ACL을 사용한다고 한다.(뭥미?)
  • Hive 2에서 제공하던 transactional 기능과 성능 및 사용성이 향상되었다.

 

반응형

'Hive & Impala' 카테고리의 다른 글

.hiverc setting!  (0) 2020.06.17
Hive Partition, Bucketting에 대하여  (0) 2020.06.17
MR과 TEZ의 차이  (0) 2020.06.16
Hive CLI(Command Line Interface)  (0) 2020.06.15
Docker에서 Cloudera Quick Start Vm Image 다운받기  (0) 2020.06.15
Comments