問題描述
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 存儲作為路由終結點
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