1

我正在尝试使用 Azure 流分析将传入的 IOT Hub D2C 消息持久保存到 Azure Cosmos DB。我可以找到的每个 Azure 流分析教程都假设从 IOT 集线器输入传入的消息具有相同的形状,这对我的情况来说并非如此(出于测试目的,我使用了 IOT Edge 模块示例中的tempSensor 模块和另一个定制的基于本教程的模块)。

这就是为什么我要过滤掉我不想保留的消息(即 tempSensor 模块发送的消息)。在有关将 IOT 集线器用作 Azure 流分析输入的文档中,提到了“StreamId”:

“IoTHub.StreamId:发送方设备添加的自定义事件属性。”

我的想法是在 Azure 流分析查询中使用 WHERE 子句仅选择具有特定 StreamId 的消息,但我不知道在从我的自定义 IOT 边缘模块中发送消息时如何设置此 StreamId。

  • 从 IOT 边缘设备向 IOT Hub 发送消息时如何设置 StreamId?
  • 有没有其他方法可以过滤掉不需要的消息?
4

2 回答 2

0

您知道要保留或拒绝的所有消息吗?如果是这样,您还可以过滤数据(而不是元数据)。特别是如果消息都来自同一个 IoT Edge 设备,它们可能会共享一些元数据。例如,要过滤掉来自 tempSensor 模块的消息,您可以使用以下查询:

SELECT * FROM input WHERE machine.temperature is NULL
于 2018-09-11T02:19:52.807 回答
0
  • 从 IOT 边缘设备向 IOT Hub 发送消息时如何设置 StreamId?

更新:这似乎是文件问题。它不是 IoT 中心消息中的系统属性,我们无法为此属性设置值。Microsoft 将更新该文档。感谢您的耐心。

  • 有没有其他方法可以过滤掉不需要的消息?

您可以在您的设备中创建一个过滤器模块,然后配置将D2C消息传输到过滤器的路由。是一个教程作为参考。在这个解决方案中,.

你可以部署 Azure Functions 以筛选 IoT Edge 设备上的传感器数据。请参阅本文档

于 2018-09-06T05:24:59.380 回答