Sort/Cluster/Distribute By 절

Sort/Cluster/Distribute By 절 (Sort/Cluster/Distributed by Clause)

Hive 방언(Dialect)에서 지원하는 결과를 분할·정렬하는 절들입니다.

출처: 문서

본문

SORT BY

설명 (Description)

출력의 전체 순서를 보장하는 ORDER BY와 달리, SORT BY는 각 파티션 안의 결과 행이 사용자가 지정한 순서가 됨을 보장할 뿐입니다. 따라서 파티션이 둘 이상이면 SORT BY는 부분적으로 정렬된 결과를 반환할 수 있습니다.

문법 (Syntax)

query: SELECT expression [ , ... ] FROM src sortBy
sortBy: SORT BY expression colOrder [ , ... ]
colOrder: ( ASC | DESC )

파라미터 (Parameters)

  • colOrder: 반환 행의 순서를 지정하는 데 사용합니다. 기본 순서는 ASC입니다.

예시 (Examples)

SELECT x, y FROM t SORT BY x;
SELECT x, y FROM t SORT BY abs(y) DESC;

DISTRIBUTE BY

설명 (Description)

DISTRIBUTE BY 절은 데이터를 다시 분할(repartition)하는 데 사용합니다. 지정된 표현식으로 평가한 값이 같은 데이터는 같은 파티션에 들어갑니다.

문법 (Syntax)

distributeBy: DISTRIBUTE BY expression [ , ... ]
query: SELECT expression [ , ... ] FROM src distributeBy

예시 (Examples)

-- only use DISTRIBUTE BY clause
SELECT x, y FROM t DISTRIBUTE BY x;
SELECT x, y FROM t DISTRIBUTE BY abs(y);

-- use both DISTRIBUTE BY and SORT BY clause
SELECT x, y FROM t DISTRIBUTE BY x SORT BY y DESC;

CLUSTER BY

설명 (Description)

CLUSTER BYDISTRIBUTE BYSORT BY의 축약입니다. CLUSTER BY는 입력 표현식에 따라 데이터를 먼저 다시 분할한 다음 각 파티션 안에서 데이터를 정렬합니다. 또한 이 절은 데이터가 각 파티션 안에서만 정렬됨을 보장합니다.

문법 (Syntax)

clusterBy: CLUSTER BY expression [ , ... ]
query: SELECT expression [ , ... ] FROM src clusterBy

예시 (Examples)

SELECT x, y FROM t CLUSTER BY x;
SELECT x, y FROM t CLUSTER BY abs(y);

더 알아보기 (Learn more)