解巢狀 - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

解巢狀

使用 unnest將做為輸入的清單扁平化,為清單中的每個元素產生具有單一記錄的多個記錄。根據欄位包含的項目數量,此命令會捨棄目前的記錄並產生新的記錄。每個記錄都包含 unnested_field,代表一個項目。所有其他欄位都來自原始記錄。

的輸入unnestLIST,其來自 jsonParse函數。如需詳細資訊,請參閱結構類型。任何其他類型,例如 MAPStringnumbers,都會被視為清單中有一個項目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.nameexception另一個為 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