如何按设备 ID 筛选从 IoT 中心使用的 Azure 时序见解事件

How to filter Azure Timeseries Insights events consumed from IoT Hub by Device ID

我们配置了以下架构:

  1. IoT 中心使用来自设备的遥测数据;
  2. 设备不会在遥测数据中发送它们的 ID。他们只发送传感器数据;
  3. Timeseries Insights 设置为自动使用来自 IoT 中心的事件;
  4. 后端 Web 应用程序正在显示来自使用 TSI JSON 查询的设备的原始数据。

我们的问题:

在后端应用程序中,我们正尝试按设备 ID 过滤事件。这是棘手的事情。如果遥测中存在设备 ID,则过滤很容易。但是,当遥测中不存在设备 ID 时,我们应该使用什么谓词来过滤设备 ID。 Azure 文档只定义了两个内置属性($esn$ts),但我们可以清楚地看到在响应值中,其中一个值是 Device ID。但是 属性 的名称是什么,以便我们可以将其包含在查询谓词中?

谢谢!

我可以通过在 属性 iothub-connection-device-id 上使用谓词来查询 Iot Hub 设备 ID。参考我的JSON

{
    "searchSpan": {
     "from": "2018-08-02T08:00:00.000Z",
     "to": "2018-08-02T15:00:00.000Z"
    },
    "predicate" : {
        "eq": {
            "left": {
                "property": "iothub-connection-device-id",
                "type": "String"
            },
            "right": "my-sample-device"
        }
    },
    "top" : {
        "sort": [{
            "input" : {
                "builtInProperty" : "$ts"
            },
            "order" : "Asc"
        }],
        "count" : 10
    }
}