unnest - CloudWatch Amazon-Protokolle

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

unnest

Wird verwendetunnest, um eine als Eingabe verwendete Liste zu vereinfachen, sodass mehrere Datensätze mit einem einzigen Datensatz für jedes Element in der Liste erstellt werden. Basierend auf der Anzahl der Elemente, die ein Feld enthält, verwirft dieser Befehl den aktuellen Datensatz und generiert neue Datensätze. Jeder Datensatz enthält denunnested_field, der ein Element darstellt. Alle anderen Felder stammen aus dem ursprünglichen Datensatz.

Die Eingabe für unnest istLIST, die aus der jsonParse Funktion stammt. Weitere Informationen finden Sie unter Strukturtypen. Alle anderen TypenMAP, wie z. B. String undnumbers, werden als Liste mit einem Element behandeltunnest.

Befehlsstruktur

Das folgende Beispiel beschreibt das Format dieses Befehls.

unnest field into unnested_field
Beispielabfrage

Im folgenden Beispiel wird eine JSON-Objektzeichenfolge analysiert und eine Liste von Feldereignissen erweitert.

fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name

Das Protokollereignis für diese Beispielabfrage könnte eine JSON-Zeichenfolge wie folgt sein:

{ "events": [ { "name": "exception" }, { "name": "user action" } ] }

In diesem Fall erzeugt die Beispielabfrage zwei Datensätze im Abfrageergebnis, einen mit event.name als exception und einen mit event.name einer Benutzeraktion

Beispielabfrage

Im folgenden Beispiel wird eine Liste reduziert und anschließend Elemente herausgefiltert.

fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
Beispielabfrage

Im folgenden Beispiel wird eine Liste zur Aggregation reduziert.

fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10