rollup
입력 레코드를 그룹별로 집계하고, by 절에 지정한 필드 순서대로 소계와 총계를 함께 출력합니다. SQL의 GROUP BY ROLLUP과 동일한 계층적 소계를 생성합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 분석 노드에서 실행 (reducer) |
문법
옵션
parallel=BOOL- 병렬 집계 사용 여부.
t또는f로 지정합니다. label=STR- 소계 및 총계 행에서 그룹 필드에 표시할 레이블 값. 지정하지 않으면
null로 표시됩니다.
대상
AGG_FUNC [as ALIAS], ...- 집계 함수와 선택적 별칭. 쉼표(
,)로 구분하여 여러 집계 함수를 지정할 수 있습니다.as키워드로 출력 필드 이름을 지정합니다. 단,percentile,median등 순서 기반 집계 함수와dc(고유 값 수) 함수는 지원하지 않습니다. by FIELD, ...- 그룹 기준 필드. 쉼표(
,)로 구분하여 여러 필드를 지정할 수 있습니다.rollup명령어에서by절은 필수입니다.
출력 필드
그룹 필드와 집계 함수 결과 필드를 출력합니다. by 절에 지정한 필드가 먼저 출력되고, 집계 함수 결과가 이어서 출력됩니다. 출력은 그룹 필드 기준으로 정렬됩니다. 소계 및 총계 행에서는 집계 대상이 아닌 그룹 필드 값이 label 옵션에 지정한 값 또는 null로 표시됩니다.
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 21700 | 집계 함수를 입력하세요. | 집계 함수가 지정되지 않은 경우 |
| 21701 | 잘못된 쿼리 입니다. | by 절의 문법이 잘못된 경우 |
| 21702 | {function}은 지원하지 않는 함수입니다. | 존재하지 않는 집계 함수를 사용한 경우 |
| 21703 | {function} 함수를 생성할 수 없습니다. {msg} | 집계 함수 생성에 실패한 경우 |
| 21704 | grouping set command에는 BY절이 필요합니다. | by 절이 지정되지 않은 경우 |
| 21705 | rollup/cube에서는 {function} 함수를 지원하지 않습니다. | 순서 기반 집계 함수 또는 dc 함수를 사용한 경우 |
런타임 오류
해당 사항 없음
설명
rollup 명령어는 입력 레코드를 by 절에 지정한 필드 기준으로 그룹화하고, 각 그룹에 대해 집계 함수를 적용합니다. stats 명령어와 달리 그룹 필드의 계층 구조에 따른 소계와 총계를 자동으로 생성합니다.
예를 들어 by a, b 절이 지정된 경우, 다음 3가지 수준의 집계를 출력합니다:
a,b조합별 집계 (상세)a별 집계 (소계)- 전체 집계 (총계)
소계 및 총계 행에서 집계 대상이 아닌 그룹 필드 값은 label 옵션으로 지정한 문자열 또는 null로 채워집니다. 출력은 그룹 필드 값을 기준으로 정렬됩니다.
분산 환경에서는 분석 노드에서 최종 집계를 수행합니다.
rollup 명령어는 입력 레코드를 처리하는 동안 메모리 내 버퍼에 집계 결과를 누적합니다. 버퍼 크기 기본값은 100,000건이며, 이 임계값을 초과하면 중간 집계 결과를 디스크에 플러시합니다. 이 값은 시스템 프로퍼티 araqne.logdb.aggregate_flush_size로 변경할 수 있습니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
단일 그룹 필드의 소계와 총계
table WEB_APACHE_SAMPLE | rollup count by methodHTTP 메서드별 요청 건수와 전체 총계를 출력합니다. 총계 행의
method필드 값은null로 표시됩니다. -
여러 그룹 필드의 계층적 소계
table WEB_APACHE_SAMPLE | rollup count, sum(bytes) as total_bytes by method, statusHTTP 메서드와 상태 코드의 조합별 건수 및 바이트 합계, 메서드별 소계, 전체 총계를 출력합니다.
-
레이블을 지정한 소계
table WEB_APACHE_SAMPLE | rollup label="전체" count, sum(bytes) as total_bytes by method, statusHTTP 메서드와 상태 코드의 조합별 건수 및 바이트 합계를 집계합니다. 소계 및 총계 행에서 집계 대상이 아닌 그룹 필드에
전체가 표시됩니다.
호환성
rollup 명령어는 소나 4.0 이전 버전부터 제공되었습니다.