반응형

Hive Buckets (버켓)

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

하이브는 쿼리 성능을 높이기 위해 버켓(Buckets)이라는 데이터 모델을 제공하며, 버켓은 지정된 칼럼의 값을 해쉬 처리하고 지정한 수의 파일로 나누어 저장한다. 조인에 사용되는 키로 버켓 컬럼을 생성하면 필요한 버켓만 조회하면 되기 때문에 전제 디렉터리를 풀스캔하는 것보다 훨씬 빠르게 처리할 있다.

파티션은 데이터를 디렉터리로 나누어 저장하는 방식이며 버켓은 데이터를 파일별로 나누어 저장한다. 아래 그림은 파티션과 버켓의 차이점을 쉽게 정의하고 있다.

 

 아래 스크립트는 버켓 테이블을 생성한다.

-- col2 버켓팅하여 20개의 파일에 저장

CREATE TABLE tbl1(

       col1 STRING,

       col2 STRING

)

CLUSTERED BY (col2) INTO 20 BUCKETS

LOCATION '/user/data/'

 

-- col2 버켓팅 하고, col1 기준으로 정렬

CREATE TABLE tbl2(

       col1 STRING,

       col2 STRING

)

CLUSTERED BY (col2) SORTED BY (col1) INTO 20 BUCKETS

LOCATION '/user/data/'

 

 

 

[참고자료]

https://data-flair.training/blogs/hive-partitioning-vs-bucketing/

 

 

 

2019-12-26 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, hive, 하이브, hive buckets, 하이브 버켓

반응형

'SW Engineering > Hadoop' 카테고리의 다른 글

MapReduce JobTracker  (0) 2019.12.31
MapReduce (맵리듀스)  (0) 2019.12.28
Hive Skewed (스큐)  (0) 2019.12.24
Hive Partition 생성,수정,복구  (0) 2019.12.21
Hive Meta Database  (0) 2019.12.19

+ Recent posts