如何在Azure日志分析中用Kusto查询提取单列Count数据?
Kusto查询提取JSON中所有Count值为单列数据
情况1:JSON是键值对对象(键为自定义名称,值为含Count的对象)
比如JSON结构类似:
{ "Item1": {"Count": 1234}, "Item2": {"Count": 566}, "Item3": {"Count": 45} }
这种场景下bag_unpack会把每个自定义键(Item1、Item2等)转为独立列,不符合单列需求。可以通过bag_values提取所有值为数组,再展开成行提取Count:
// 替换为你的表名和JSON列名 YourTable | extend count_items = bag_values(YourJsonColumn) // 将JSON对象的所有值提取为动态数组 | mv-expand count_items // 将数组展开为多行,每行对应一个含Count的对象 | extend Count = toint(count_items.Count) // 提取Count字段并转为数值类型 | project Count // 只保留Count列
情况2:JSON是含Count对象的数组
比如JSON结构类似:
[ {"Count": 76}, {"Count": 970}, {"Count": 1234} ]
这种场景直接展开数组再提取Count即可:
// 替换为你的表名和JSON列名 YourTable | mv-expand YourJsonColumn // 展开数组为多行 | extend Count = toint(YourJsonColumn.Count) | project Count
关键说明
bag_values():针对键值对类型的JSON,提取所有值组成数组,规避bag_unpack生成多列的问题mv-expand:将动态数组拆分为多行,让每个Count值单独占一行toint():确保Count转为数值类型(如果原始是字符串格式,可根据实际需求调整为todouble()等)
内容的提问来源于stack exchange,提问作者ADF-Learner
相关产品推荐
相关产品推荐

