【Azure Services Platform Step by Step-第9篇】Windows Azure Storage概覽

來源:互聯網
上載者:User
文章目錄
  • Windows Azure Blob
  • Windows Azure Table
  • Windows Azure Queue
  • Windows Azure Table 與SQL Data Services 的重要不同之處:

在本系列的第一篇【Azure Services Platform Step by Step-第1篇】INTRODUCING THE AZURE SERVICES PLATFORM裡就介紹過了,Azure Services Platform包括4個部分。其中,Windows Azure是支撐整個微軟雲平台(Azure Services Platform)的基礎。換句話說,Windows Azure是“雲平台的作業系統”,它提供了雲平台最基本、最重要的服務。

Windows Azure由兩個重要部分構成:

  1. 虛擬化計算服務(提供基於VM主機。在上一篇裡已經示範過它。)
  2. 各種資料存放區服務。即本文要介紹的Windows Azure Storage

Windows Azure Storage可以讓程式員儲存他們想儲存的任何資料。按照“雲端運算”的概念,資料一旦儲存到“雲”中,就永遠不會丟失,程式員可以在任何時候、從任何終端和任何地方擷取任意大小的資料。Windows Azure Storage正是繼續遵循這一思想。

Windows Azure Storage由三個重要部分構成:

  1. Windows Azure Blob:儲存大型資料
  2. Windows Azure Table:儲存表資料。類似關聯式資料庫中的資料表,但不同。
  3. Windows Azure Queue:為非同步工作提供指派Message Service。有點類似Windows系統自身的訊息佇列。

接下來我們來以此介紹這3個資料服務。

Windows Azure Blob

    剛才說過了,這個牛X的服務,就是用來儲存大型的資料的。怎麼樣的資料算大型呢?檔案!不知道你是否和筆者一樣,剛看到這個服務時第一個反應就是:用它來做網路硬碟。: )

   Windows Azure Blob的資料模型非常簡單,看一眼就不會忘記。我們真的大可以把它想象成雲端的一個無限大的硬碟。它的結構如:

 

    大家先別看“Block”部分。很一目瞭然吧? 一起繼續YY:  如果Account是那塊硬碟,Container就代表不同分區(可惜分區裡沒有檔案夾概念),Blob就是分區根目錄裡不同的檔案。那麼的意思是:在我的那塊叫做"sally”的硬碟裡,有"pictures”和"movies”兩個分區,"pictures”分區根目錄裡有"IMG001.JPG “”IMG002.JPG”這兩個檔案。

    這塊雲端的無限大硬碟在哪裡呢?怎樣才能找到它?也很簡單,它仍然採用Azure的管理,使用REST的方式操作它。地址是:

    http://<account>.blob.core.windows.net/<container>/<blobname>

    例如:http://maheshwar.blob.core.windows.net/livesearchimages/AcacusDesert_EN-US1025081982.jpg (這是一張圖片,點選連結可直接存取)

    現在可以繼續解釋中的“Block”了。既然是採用REST的方式,就是通過HTTP的方式,那麼真正很大很大的檔案,比如1G的電影,要直接傳上去顯然是一件非常困難的事。Block就是為解決這個問題而存在的。只要你心情好,你大可以把這個電影分割成1000個1M的Block來上傳。Block對下載流程是透明的,下載者根本不知道也不用去知道它正在下載的檔案被分成了多少個block。

   (事實上筆者真的用它做自用的網路硬碟,從開發和使用角度來說都非常方便,以後有機會我整理一下代碼與大家分享一下)。

 

 

Windows Azure Table

    這個服務是很多人心中的最愛。

    正在使用VS200X來開發簡單ASP.NET應用程式的時候,你會許和很多人一樣有以下兩個重要習慣:使用關聯式資料庫(如SQL Server);資料庫中的某些表直接對應程式裡的實體類。你或許會使用代碼產生工具,ORM工具,或者自己寫三層架構來完成關聯式資料庫to對象的映射。發現沒,此時的你是多麼希望能夠直接將實體存入資料庫當中啊!

    Windows Azure Table服務就是用來解決這個問題的。它可以直接將實體類、實體物件存入表格結構當中。它讓太多的人感到欣喜。

    它比較類似傳統關聯式資料庫當中的表格,但是又有很大不同。先看的結構:

   與你想的一樣,它支援LINQ, REST。HTTP地址是      http://<account>.table.core.windows.net

   這部分內容比較多,過幾天我會單獨使用一節的內容來做一個簡單Demo講解它的使用。

  

Windows Azure Queue

    Windows Azure Queue因為Windows Azure的服務架構而存在——這個一個需要訊息佇列的架構。

    我們在《【Azure Services Platform Step by Step-第7篇】別把Windows Azure當虛擬機器主機使——理解Windows Azure服務架構》裡瞭解過,Windows Azure VM中是如何引入了Web Role和Worker Role這一非常創新的概念,從而脫離了普通虛擬機器主機,晉陞為“雲主機” : )

    Windows Azure Queue最常見的一個應用就是作為Worker Role和Web Role之間通訊的訊息佇列。

    再舉個例子。Web Role是前台賣牛肉麵的,Worker Role是後台煮牛肉麵的。顧客只能接觸到Web Role這個店員,它收集不同顧客的需求,保持先來後到的順序記錄這些需求到一疊紙條上遞給大廚Worker Roler。大廚Worker Role帶著口罩,什麼話也說不出來,他的工作就是按順序完成紙條記錄的任務。Windows Azure Queue就充當了這個“任務紙條”的作用。

    理解完了“牛肉麵”的例子,再看看結合一下“雲端運算”的實際吧。是不是很容易理解呢?

  

 

 

Windows Azure Table 與SQL Data Services 的重要不同之處:

   在實際開發中,這兩者都是最常用的資料存放區服務。

   部落格園網友 montaque和老趙同志在《【Azure Services Platform Step by Step-第8篇】開發部署Azure留言板》一文的評論中一起討論了Windows Azure Table和SQL Data Services的不同。

 

 

Windows Azure Table 旨在提供輕便快捷低成本的大規模儲存資料,包含實體和屬性。它不是關聯式資料庫,所以不能提供類似SQL中joins的方法,也不能管理 foreign keys。

SQL Data Services旨在提供嚴謹的關係資料方法。

在當前的Azure版本中(Azure平台第一個版本,feasure還很不完善),如果開發人員對joins或foreign keys等關聯式資料庫的功能需求較大,你可以選擇SQL Data Services,反之建議使用開發更為快捷的Windows Azure Table。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.