You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Stream Analytics嵌套数组查询推送PowerBI错误原因咨询

问题原因分析与修正方案

你的查询出错的核心问题在于没有正确处理嵌套的数组类型字段。

看你的输入JSON,values是一个数组(用方括号[]包裹),而你直接在SELECT语句里通过[values].id来引用数组内的属性——Azure Stream Analytics没办法自动将数组中的每个元素拆解出来,这样的查询要么会返回null值,要么会把整个数组对象原样传递给PowerBI,导致PowerBI无法正确识别这些字段,最终呈现出不符合预期的结果。

正确的处理方式

要解析嵌套数组,你需要使用Stream Analytics的GetArrayElements内置函数,配合CROSS APPLY(或OUTER APPLY)来展开数组中的每个元素,让每个数组元素都成为一条独立的记录,这样才能正确提取其中的属性。

以下是修正后的查询语句:

SELECT 
    timestamp, 
    vals.ArrayValue.id, 
    vals.ArrayValue.v, 
    vals.ArrayValue.q, 
    vals.ArrayValue.t 
INTO [PowerBI] 
FROM [IoTHub]
CROSS APPLY GetArrayElements([values]) AS vals

补充说明

  • GetArrayElements([values])会提取values数组中的每一个元素
  • CROSS APPLY会将原始事件与数组中的每个元素进行关联,生成对应数量的新记录(比如你的示例里数组有1个元素,就会生成1条记录)
  • 如果你的场景中values数组可能为空,建议用OUTER APPLY代替CROSS APPLY——这样即使数组为空,原始事件的timestamp等字段也会被保留,不会被过滤掉。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:53:27