Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
unnest
Si usa unnest
per appiattire un elenco preso come input per produrre più record con un singolo record per ogni elemento dell'elenco. In base al numero di elementi contenuti in un campo, questo comando elimina il record corrente e genera nuovi record. Ogni record include ilunnested_field
, che rappresenta un elemento. Tutti gli altri campi provengono dal record originale.
L'input per unnest
èLIST
, che proviene dalla jsonParse
funzione. Per ulteriori informazioni, vedere Tipi di struttura. Qualsiasi altro tipo, ad esempio String
e MAP
numbers
, viene considerato come un elenco contenente un elementounnest
.
Struttura dei comandi
L'esempio seguente descrive il formato di questo comando.
unnest field into unnested_field
Query di esempio
L'esempio seguente analizza una stringa di oggetto JSON ed espande un elenco di eventi di campo.
fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name
L'evento di registro per questa query di esempio potrebbe essere una stringa JSON come segue:
{ "events": [ { "name": "exception" }, { "name": "user action" } ] }
In questo caso, la query di esempio produce due record nel risultato della query, uno con event.name
as exception
e l'altro con event.name
un'azione utente
Query di esempio
L'esempio seguente appiattisce un elenco e quindi filtra gli elementi.
fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
Query di esempio
L'esempio seguente appiattisce un elenco per l'aggregazione.
fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10