【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中? Azure 流分析的输出
问题描述
IoT Hub 从设备端如何向IOT发送海量数据,可以使用从设备到IOT连接的直接传输吗?还是需要另外开启连接。另外,消息路由和上传文件使用的连接是否就是设备到IOT建立的连接?还是需要额外再创建一个连接?
如何把IoT Hub中的数据存储到Azure Storage中?
问题答案
从设备端发送数据时,通过设备注册时候的链接字符串连接到IoT Hub并发送数据。所以以上问题答案为,使用从设备到IoT的连接直接传输数据。不需要额外建立另一个连接。
(Source:https://docs.azure.cn/zh-cn/iot-hub/quickstart-send-telemetry-dotnet)
如何把IoT Hub中的数据存储到Azure Storage中? 有以下两种办法:
- 可以使用IoThub的消息路由功能,将数据路由至storage中:https://docs.azure.cn/zh-cn/iot-hub/tutorial-routing#route-to-a-storage-account
Azure 存储作为路由终结点
这两个存储服务都使用 blob 作为其存储。
如果未设置内容编码,则 IoT 中心将以 base 64 编码格式写入消息。
- 可以借助Azure StreamAnalytics,将设备端发送到IotHub的数据,传输至Storage。关于流分析的介绍,可以参考此文档:https://docs.azure.cn/zh-cn/stream-analytics/stream-analytics-introduction
可针对每个作业使用单个输出,也可通过向查询添加多个 INTO 子句,针对每个流式处理作业使用多个输出(如果需要)。
下表显示了每种输出类型支持的功能:
表 1 输出类型 分区 安全 Azure SQL 数据库 是,可选。 托管标识(预览版) Blob 存储和 Azure Data Lake Gen 2 是 托管标识(预览版) Azure 事件中心 是,需要在输出配置中设置分区键列。 托管标识(预览版) Azure 表存储 是 帐户密钥 Azure 服务总线队列 是 访问密钥 Azure 服务总线主题 是 访问密钥 Azure Cosmos DB 是 访问密钥 Azure Functions 是 访问密钥
参考文档:
关于将IotHub中的数据流向Storage,可以参考如下文档进行测试:https://docs.azure.cn/zh-cn/stream-analytics/stream-analytics-quick-create-portal