如何将Azure IoT Hub的dt-subject系统属性传入Azure Stream Analytics
解决Azure Stream Analytics无法接收IoT即插即用dt-subject系统属性的问题
可以通过简单的输入配置解决这个问题,具体操作如下:
1. 配置Stream Analytics输入的系统属性
- 进入你的Azure Stream Analytics作业,找到对应的IoT Hub输入资源,点击进入配置界面
- 滚动到系统属性区域,找到并勾选
dt-subject(如果需要dt-dataschema等其他IoT PnP相关属性,可一并勾选) - 保存配置后,重启Stream Analytics作业,确保新配置生效
2. 在查询中访问dt-subject属性
配置完成后,dt-subject会被纳入输入的IoTHub对象中。由于属性名包含连字符,需要用方括号包裹来访问,示例查询如下:
SELECT temperature, IoTHub["dt-subject"] AS componentName, IoTHub["dt-dataschema"] AS dataSchema, EventEnqueuedUtcTime INTO [你的输出目标] FROM [你的输入源]
关于之前GetMetadataPropertyValue无效的说明
你用GetMetadataPropertyValue尝试获取属性返回null,是因为该函数仅用于访问Event Hub/IoT Hub的内置元数据(比如消息ID、设备ID等),而dt-subject属于IoT即插即用扩展的系统属性,不在默认暴露的元数据范围内,必须通过输入配置显式勾选才能被Stream Analytics识别。
配置生效后,你可以通过输入预览或者输出到存储验证,dt-subject会出现在IoTHub对象下,和你直接路由到Blob存储的格式一致。
内容的提问来源于stack exchange,提问作者James Coliz
相关产品推荐
相关产品推荐

