explode

지정된 배열 또는 컬렉션 필드의 각 요소마다 레코드를 생성합니다. 일반적으로 배열(가로) 데이터를 행(세로) 방향으로 축 변환할 때 사용합니다. 지정된 필드가 존재하지 않거나, 배열이 아니거나, null인 경우 원본 레코드를 그대로 전달합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행수집 노드에서 실행 (mapper)

문법

explode FIELD

대상

FIELD
분리할 배열 또는 컬렉션 필드 이름. 필드 이름을 반드시 지정해야 합니다.

입력 필드

필드타입필수 여부설명
(대상 필드)배열 또는 컬렉션필수분리할 배열 또는 컬렉션 필드

출력 필드

필드타입설명
(대상 필드)모든 타입배열의 각 요소로 대체된 값

오류 코드

파싱 오류
오류 코드메시지설명
20300올바르지 않는 필드 이름입니다.필드 이름이 지정되지 않은 경우
런타임 오류

해당 사항 없음

설명

explode 명령어는 지정한 필드의 배열 또는 컬렉션 값을 각 요소별로 분리하여 여러 레코드로 확장합니다. 원본 레코드의 다른 필드는 모든 생성된 레코드에 그대로 복사됩니다.

지정한 필드가 배열이나 컬렉션이 아닌 경우 원본 레코드를 그대로 전달합니다. 지정한 필드가 null이거나 존재하지 않는 경우에도 원본 레코드를 그대로 전달합니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 문자열을 배열로 분리하여 집계

    table WEB_APACHE_SAMPLE
    | eval uri_parts = split(uri, "/")
    | explode uri_parts
    | search uri_parts != ""
    | stats count by uri_parts
    

    uri 필드를 /로 분리하여 각 경로 구성 요소별 요청 수를 집계합니다.

  2. 배열 필드를 행으로 확장

    json "[{'src_ip': '192.0.2.1', 'tags': ['web', 'critical']}, {'src_ip': '198.51.100.1', 'tags': ['db']}]"
    | explode tags
    | stats count by tags
    

    tags 배열 필드의 각 요소를 개별 레코드로 확장한 후 태그별 건수를 집계합니다.

호환성

explode 명령어는 소나 4.0 이전 버전부터 제공되었습니다.