unnest - Amazon CloudWatch Logs

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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