azure - 如何按设备 ID 筛选从 IoT 中心使用的 Azure Timeseries Insights 事件
问题描述
我们配置了以下架构:
- IoT Hub 使用来自设备的遥测数据;
- 设备不会在遥测数据中发送其 ID。他们只发送传感器数据;
- Timeseries Insights 设置为自动使用来自 IoT 中心的事件;
- 后端 Web 应用程序使用 TSI JSON 查询显示来自设备的原始数据。
我们的问题:
在后端应用程序中,我们尝试按设备 ID 过滤事件。这是棘手的事情。如果遥测中存在设备 ID,则过滤很容易。但是,当遥测中不存在设备 ID 时,我们应该使用什么谓词来过滤设备 ID。Azure 文档只定义了两个内置属性($esn
和$ts
),但我们可以清楚地看到,在响应值中,其中一个值是设备 ID。但是属性的名称是什么,以便我们可以将其包含在查询谓词中?
谢谢!
解决方案
我可以通过使用属性上的谓词来查询 IoT Hub 设备 ID iothub-connection-device-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
}
}
推荐阅读
- android - 如何在 ViewModel Android 中获取活动上下文?
- django - 使用rest框架的Django自定义url
- php - 在php动态分页中更改记录限制时的问题
- rust - Rust/rocket 将变量传递给端点
- excel - 如何根据其标准将一张 Excel 表格拆分为多张表格
- javascript - 如何仅获取文本输入中插入的字符?
- regex - Safari 对前瞻和后置 RegExp 的支持
- python - 如何解决python中的for循环?
- swiftui - 使用 List/ScrollView 与 SFSafariViewController 全屏工作表发生冲突
- javascript - 在 axios `.then()` 回调中为全局变量赋值