本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
unnest
unnest
用于扁平化作为输入的列表,以生成多条记录,列表中的每个元素都有一条记录。根据字段包含的项目数,此命令会丢弃当前记录并生成新记录。每条记录都包含unnested_field
,它代表一个项目。所有其他字段均来自原始记录。
的输入unnest
为LIST
,它来自jsonParse
函数。有关更多信息,请参阅结构类型。任何其他类型(例如MAP
numbers
、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" } ] }
在这种情况下,示例查询会在查询结果中生成两条记录,一条带有 as,另一条带有 a event.name
event.name
s exception
user action
示例查询
以下示例将列表展平,然后筛选出项目。
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