Azure Monitor日志:用KQL从JSON字段提取键值并拆分多行
Azure Monitor日志JSON字段提取键值并拆分行
首先注意你提供的JSON示例存在语法错误,autoAbstractRegions的数组写法不符合标准JSON规范,正确格式应该是:
{ "industry": ["Health"], "autoAbstractRegions": ["United States", "Canada"] }
基于修正后的JSON结构,你可以在现有KQL语句基础上,通过键索引直接提取对应的值,再用mv-expand拆分值数组,最终实现每行对应一个键值对:
// 替换为你的表名和JSON字段名 YourTableName | extend keys = bag_keys(Filters) | mv-expand keys | extend values = Filters[keys] // 根据当前keys字段的值,从Filters中提取对应的数组值 | mv-expand values // 将值数组拆分为单独行,每个值对应一行
语句说明:
bag_keys(Filters):提取JSON对象Filters中的所有键,生成动态数组mv-expand keys:将键数组拆分为单独行,每行对应一个键Filters[keys]:利用当前行的keys值作为索引,从原始JSON对象中获取对应的数组值mv-expand values:将值数组拆分为单独行,最终每条记录对应一个key和单个value
如果你的原始JSON确实存在特殊格式的嵌套数组(非标准JSON),可以先通过array_concat等函数合并数组后再处理,但建议优先修正JSON格式以保证兼容性。
内容的提问来源于stack exchange,提问作者Brenda_love
相关产品推荐
相关产品推荐

