<aside>
💡 파티션은 데이터를 디렉토리로 분리하여 저장하는 것을 말한다.
하이브 같은 파일 기반 테이블은 기본적으로 테이블의 모든 roww 정보를 읽기 때문에 데이터가 많아지면 속도가 느려진다. 파티션 칼럼은 where 조건에서 컬럼 처럼 이용할 수 있기 때문에 처음에 읽어 들이는 데이터를 줄여서 처리 속도를 향상 시켜 준다.
</aside>
고정 파티션은 테이블에 데이터를 입력하는 시점에 파티션 정보를 전달하기 때문에 입력되는 파티션을 알 수 있다.
동적 파티션은 칼럼의 정보를 이용하여 동적으로 파티션이 생성되기 때문에 쿼리 시점에는 파티션을 알 수 없다. 데이터를 입력할 때 고정 파티션, 동적 파티션을 단독으로 이용할 수도 있고, 고정과 동적 파티션을 혼합하여 사용할 수도 있다고 한다.
※주의※
하이브에서 동적 파티션을 이용하기 위해서는 hive.exec.dynamic.partition.mode설정을 nonstrict로 변경해야 한다.
-- 동적 파티션만을 이용하여 데이터를 입력을 사용하기 위한 설정, 기본값은 strict 로 동적
set hive.exec.dynamic.partition.mode=nonstrict;