데이터를 변경할 때마다 테이블 통계를 계산하십시오.
ANALYZE TABLE hive_table PARTITION(partitioned_col) COMPUTE STATISTICS FOR COLUMNS;
CBO 및 통계 자동 수집 사용 : 아무것도 내가 찾는이 방법을 적용하는 것이 좋습니다 것입니다 도움이되지 않으면
set hive.compute.query.using.stats=true;
set hive.stats.fetch.partition.stats=true;
set hive.stats.fetch.column.stats=true;
:
set hive.cbo.enable=true;
set hive.stats.autogather=true;
CBO 사용 통계를 사용하려면이 설정을 사용을 마지막 파티션은 빠름 : 테이블 위치에서 쉘 스크립트를 사용하여 최대 파티션 키를 구문 분석합니다. 아래 명령은 모든 테이블 폴더 경로를 인쇄하고, 정렬하고, 가장 최근에 정렬 된 것을 취하고, 마지막 하위 폴더 이름을 취하며, 파티션 폴더 이름을 파싱하고 값을 추출합니다.
last_partition=$(hadoop fs -ls $TABLE_DIR/* | awk '{ print $8 }' | sort -r | head -n1 | cut -d/-f [number of partition subfolder in the path here] | cut -d = -f 2
그런 다음
-hiveconf last_partition=$last_partition
로 스크립트에 전달
$last_partition
변수를 사용