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

Azure ADX适配MQTT-IoT Hub的数据格式及数据映射问题

问题解决:MQTT示例数据格式与ADX映射配置

一、MQTT示例实际发送的数据格式

你使用的Windows版MQTT示例,发送的是模拟传感器数据,JSON结构如下:

{
  "deviceId": "你的设备ID",
  "temperature": 25.3,
  "humidity": 58.1
}

注意:IoT Hub监控界面显示的origin和payload是事件的元数据信封结构,实际业务数据嵌套在payload字段内,而非整个事件就是origin+payload的结构。

二、正确的ADX配置步骤

1. 创建匹配的ADX表

先创建与业务数据字段匹配的表:

.create table SensorData (deviceId:string, temperature:real, humidity:real)

2. 创建正确的JSON摄入映射

ADX从IoT Hub摄入数据时,默认会解析消息的实际payload内容(而非IoT Hub的整个事件信封),因此映射需对应payload内的具体字段:

.create table SensorData ingestion json mapping 'SensorDataMapping' '[{"column":"deviceId","path":"$.deviceId","datatype":"string"},{"column":"temperature","path":"$.temperature","datatype":"real"},{"column":"humidity","path":"$.humidity","datatype":"real"}]'

三、特殊场景配置(若需摄入完整事件信封)

如果你的ADX数据连接配置选择了摄入整个IoT Hub事件信封,则需调整表结构与映射:

// 创建包含元数据的表
.create table SensorDataFull (origin:string, payload:dynamic)
// 对应信封结构的映射
.create table SensorDataFull ingestion json mapping 'SensorDataFullMapping' '[{"column":"origin","path":"$.origin","datatype":"string"},{"column":"payload","path":"$.payload","datatype":"dynamic"}]'

后续可通过parse_json(payload)语句从payload字段中提取具体业务数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:26:13