LanguageManual Explain

LanguageManual Explain

쿼리의 실행 계획(execution plan)을 확인하는 EXPLAIN 문장을 다루는 문서예요. 옵션에 따라 물리적 실행 계획, 비용 기반 최적화(CBO) 계획, AST, 의존성, 인증 정보, 락, 벡터화 정보까지 다양한 관점으로 쿼리를 분석할 수 있습니다.

출처: 문서

본문

EXPLAIN 문장은 쿼리를 실제로 실행하지 않고 실행 계획을 보여 줍니다. 구문은 다음과 같습니다.

구문:

EXPLAIN [EXTENDED|CBO|AST|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION|ANALYZE] query

옵션 설명:

옵션 설명
(옵션 없음) 물리적 실행 계획(physical execution plan)을 보여 줍니다
EXTENDED 기본 실행 계획에 추가 정보(스키마, 경로 등)를 포함해 더 자세히 보여 줍니다
CBO 비용 기반 최적화(Cost-Based Optimization)가 만들어 낸 계획을 보여 줍니다
AST 쿼리의 추상 구문 트리(Abstract Syntax Tree)를 보여 줍니다
DEPENDENCY 쿼리가 의존하는 입력들에 대한 정보를 보여 줍니다
AUTHORIZATION 쿼리를 실행하기 위해 필요한 권한(authorization) 정보를 보여 줍니다
LOCKS 쿼리 실행에 필요한 락(lock) 정보를 보여 줍니다
VECTORIZATION 벡터화(vectorized) 실행 계획 및 실행 여부를 보여 줍니다
ANALYZE 실제로 쿼리를 실행한 뒤 통계와 함께 실행 계획을 보여 줍니다

예제:

EXPLAIN SELECT * FROM src WHERE key = 100;

기본 옵션을 사용하면 아래와 같은 형태의 실행 계획이 출력됩니다. 출력에는 STAGE DEPENDENCIES, STAGE PLANS, 그리고 각 단계의 Map Operator Tree/Reduce Operator Tree 같은 세부 정보가 포함됩니다.

참고 사항:

  • EXPLAIN EXTENDED 는 더 상세한 출력을 제공하지만, 출력 양이 매우 커질 수 있습니다.
  • EXPLAIN AUTHORIZATION 는 쿼리 실행에 필요한 Hive 권한(사용자, 그룹, 롤 기반)의 목록을 확인하는 데 유용합니다.

더 알아보기 (Learn more)

  • SELECT 문 — 실행 계획을 확인해 볼 대상 쿼리 작성법.
  • LanguageManual — Hive 언어 매뉴얼 목록.