翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ネスト解除
unnest
を使用して、入力として取得したリストをフラット化し、リスト内の各要素に対して 1 つのレコードを持つ複数のレコードを生成します。フィールドに含まれる項目の数に基づいて、このコマンドは現在のレコードを破棄し、新しいレコードを生成します。各レコードにはunnested_field
、項目を表す が含まれます。他のすべてのフィールドは、元のレコードから取得されます。
の入力は unnest
でLIST
、 jsonParse
関数から取得されます。詳細については、「構造タイプ」を参照してください。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