Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- collections
- 텐서플로
- 알고리즘
- tensorflow
- C언어
- GRU
- hive
- RNN
- python
- 선형대수
- effective python
- 하둡2
- 하이브
- 코딩더매트릭스
- yarn
- 딥러닝
- hadoop2
- Sort
- LSTM
- Java
- recursion
- C
- 그래프이론
- 주식분석
- HelloWorld
- graph
- NumPy
- scrapy
- 파이썬
- codingthematrix
Archives
- Today
- Total
EXCELSIOR
하이브 버킷(Hive Bucket) 본문
하이브는 효율적인 쿼리문 수행을 위해 버킷이라는 데이터 모델을 제공한다. 버킷은 버킷 칼럼 해시를 기준으로 데이터를 지정된 개수의 파일로 분리해서 저장한다. 버킷은 테이블을 생성할 때 다음과 같은 형태로 선언한다.
CLUSTERED BY (칼럼) INTO 버킷 개수 BUCKETS;
버킷을 사용하면 쿼리의 성능을 향상시킬 수 있다. 예를 들어, 조인키로 버킷을 생성해두면 생성된 버킷 중 필요한 버킷만 조회하면 되기 때문에 디렉터리 전체를 풀스캔하는 것보다 훨씬 빠르게 작업을 처리할 수 있다. 또한 버킷을 이용하면 데이터 샘플링을 이용한 다양한 쿼리를 수행할 수 있다.
그럼 이제 실제 버킷을 생성해보도록 하자. 다음의 테이블 생성은 UniqueCarrier 칼럼을 대상으로 20개의 버킷을 생성한다.
hive> CREATE TABLE airline_delay2(Year INT, Month INT, UniqueCarrier STRING, ArrDelay INT, DepDelay INT) > CLUSTERED BY (UniqueCarrier) INTO 20 BUCKETS; OK Time taken: 1.153 seconds
테이블을 생성했으면 2008년도 항공 운항 지연 데이터를 새로운 테이블에 등록한다.
hive> INSERT OVERWRITE TABLE airline_delay2 > SELECT Year, Month, UniqueCarrier, ArrDelay, DepDelay > FROM airline_delay > WHERE delayYear = 2008;
쿼리문에서 버킷 데이터 샘플을 사용하려면 TABLESAMPLE 절을 이용하면 된다. 다음은 20개의 버킷 중 첫 번째 버킷에서 샘플을 조회하는 쿼리문이다.
hive> SELECT UniqueCarrier, COUNT(*) > FROM airline_delay2 > TABLESAMPLE(BUCKET 1 OUT OF 20) > GROUP BY UniqueCarrier
'DataBase > Hadoop' 카테고리의 다른 글
스쿱(sqoop) 설치 (0) | 2016.12.07 |
---|---|
아파치 스쿱(Apache Sqoop) (1) | 2016.12.07 |
하이브 조인(Hive Join) (0) | 2016.11.30 |
하이브(Hive) - 데이터 업로드 (0) | 2016.11.26 |
Apache-Hive : 하이브QL(Hive QL) - 테이블 생성 (0) | 2016.11.21 |
Comments