ネスト解除 - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ネスト解除

unnest を使用して、入力として取得したリストをフラット化し、リスト内の各要素に対して 1 つのレコードを持つ複数のレコードを生成します。フィールドに含まれる項目の数に基づいて、このコマンドは現在のレコードを破棄し、新しいレコードを生成します。各レコードにはunnested_field、項目を表す が含まれます。他のすべてのフィールドは、元のレコードから取得されます。

の入力は unnestLISTjsonParse関数から取得されます。詳細については、「構造タイプ」を参照してください。MAP、、 などの他のタイプはnumbers、 に 1 String つの項目を含むリストとして扱われます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" } ] }

この場合、サンプルクエリはクエリ結果に 2 つのレコードを生成します。1 つは ユーザーアクションevent.nameとして を使用し、exceptionもう 1 つはユーザーアクション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