sort
지정한 필드를 기준으로 레코드를 정렬합니다. 필드 이름 앞에 - 기호를 붙이면 내림차순으로, + 기호 또는 기호 없이 오름차순으로 정렬합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 분석 노드에서 실행 (reducer) |
문법
옵션
limit=INT- 정렬 결과에서 출력할 최대 레코드 수
대상
[+|-]FIELD [{+|-}null]- 정렬 기준 필드. 쉼표(
,)로 구분하여 여러 필드를 지정할 수 있습니다.
+또는 부호 없음: 오름차순 (기본값)-: 내림차순+null: null 값을 앞에 배치-null: null 값을 뒤에 배치
null 순서를 지정하지 않으면 정렬 방향의 기본 순서가 적용됩니다.
[by FIELD, ...]- 파티션 필드.
by절을 지정하면 파티션 필드 값이 같은 그룹별로 독립적으로 정렬합니다.limit옵션과 함께 사용하면 각 그룹에서 상위 N개의 레코드를 추출할 수 있습니다.
입력 필드
없음
출력 필드
없음 (입력 레코드를 변경 없이 전달)
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 21600 | 정렬할 필드명을 입력하십시오. | 정렬할 필드가 지정되지 않은 경우 |
| 21601 | by절에 필드명들을 콤마로 구분하여 올바르게 입력하십시오. | by 절의 문법이 잘못된 경우 |
| 21602 | limit 값이 유효하지 않습니다. | limit 값이 0 이하인 경우 |
| 21603 | 정렬 필드명이 잘못되었습니다. | 필드 이름에 공백이 포함된 경우 |
런타임 오류
해당 사항 없음
설명
sort 명령어는 모든 입력 레코드를 수집한 후 지정한 필드 기준으로 정렬하여 출력합니다. 여러 필드를 기준으로 지정하면 첫 번째 필드 값이 같을 때 두 번째 필드 기준으로 정렬합니다. 중복된 정렬 키는 자동으로 제거됩니다.
by 절을 사용하면 파티션 필드 값이 같은 그룹별로 독립적으로 정렬합니다. limit과 함께 사용하면 각 그룹에서 상위 N개의 레코드를 추출할 수 있습니다.
분산 환경에서는 분석 노드에서 최종 정렬을 수행합니다.
limit 옵션을 지정한 경우 값에 따라 내부 알고리즘이 달라집니다. by 절 없이 사용할 때 limit 값이 10,000 이하이면 Top-N 알고리즘(TopSelector)으로 메모리 내에서 처리하고, 이를 초과하면 ParallelMergeSorter로 정렬합니다. by 절을 함께 사용하면 limit 값이 100 이하일 때 파티션별 Top-N 최적화를 적용합니다. 정렬 대상 레코드가 100,000건을 초과하면 중간 결과를 디스크에 플러시합니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
단일 필드 오름차순 정렬
table WEB_APACHE_SAMPLE | sort statusstatus필드(HTTP 상태 코드)를 기준으로 오름차순 정렬합니다. -
단일 필드 내림차순 정렬
table WEB_APACHE_SAMPLE | sort -bytesbytes필드(응답 크기)를 기준으로 내림차순 정렬합니다. 응답 크기가 큰 요청을 먼저 확인할 때 유용합니다. -
정렬 후 상위 N건 추출
table WEB_APACHE_SAMPLE | sort limit=10 -bytesbytes필드 기준 내림차순으로 정렬하여 응답 크기 상위 10건을 추출합니다. -
여러 필드 기준 정렬
table WEB_APACHE_SAMPLE | sort method, -bytesmethod필드를 오름차순으로, 같은 메소드 내에서는bytes필드를 내림차순으로 정렬합니다. -
그룹별 상위 N건 추출
table WEB_APACHE_SAMPLE | sort limit=5 -bytes by methodHTTP 메소드(
method) 값이 같은 그룹별로bytes기준 내림차순 정렬하고, 각 그룹에서 상위 5건을 추출합니다. -
null 순서 지정
table WEB_APACHE_SAMPLE | sort referer +nullreferer필드를 오름차순으로 정렬하되 null 값(리퍼러 없음)을 앞에 배치합니다.
호환성
sort 명령어는 소나 4.0 이전 버전부터 제공되었습니다.