explode
지정된 배열 또는 컬렉션 필드의 각 요소마다 레코드를 생성합니다. 일반적으로 배열(가로) 데이터를 행(세로) 방향으로 축 변환할 때 사용합니다. 지정된 필드가 존재하지 않거나, 배열이 아니거나, null인 경우 원본 레코드를 그대로 전달합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
explode FIELD
대상
FIELD- 분리할 배열 또는 컬렉션 필드 이름. 필드 이름을 반드시 지정해야 합니다.
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| (대상 필드) | 배열 또는 컬렉션 | 필수 | 분리할 배열 또는 컬렉션 필드 |
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| (대상 필드) | 모든 타입 | 배열의 각 요소로 대체된 값 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 20300 | 올바르지 않는 필드 이름입니다. | 필드 이름이 지정되지 않은 경우 |
런타임 오류
해당 사항 없음
설명
explode 명령어는 지정한 필드의 배열 또는 컬렉션 값을 각 요소별로 분리하여 여러 레코드로 확장합니다. 원본 레코드의 다른 필드는 모든 생성된 레코드에 그대로 복사됩니다.
지정한 필드가 배열이나 컬렉션이 아닌 경우 원본 레코드를 그대로 전달합니다. 지정한 필드가 null이거나 존재하지 않는 경우에도 원본 레코드를 그대로 전달합니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
문자열을 배열로 분리하여 집계
table WEB_APACHE_SAMPLE | eval uri_parts = split(uri, "/") | explode uri_parts | search uri_parts != "" | stats count by uri_partsuri필드를/로 분리하여 각 경로 구성 요소별 요청 수를 집계합니다. -
배열 필드를 행으로 확장
json "[{'src_ip': '192.0.2.1', 'tags': ['web', 'critical']}, {'src_ip': '198.51.100.1', 'tags': ['db']}]" | explode tags | stats count by tagstags배열 필드의 각 요소를 개별 레코드로 확장한 후 태그별 건수를 집계합니다.
호환성
explode 명령어는 소나 4.0 이전 버전부터 제공되었습니다.