如何在KQL中从JSON投影信号名称与对应值?
解决KQL中信号数组转列的问题
你可以通过mv-expand结合pivot函数实现需求,具体操作如下:
- 先展开
signals数组,把每个信号对象拆成单独的行 - 提取信号名称和对应的数值(注意原
values是数组,取第一个元素并转成对应数据类型) - 用
pivot将信号名称转成列,对应数值作为列值
示例KQL查询:
// 替换成你的原始表名 YourTable | mv-expand signals = SetOfSignals.signals | extend SignalName = signals.name, // 根据dataType调整类型转换函数,比如float()/todouble() SignalValue = todouble(signals.values[0]) // pivot将SignalName的不同值转为列,any()聚合因为每个原始行的单个信号仅对应一个值 | pivot(SignalName, any(SignalValue))
如果需要保留原表的其他字段(如时间戳、设备ID等),这些字段会自动保留在结果表中,和生成的信号列共同展示。
内容的提问来源于stack exchange,提问作者EindbaasJohn
相关产品推荐
相关产品推荐

