parsemap
맵 타입 필드의 키-값 쌍을 개별 필드로 추출합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 미지원 |
문법
parsemap field=FIELD [overlay={t|f}]
옵션
field=FIELD- 맵 타입 값을 포함하는 필드 이름. 필수 옵션입니다.
overlay={t|f}t지정 시 원본 레코드의 필드를 유지하면서 맵의 키-값 쌍을 덮어씁니다. 생략하면 맵의 키-값 쌍만 출력합니다. (기본값:f)
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| (대상 필드) | 객체 | 필수 | 맵 타입 값을 포함하는 필드 (field 옵션으로 지정) |
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| (맵 키 이름) | 모든 타입 | 맵의 각 키-값 쌍으로 추출된 필드 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 22100 | 필드를 입력하십시오. | field 옵션이 지정되지 않은 경우 |
설명
parsemap 명령어는 지정한 필드의 맵 값에서 키-값 쌍을 추출하여 각 키를 필드로 생성합니다. 지정한 필드가 맵 타입이 아니거나 null이면 원본 레코드를 그대로 전달합니다.
사용 예
-
맵 필드의 키-값 추출
json "{'complex': {'id': 100, 'name': 'Logpresso'}}" | parsemap field=complexcomplex필드의 맵에서id,name필드를 추출합니다. -
원본 필드를 유지하면서 추출
json "{'line': '<doc><name locale=\"ko\">로그프레소</name></doc>'}" | parsexml | parsemap field=name overlay=tparsexml 명령어로 추출한
name필드가 맵 타입인 경우,overlay=t로 원본 필드를 유지하면서 맵의 키-값 쌍을 필드로 추출합니다.
호환성
parsemap 명령어는 소나 4.0 이전 버전부터 제공되었습니다.