parsemap

맵 타입 필드의 키-값 쌍을 개별 필드로 추출합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행미지원

문법

parsemap field=FIELD [overlay={t|f}]

옵션

field=FIELD
맵 타입 값을 포함하는 필드 이름. 필수 옵션입니다.
overlay={t|f}
t 지정 시 원본 레코드의 필드를 유지하면서 맵의 키-값 쌍을 덮어씁니다. 생략하면 맵의 키-값 쌍만 출력합니다. (기본값: f)

입력 필드

필드타입필수 여부설명
(대상 필드)객체필수맵 타입 값을 포함하는 필드 (field 옵션으로 지정)

출력 필드

필드타입설명
(맵 키 이름)모든 타입맵의 각 키-값 쌍으로 추출된 필드

오류 코드

파싱 오류
오류 코드메시지설명
22100필드를 입력하십시오.field 옵션이 지정되지 않은 경우

설명

parsemap 명령어는 지정한 필드의 맵 값에서 키-값 쌍을 추출하여 각 키를 필드로 생성합니다. 지정한 필드가 맵 타입이 아니거나 null이면 원본 레코드를 그대로 전달합니다.

사용 예

  1. 맵 필드의 키-값 추출

    json "{'complex': {'id': 100, 'name': 'Logpresso'}}" | parsemap field=complex
    

    complex 필드의 맵에서 id, name 필드를 추출합니다.

  2. 원본 필드를 유지하면서 추출

    json "{'line': '<doc><name locale=\"ko\">로그프레소</name></doc>'}"
    | parsexml
    | parsemap field=name overlay=t
    

    parsexml 명령어로 추출한 name 필드가 맵 타입인 경우, overlay=t로 원본 필드를 유지하면서 맵의 키-값 쌍을 필드로 추출합니다.

호환성

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