As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
unnest
Use unnest
para nivelar uma lista usada como entrada para produzir vários registros com um único registro para cada elemento na lista. Com base no número de itens que um campo contém, esse comando descarta o registro atual e gera novos registros. Cada registro inclui ounnested_field
, que representa um item. Todos os outros campos vêm do registro original.
A entrada para unnest
isLIST
, que vem da jsonParse
função. Para obter mais informações, consulte Tipos de estrutura. Quaisquer outros tipos, como String
e MAP
numbers
, são tratados como uma lista com um item dentrounnest
.
Estrutura do comando
O exemplo a seguir descreve o formato desse comando.
unnest field into unnested_field
Consulta de exemplo
O exemplo a seguir analisa uma string de JSON objeto e expande uma lista de eventos de campo.
fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name
O evento de log para essa consulta de exemplo pode ser uma JSON string da seguinte forma:
{ "events": [ { "name": "exception" }, { "name": "user action" } ] }
Nesse caso, a consulta de amostra produz dois registros no resultado da consulta, um com event.name
as exception
e outro com event.name
a ação do usuário
Consulta de exemplo
O exemplo a seguir nivela uma lista e depois filtra os itens.
fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
Consulta de exemplo
O exemplo a seguir nivela uma lista para agregação.
fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10