본문 바로가기
빅데이터/hive

[hive] 하이브 성능 개선#1 - CBO, Stat 를 이용하여 통계 쿼리 성능 개선

by hs_seo 2017. 11. 29.

하이브의 CBO, StatDEV를 이용하면 통계형 데이터(count, sum)의 데이터를 확인하는데 큰 성과를 볼 수 있다. 


우선 하이브 위키의 StatDev(바로가기)와  

Statics 관련 설정(바로가기)을 확인하면 좀더 많은 정보를 확인할 수 있다. 


요약하면 하이브는 통계성 지표의 성능을 높이기 위해 메타데이터에 관련 정보를 저장하고 있다. 

desc extended 명령으로 확인하면 row 개수, 파일 개수, 파일 사이즈 등의 정보를 메타에 보관하고 있는 것을 볼 수 있다. 


관련된 주요 설정은 다음과 같다. 



# 메타 정보를 이용하여 통계지표를 확인할 수 있게 함

set hive.compute.query.using.stats=true;


# 하이브가 자동으로 메타 정보를 수집하게 함(기본값 true)

set hive.stats.autographer=true;


# 메타정보 저장 주체를 설정

set hive.stats.dbclass=fs;


이상의 설정을 설정하고 ANALYZE 명령으로 메타 정보를 갱신하게 하면 메타가 없던 테이블도 메타를 활용 할 수 있다. 

아래와 같이 테이블 전체, 파티션 별로 설정이 가능하다. 


ANALYZE TABLE Table1 PARTITION(ds='2008-04-09', hr=11) COMPUTE STATISTICS FOR COLUMNS;

ANALYZE TABLE Table1 PARTITION(ds='2008-04-09', hr) COMPUTE STATISTICS;

ANALYZE TABLE Table1 PARTITION(ds, hr) COMPUTE STATISTICS;

ANALYZE TABLE Table1 COMPUTE STATISTICS;

ANALYZE TABLE Table1 COMPUTE STATISTICS FOR COLUMNS;



반응형