通過構建Storage Explorer 應用學習
Windows Azure 平臺提供不同的儲存服務來儲存瞬態和持久態的資料:
無結構二進位制和文字資料Unstructured binary and text data
二進位制和文字訊息Binary and text messages
結構化資料Structured data
為了支援這些型別的資料, Windows Azure 提供三種不同的儲存服務: Blobs,Queues,和 Tables。
下表列出了三種儲存服務的異同:
儲存型別
URL schema
最大大小
推薦 用途
Blob
http://[StorageAccount].blob.core.windows.net/[ContainerName]/[BlobName]
Block Blob:最大200GB
Page Blob:最大1TB
儲存大尺寸二進位制和文字檔案
Queue
http://[StorageAccount].queue.core.windows.net/[QueueName]
8 KB
在本地和雲端進行可靠的,持久態的訊息通訊。小尺寸二進位制和文字訊息
Table
http://[StorageAccount].table.core.windows.net/[TableName]?$filter=[Query]
資料表可以無限大。實體最大1 MB.
由多個屬性組成的可查詢的結構化實體
本地和雲端各種大型客戶端應用都可以通過RESTful 介面無縫的訪問儲存服務。可以使用微軟,第三方或者開發技術來實現使用儲存服務的應用:
.NET Framework : 本地或 雲端.NET 應用通過Windows Azure SDK 中的Windows Azure Storage Client Library 來訪問儲存服務。
Java : Windows Azure SDK for Java 使得Java程式也能便捷的訪問Windows Azure儲存服務。該SDK 包含在Windows Azure Tools for Eclipse 專案中。另外, AppFabric SDK for Java 使得Java專案也能使用Windows Azure AppFabric 中的 service bus 和 access control服務。
PHP : Windows Azure SDK for PHP 使得 PHP 能夠訪問 Windows Azure 儲存服務。
更多儲存服務的資訊參見如下:
"About the Storage Services API " on MSDN.
"Using the Windows Azure Storage Services " on MSDN.
"Understanding Data Storage Offerings on the Windows Azure Platform " on TechNet.
Blob Service
Blob 服務提供二進位制檔案和文字檔案的儲存。通過Blob的 REST API 能夠訪問2種資源: Containers 和 Blobs 。容器可以看做包含多個檔案的資料夾,而blob便是屬於某個容器的檔案。有如下2種blob:
Block Blobs : 該型別用於流式訪問。
Page Blobs: 該型別用於隨機讀寫操作,能夠向blob中寫入一部分位元組。
容器和blob支援使用者定義的後設資料, 在請求操作的頭部填入相應的名值對 。使用 REST API,開發者可以建立和檔案系統類似的層次性命名。Blob 名可以加入配置路徑分隔符。舉例,MyGroup/MyBlob1 和 MyGroup/MyBlob2 意味著一個虛擬的組織層級。 Blob的列舉操作支援虛擬層級的遍歷。所以,你可以放回某個組下面的所有blob。例如,您可以返回MyGroup 下的所有blob。
Block Blobs 可以通過2種方法建立。 不超過64MB 的Block blobs 可以通過呼叫Put Blob 操作進行上傳。大於64 MB的 Block blobs 必須分塊上傳,每塊不超過4MB。當所有的分塊成功上傳之後,通過呼叫Put Block List 操作進行合併,成為單個連續的blob。Block blob目前最大支援200GB。
Page blobs 可以由呼叫Put Blob 操作來建立和初始化,支援最大尺寸。通過呼叫Put Page 操作,向page blob寫入內容。Page blob 目前最大支援 1 TB。
Blobs 支援條件更新,更多請參見:
"Understanding Block Blobs and Page Blobs " on MSDN.
"Blob Service Concepts " on MSDN.
"Blob Service API " on MSDN.
"Windows Azure Storage Client Library " on MSDN.
Queue Service
Queue 服務提供本地和雲端應用,或同一Windows Azure應用的不同role之間可靠的持久態訊息通訊。通過REST API 可以訪問2種實體: Queues 和 Messages . Queues 支援使用者定義的後設資料,在請求操作的頭部填入相應的名值對。每個儲存賬戶可以擁有無限的訊息佇列。每個訊息佇列可以擁有無數的訊息。單條訊息最大8 KB。當從佇列讀取訊息之後,消耗者應該處理該訊息,並隨後刪除它。訊息被讀取之後,在特定間隔內,對於其他消耗者是不可見的。當間隔到期,而訊息又沒有被刪除,其他消耗者便能訪問該訊息。更多請見:
"Queue Service Concepts " on MSDN.
"Queue Service API " on MSDN.
"Windows Azure Storage Client Library " on MSDN.
Table Service
Table 服務提供結構化儲存。Table 服務支援與 WCF Data Services REST API 相容的REST API 。開發者可以使用.NET Client Library for WCF Data Services 來訪問 Table 服務。一個儲存賬號內,開發者可以建立多個表。每個表由唯一的名稱和儲存賬戶標示。 Tables 將資料儲存為實體。一個實體便是由命名屬性和相關的值組成的集合。Tables 被劃分在不同儲存節點內,以便能夠支援負載平衡。每個表的第一個屬性: partition key,指明瞭該實體如何被劃分。 第二個屬性 : row key,能夠確定在某個分割槽內的實體。Partition key 和row key 結合可以作為實體的主鍵。任何情況下,都應該把tables當做.NET Dictionary 物件,而不是關係型資料庫內的表。實際上,每張table都是相互獨立的, Table 服務並不支援多張表的join操作��如果你需要完全的雲端關係型資料庫,可以試試SQL Azure 。另一不同是,table並不像傳統關係型資料庫那樣必須擁有schema。換言之,同一個table內的實體不必暴露相同的屬性。更多請見:
"Table Service Concepts " on MSDN.
"Table Service API " on MSDN.
"Windows Azure Storage Client Library " on MSDN.
"Understanding the Table Service Data Model " on MSDN.
"Querying Tables and Entities " on MSDN.
"Client Applications of ADO.NET Data Services " on MSDN.
Solution
在冗長而又必須的簡介之後,我們試著寫一些程式碼。在調研期間,我發現了幾個相當不錯的工具來管理Windows Azure 儲存服務的資料。其中,Neudesic 編寫的 Azure Storage Explorer 最為出色。既然要學習某個技術,最好便是能用其解決一些問題。我打算建立一個Windows Forms 應用來處理 to handle Windows Azure Storage Services: Blobs, Queues 和 Tables。下圖是應用的架構:
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/azurechina/archive/2011/02/25/6206932.aspx
相關文章
- [譯] 通過構建 Observable 來學習 Observable
- Go通過cobra快速構建命令列應用Go命令列
- LLM學習(四)——構建 RAG 應用
- 快速學習丨使用Blazor構建Web應用BlazorWeb
- 構建深度學習和TensorFlow智慧應用深度學習
- 通過vue-cli3構建一個SSR應用程式Vue
- 通過silky框架在.net平臺構建微服務應用框架微服務
- OpenAI Codex完全通過自然語言構建遊戲應用 – AndrewMayneOpenAI遊戲
- 知識圖譜構建與應用推薦學習分享
- React Native 學習指南(一) - 構建第一個應用React Native
- 通過遊戲學習計算機架構 - embeddedartistry遊戲計算機架構Dart
- HelloWorld:通過demo,構建黑盒模型模型
- 構建 API 應用API
- 通過構建一個簡單的擲骰子游戲去學習怎麼用 Python 程式設計Python程式設計
- Android MVVM 應用框架構建過程詳解AndroidMVVM框架架構
- 用VIPER構建iOS應用iOS
- 使用汽車應用庫構建應用
- Laravel深入學習5 – 應用架構Laravel應用架構
- 通過Kotlin構建android工程KotlinAndroid
- 使用 webpack 構建應用Web
- maven 學習總結(二)——Maven專案構建過程練習Maven
- 構建你的第一個Flutter視訊通話應用Flutter
- 『應用機器學習的建議』的學習筆記機器學習筆記
- 用 VIPER 構建 iOS 應用架構(2)iOS應用架構
- 通過動畫學習演算法和資料結構動畫演算法資料結構
- 通過 TensorFlow 構建您的第一個深度學習分類器(以狗為例)!深度學習
- 通過人工智慧構建智慧集錦服務在央視世界盃期間的應用人工智慧
- 通過示例學習PYTORCHPyTorch
- Webpack實戰-構建同構應用Web
- 如何構建Vue大型應用Vue
- 構建單頁Web應用Web
- 構建應用層服務
- SAP Commerce Cloud 的構建過程學習筆記Cloud筆記
- Java 學習(09)--方法過載/建構函式/static 變數Java函式變數
- vue 原始碼學習(一) 目錄結構和構建過程簡介Vue原始碼
- 通訊應用巨頭Line計劃構建區塊鏈,支援去中心化應用區塊鏈中心化
- 如何通過閱讀文件,構建概念模型?模型
- 通過例項學習 PyTorchPyTorch