pivot
행과 열 기준 필드를 지정하여 피벗 테이블 형태로 집계합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 분석 노드에서 실행 (reducer) |
문법
옵션
parallel=BOOL- 병렬 집계 사용 여부.
t또는f로 지정합니다.
대상
AGG_FUNC [as ALIAS], ...- 집계 함수와 선택적 별칭. 쉼표(
,)로 구분하여 여러 집계 함수를 지정할 수 있습니다. {rows|by} FIELD, ...- 행 기준 필드.
rows또는by키워드를 사용합니다. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다. {cols|for} FIELD, ...- 열 기준 필드.
cols또는for키워드를 사용합니다. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다.
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| (행 기준 필드) | 모든 타입 | 조건부 | rows 또는 by 절에 지정한 그룹화 기준 필드 |
| (열 기준 필드) | 모든 타입 | 조건부 | cols 또는 for 절에 지정한 열 기준 필드 |
| (집계 대상 필드) | 모든 타입 | 조건부 | 집계 함수가 참조하는 필드 |
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| (행 기준 필드) | 모든 타입 | 행 그룹화 기준 필드 값 |
| (열 기준 값) 또는 (집계 함수 별칭) | 모든 타입 | 열 기준 필드의 고유 값 또는 집계 함수 결과 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 21800 | 필드를 입력하십시오. | 집계 함수가 지정되지 않은 경우 |
런타임 오류
해당 사항 없음
설명
pivot 명령어는 입력 레코드를 행 기준 필드와 열 기준 필드의 조합별로 그룹화하고, 각 그룹에 집계 함수를 적용합니다. 열 기준 필드의 고유 값이 출력 필드 이름이 되어 피벗 테이블 형태의 결과를 생성합니다.
열 기준 필드의 고유 값이 최대 1,000개를 초과하면 오류가 발생합니다.
rows와 by, cols와 for는 각각 동일한 키워드입니다. 순서는 자유롭게 지정할 수 있습니다.
분산 환경에서는 분석 노드에서 최종 집계를 수행합니다.
pivot 명령어는 입력 레코드를 수신하는 동안 메모리 내 버퍼에 집계 결과를 누적합니다. 버퍼 크기 기본값은 열 기준 필드가 있으면 50,000건, 없으면 100,000건이며, 이 임계값을 초과하면 중간 집계 결과를 디스크에 플러시합니다. 이 값은 시스템 프로퍼티 araqne.logdb.aggregate_flush_size에서 열있음:열없음 형식으로 변경할 수 있습니다. 집계가 완료된 결과는 2,000건 단위로 묶어서 출력합니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
행과 열 기준 피벗
table WEB_APACHE_SAMPLE | pivot count rows method cols statusHTTP 메서드(행)와 상태 코드(열)의 조합별 요청 건수를 피벗 테이블로 출력합니다.
-
by와for키워드 사용table WEB_APACHE_SAMPLE | pivot sum(bytes) as total_bytes by method for statusby와for키워드를 사용하여 HTTP 메서드별, 상태 코드별 전송 바이트 합계를 피벗 테이블로 출력합니다. -
여러 집계 함수 사용
table WEB_APACHE_SAMPLE | pivot count, avg(bytes) as avg_bytes rows method cols statusHTTP 메서드(행)와 상태 코드(열)의 조합별 요청 건수와 평균 바이트를 피벗 테이블로 출력합니다.
호환성
pivot 명령어는 소나 4.0 이전 버전부터 제공되었습니다.