2015-01-20 2 views
3

하이브 테이블에 인덱스를 사용했을 때의 영향을 분석하고 있습니다. 나는 5 개의 컬럼 (COL1, COL2, COL3, COL4, COL5)을 가진 테이블을 생성하고 그것에 100000 개의 로우를로드했다. 또한이 테이블에서 COL1에 대한 색인을 만들었습니다. 인덱스 열인 COL1에 WHERE 절이있는 select *를 실행했습니다. 인덱스를 만들기 전에 동일한 쿼리를 실행했을 때와 비교하여 쿼리 실행 시간이 향상되지 않았습니다. 내가 선택한 쿼리에서 EXPLAIN을 수행했는데 IndexScan 대신 TableScan이 표시되어 인덱스를 사용하지 않는 이유를 알 수 없습니다. 도와주세요.하이브 쿼리가 인덱스를 사용하지 않음

답변

2

thisthis을 확인할 수 있지만 기본적으로 다음과 같습니다.

  1. 인덱스

    테이블에 INDEX ...을 만듭니다 ... 만들기

  2. 인덱스

    ALTER INDEX를 구축 .. ON ... REBUILD;

  3. 를 사용하여 인덱스

    INSERT 덮어 쓰기 DIRECTORY '/ tmp를/색인/...'_..__... default__t FROM _bucketname, _offsets을 선택

    SET hive.index.compact.file =/tmp/indexes/x;

    SET hive.input.format = org.apache.hadoop.hive.ql.index.compact.HiveCompactIndexInputFormat;

    SELECT ...에서 ... 어디에 ... 그룹 by ...;

희망이 도움
관련 문제