繁体   English   中英

Azure流分析过滤器IOT集线器输入

[英]Azure Stream Analytics filter IOT Hub input

我正在尝试使用Azure流分析将传入的IOT集线器D2C消息持久保存到Azure Cosmos DB。 我可以找到的每个Azure Stream Analytics教程都假定从IOT集线器输入传入的消息具有相同的形状,这在我的情况下是不正确的(出于测试目的,我使用IOT Edge Module示例中的tempSensor模块 ,并进行了另一个自定义基于本教程的模块)。

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

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

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

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

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

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

您可以在设备中创建过滤器模块,然后配置用于将D2C消息传输到过滤器的路由。 是一个参考指南。在此解决方案中,。

您可以部署Azure功能来筛选IoT Edge设备上的传感器数据。 请参考本文档

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

SELECT * FROM input WHERE machine.temperature is NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM