기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
unnest
unnest
를 사용하여 입력으로 가져온 목록을 평면화하여 목록의 각 요소에 대해 단일 레코드로 여러 레코드를 생성합니다. 필드에 포함된 항목 수에 따라이 명령은 현재 레코드를 삭제하고 새 레코드를 생성합니다. 각 레코드에는 항목을 unnested_field
나타내는가 포함됩니다. 다른 모든 필드는 원본 레코드에서 가져옵니다.
에 대한 입력은 jsonParse
함수에서 LIST
오는 unnest
입니다. 자세한 내용은 구조 유형을 참조하세요. MAP
, String
및와 같은 다른 모든 유형은에서 하나의 항목이 있는 목록으로 numbers
처리됩니다unnest
.
명령 구조
다음 예제에서는이 명령의 형식을 설명합니다.
unnest field into unnested_field
쿼리 예
다음 예제에서는 JSON 객체 문자열을 구문 분석하고 필드 이벤트 목록을 확장합니다.
fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name
이 예제 쿼리의 로그 이벤트는 다음과 같이 JSON 문자열일 수 있습니다.
{ "events": [ { "name": "exception" }, { "name": "user action" } ] }
이 경우 샘플 쿼리는 쿼리 결과에 두 개의 레코드를 생성합니다. 하나는가 event.name
이고 exception
다른 하나는 사용자 작업event.name
입니다.
쿼리 예
다음 예제에서는 목록을 평면화한 다음 항목을 필터링합니다.
fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
쿼리 예
다음 예제에서는 집계 목록을 평면화합니다.
fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10