从Azure IoT中心路由和转换数据
在我们的用例中,我们在Azure IoT集线器上接收消息,并希望将数据路由到不同的事件集线器或服务总线主题 物联网集线器路由和端点没有选择,因为数据是二进制数据(protobuf),并且可能只有10个不同的端点(我们需要更多) 我们的要求是:从Azure IoT中心路由和转换数据,azure,apache-spark,apache-flink,azure-stream-analytics,Azure,Apache Spark,Apache Flink,Azure Stream Analytics,在我们的用例中,我们在Azure IoT集线器上接收消息,并希望将数据路由到不同的事件集线器或服务总线主题 物联网集线器路由和端点没有选择,因为数据是二进制数据(protobuf),并且可能只有10个不同的端点(我们需要更多) 我们的要求是: 拆分消息 转换数据(可能是json) 根据有效负载路由到不同的端点(消息的不同部分可以路由到不同的端点) (可选)使用额外的有效负载丰富数据 我看到了不同的选择: Azure流分析 Azure函数 火花或燧石 自己动手(编写应用程序并在Service
- 拆分消息
- 转换数据(可能是json)
- 根据有效负载路由到不同的端点(消息的不同部分可以路由到不同的端点)
- (可选)使用额外的有效负载丰富数据
- Azure流分析
- Azure函数
- 火花或燧石
- 自己动手(编写应用程序并在ServiceFabric或Kubernets中运行)
Markus对于您的场景,还有另一个选项,例如使用Azure事件网格。在这种情况下,来自Azure IoT中心的遥测数据通过其自定义主题端点推送到事件网格。请注意,事件消息有一个限制,例如64KB,请参阅更多详细信息 事件网格允许订阅无限数量的事件中心,有关事件网格的更多详细信息,请参阅和 基于以上内容,下面的屏幕片段显示了将小型遥测数据路由到10多个事件集线器(基本上是任何类型的订阅者)的另一个选项
你好。目前Azure Stream Analytics仅支持JSON、CSV和AVRO,因此如果传入的消息是二进制的,它将无法读取。如果您可以在之前对其进行转换(例如,使用Azure功能),您可以在流分析中进一步处理它。数据大小是多少?@romanKiss数据大小取决于不同的消息。但总的来说,我会说,它很小。最大为几Kb,最大为1 Kb以下。感谢您共享此选项!因此,消息的解析、拆分和转换将在函数中发生,对吗?那么,为什么要将事件从函数推送到事件网格,而不是直接推送到不同的事件中心呢?是的,AF负责将二进制遥测数据分解成json格式文本中的小事件数组。这是一个简单的无状态处理任务,在AF主体中具有正确的错误处理,并且具有很好的可伸缩性。在上述解决方案中,根据对事件网格中订阅者的订阅来路由和传递接收阵列中的每个事件。只能使用可伸缩性、错误处理和可管理性较差的命令绑定将这些事件直接从AF推送到许多不同的事件中心。