【问题标题】:Azure Stream Analytics filter IOT Hub inputAzure 流分析筛选 IOT 中心输入
【发布时间】:2018-09-05 09:22:23
【问题描述】:

我正在尝试使用 Azure 流分析将传入的 IOT Hub D2C 消息持久保存到 Azure Cosmos DB。我可以找到的每个 Azure 流分析教程都假设从 IOT 集线器输入传入的消息具有相同的形状,这对我的情况不适用(出于测试目的,我使用来自 IOT 边缘模块示例和另一个自定义的 tempSensor module基于this tutorial制作的模块。

这就是为什么我要过滤掉我不想保留的消息(即 tempSensor 模块发送的消息)。 在有关using the IOT Hub as an Azure Stream Analysis input 的文档中,提到了“StreamId”:

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

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

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

【问题讨论】:

  • 我已经更新了我对 StreamId 属性的响应。这似乎是一个文档问题。微软会修复它。

标签: azure azure-iot-hub azure-stream-analytics azure-node-sdk


【解决方案1】:

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

SELECT * FROM input WHERE machine.temperature is NULL

【讨论】:

【解决方案2】:
  • 如何在向 IOT Hub 发送消息时设置 StreamId 物联网边缘设备?

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

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

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

您可以部署 Azure Functions 以过滤 IoT Edge 设备上的传感器数据。请参考这个document

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多