Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
unnest
unnest
À utiliser pour aplatir une liste prise en entrée afin de produire plusieurs enregistrements avec un seul enregistrement pour chaque élément de la liste. En fonction du nombre d'éléments contenus dans un champ, cette commande supprime l'enregistrement actuel et génère de nouveaux enregistrements. Chaque enregistrement inclut leunnested_field
, qui représente un élément. Tous les autres champs proviennent de l'enregistrement d'origine.
L'entrée pour unnest
LIST
is provient de la jsonParse
fonction. Pour plus d'informations, consultez la section Types de structures. Tous les autres types, tels que MAP
numbers
, String
et, sont traités comme une liste contenant un élémentunnest
.
Structure de commande
L'exemple suivant décrit le format de cette commande.
unnest field into unnested_field
Exemple de requête
L'exemple suivant analyse une chaîne d'objet JSON et développe une liste d'événements de champ.
fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name
L'événement de journal pour cet exemple de requête peut être une chaîne JSON comme suit :
{ "events": [ { "name": "exception" }, { "name": "user action" } ] }
Dans ce cas, l'exemple de requête produit deux enregistrements dans le résultat de la requête, l'un avec « event.name
as » exception
et l'autre avec « event.name
as user action ».
Exemple de requête
L'exemple suivant aplatit une liste, puis filtre les éléments.
fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
Exemple de requête
L'exemple suivant aplatit une liste à des fins d'agrégation.
fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10