Hive 통계 정보

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

하이브는 테이블의 로우 , 파일 개수, 사이즈 등의 통계 정보를 이용하여 데이터를 빠르게 처리한다. 통계정보는 CBO(Cost Base Optimize) 방식이며, 실행계획 최적화, 단순 카운트 쿼리 등에 사용된다. 하이브는 기본적으로 통계 정보를 자동 수집하도록 되어 있어 따로 설정하지 않아도 테이블의 메타정보에 통계정보를 수집한다. 하지만 사용하는 버전, 제조사에 따라 설정이 다를 있으니 반드시 재확인을 있도록 한다. 통계 정보를 설정하는 옵션은 아래와 같다.

set hive.stats.autogather=true;

set hive.stats.column.autogather=true;

 

DML 이용하여 처리할 때는 통계 정보를 자동으로 수집하지만  파티션 위치에 파일을 직접 복사한 경우 메타데이터가 갱신되지 않아 통계 정보가 정확하지 않을 있다. 경우 Analyze명령을 사용하여 수동으로 통계 정보를 업데이트 할수 있다.

--tbl 테이블 통계정보 수집

ANALYZE TABLE tbl COMPUTE STATISTICS;

 

--tbl 테이블의 yymmdd '2020-01-01' 파티션의 통계정보 수집

ANALYZE TABLE tbl PARTITION(yymmdd='2020-01-01') COMPUTE STATISTICS;

 

--컬럼 통계정보 수집

ANALYZE TABLE tbl PARTITION(yymmdd='2018-01-01') COMPUTE STATISTICS FOR COLUMNS;

 

통계정보는 desc extended|formatted 명령으로 확인할 있으며, 테이블 정보, 파티션 정보에 통계정보가 추가되어 나타난다.

desc formatted tbl partition(yymmddval='20180101');

 

Table Parameters:               

        COLUMN_STATS_ACCURATE   {\"BASIC_STATS\":\"true\"}

        EXTERNAL                TRUE               

        last_modified_by        root             

        last_modified_time      1577490527         

        numFiles                9973               

        numPartitions           392                

        numRows                 2305106979         

        rawDataSize             12729039219        

        totalSize               717032673468       

        transient_lastDdlTime   1577490527

 

 

통계정보를 활용하기 위해서는 쿼리 호출시 통계 정보를 활용할 있도록 설정해야 한다. 아래 예제는 단순 count 하는 쿼리를 MapReduce 작업을 통하지 않고 통계정보를 이용하여 데이터를 확인할 있다.

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

 

-- 통계정보를 활용하여 쿼리 실행

hive> select count(*) from tbl;

 

 

[참고자료]

·       https://cwiki.apache.org/confluence/display/Hive/StatsDev

·       https://wikidocs.net/26789

 

 

 

2020-01-28 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석,  Hive, Hive 쿼리, Hive Query, 하이브 통계, Hive Statistics, Hive CBO, 하이브 옵티마이저

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

Hive 파일 압축  (0) 2020.02.07
Hive 파일 Merge  (0) 2020.02.04
Hive 통계 정보  (0) 2020.01.29
Hive 쿼리 실행계획 보기  (0) 2020.01.17
YARN Node Labels (노드 레이블)  (0) 2020.01.16
YARN 메모리 설정  (0) 2020.01.14

+ Recent posts