天天看點

【Azure IoT Hub】從裝置端如何向IOT發送海量資料,可以使用從裝置到IoT連接配接的直接傳輸嗎?

問題描述

IoT Hub 從裝置端如何向IOT發送海量資料,可以使用從裝置到IOT連接配接的直接傳輸嗎?還是需要另外開啟連接配接。另外,消息路由和上傳檔案使用的連接配接是否就是裝置到IOT建立的連接配接?還是需要額外再建立一個連接配接?

如何把IoT Hub中的資料存儲到Azure Storage中?

問題答案

從裝置端發送資料時,通過裝置注冊時候的連結字元串連接配接到IoT Hub并發送資料。是以以上問題答案為,使用從裝置到IoT的連接配接直接傳輸資料。不需要額外建立另一個連接配接。

【Azure IoT Hub】從裝置端如何向IOT發送海量資料,可以使用從裝置到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 存儲作為路由終結點

IoT 中心可将消息路由到以下兩個存儲服務:​​Azure Blob 存儲​​​和 ​​Azure Data Lake Storage Gen2​​​ (ADLS Gen2) 帳戶。 Azure Data Lake Storage 帳戶是在 Blob 存儲之上建構的啟用​​分層命名空間​​的存儲帳戶。 這兩個存儲服務都使用 blob 作為其存儲。

IoT 中心支援将資料以 ​​Apache Avro​​​ 格式和 JSON 格式寫入 Azure 存儲。 預設值為 AVRO。 使用 JSON 編碼時,必須在消息​​系統屬性​​中将 contentType 設定為 application/json,将 contentEncoding 設定為 UTF-8。 這兩個值都不區分大小寫。 如果未設定内容編碼,則 IoT 中心将以 base 64 編碼格式寫入消息。

  • 可以借助Azure StreamAnalytics,将裝置端發送到IotHub的資料,傳輸至Storage。關于流分析的介紹,可以參考此文檔:​​https://docs.azure.cn/zh-cn/stream-analytics/stream-analytics-introduction​​

Azure 流分析的輸出

Azure 流分析作業由輸入、查詢和輸出構成。 可以将轉換後的資料發送到多個輸出類型。 本文列出了支援的流分析輸出。 設計流分析查詢時,使用 ​​INTO 子句​​引用輸出的名稱。 可針對每個作業使用單個輸出,也可通過向查詢添加多個 INTO 子句,針對每個流式處理作業使用多個輸出(如果需要)。

部分輸出類型支援​​分區​​​,并且​​輸出批大小​​可變化以優化吞吐量。 下表顯示了每種輸出類型支援的功能:

表 1

輸出類型分區安全​​Azure SQL 資料庫​​是,可選。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​​