하이브의 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;
'빅데이터 > hive' 카테고리의 다른 글
[hive] 정규식을 이용하여 문자열 검색 (0) | 2017.12.14 |
---|---|
[hive] JSON 문자열을 맵으로 변환(json string to map) (0) | 2017.12.12 |
[hive] dynamic partition 에서 리듀서를 하나만 사용하는 오류 수정 (0) | 2017.11.15 |
[Hive][Tez] TEZ에서 파일머지를 처리하는 중 App master already running a DAG 오류 처리 방법 (0) | 2017.11.10 |
[hive] 다이나믹 파티션 처리시 0 byte 파일이 생성될 때 설정 (0) | 2017.10.27 |