熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

WindowsAzure存儲抽象概念全接觸

2013-11-11 21:47:23  來源: Windows系統管理 
Windows Azure存儲為應用程序開發人員提供了四個對象抽象

  · Blob(二進制大文件存儲) – 提供了一個簡單的接口存儲文件及文件的元數據

  · Table(表) – 提供大規模可擴展結構化存儲一個Table就是包含一組屬性的一組實體應用程序可以操作這些實體並可以查詢存儲在Table中的任何屬性

  · Queue(隊列) – 為應用程序消息提供可靠的存儲和投遞在應用程序不同組件(角色)之間建立松散的連接和可伸縮的工作流

  · Drive (驅動器) – 為Windows Azure應用程序提供持久性NTFS卷允許應用程序使用現有NTFS API訪問網絡附加持久化驅動器每個驅動器都是一個網絡附加的Page Blob格式作為一個NTFS VHD卷使用

  下圖顯示了Windows Azure存儲的抽象概念和BlobTable和Queue使用的URI

  Windows Azure存儲抽象概念全接觸

  圖 Windows Azure存儲的概念視圖

  存儲賬號和它們的位置

  訪問Windows Azure存儲必須使用它的存儲賬號創建存儲賬號時可以指定存儲的位置目前可以選擇的位置有

  · 美國中北部

  · 美國中南部

  · 歐洲北部

  · 歐洲西部

  · 東亞

  · 東南亞

  選擇位置應選擇與你托管的服務相同的位置這樣服務和存儲之間的帶寬才能得到保證

  注意你注冊的賬號名將成為主機名的第一部分DNS將會用它將請求直接重定向到該賬號對應的數據存儲位置其中的Queue表示應將請求定向到該位置的Queue服務因為BlobTable和Queue都是獨立的服務因此在Windows Azure存儲賬號下的都有它們自己的命名空間因此Blob容器Table和Queue的名字可以是相同的

  一個存儲賬號可以保存TB數據對Blob容器BlobTableQueue實體消息都無數量限制但總容量不能超出TB

  Windows Azure Blob

  下圖顯示了Windows Azure Blob的抽象概念在這裡我們的存儲賬號是 cohowinery 在這個賬號下我們創建了一個叫做 images 的Blob容器在這個容器下放了兩張分別叫做 picjpg pic jpg 的圖片另外還創建了一個叫做 videos 的Blob容器在這個容器下放了一個叫做 vidavi 視頻文件

  Windows Azure存儲抽象概念全接觸

  圖 Windows Azure Blob概念視圖

  · 存儲賬號 – 所有對Windows Azure存儲的訪問都是通過存儲賬號完成的

  · 它是訪問Blob的最高級命名空間

  · 一個賬戶可以有多個Blob容器

  · Blob容器 – 容器為一組Blob提供了容身之地

  · 共享策略是在容器級設置的容器可以設置為私有或公共訪問設置為公共訪問時它裡面的所有內容無需身份驗證就可以訪問設置為私有訪問時身份驗證通過後才能訪問它裡面的內容

  · 容器本身也有元數據 其格式是<名稱值>對 每個容器的元數據大小最大為KB

  · 提供了列出容器中所有Blob的功能

  · Blob – Blob存儲在Blob容器內Blob本身也有元數據其格式是<名稱值>對每個Blob的元數據大小最大為KB可以從Blob數據位設置和檢索元數據

  // 賬號名 這樣的命名空間是對所有Blob的訪問要訪問特定的Blob其URI格式是// 賬號名 / Blob容器名 / Blob名

  目前支持兩種類型的Blob

  · Block Blob – 針對流工作負載

  · 每個Blob由一串Block組成

  · Block Blob最大大小是GB

  · 修改Block Blob需要兩步先更新再提交

  · 閱讀范圍可以從Blob中的任意字節處開始

  · Page Blob – 針對隨機寫工作負載

  · 每個Blob由一組Page組成

  · Page Blob最大大小是TB

  · 立即更新語義寫入即提交

  Windows Azure Table

  下圖顯示了Windows Azure Table的抽象概念在這裡我們的存儲賬號是 cohowinery 創建了 customers winephotos 兩個Table在 customers Table下保存了代表客戶信息的實體實體有NameEmail等屬性 winephotos Table下的實體具有 PhotoID Date 等屬性  

  Windows Azure存儲抽象概念全接觸

  圖 Windows Azure Table概念視圖

  下面是對Windows Azure Table數據模型的總結

  · 存儲賬號 – 同上每個賬號可以有多個Table

  · Table – 包含一組實體

  · 實體(行) 實體(一個實體與一的概念相似)是Table中最基本的數據項一個實體包含一組屬性每個Table都有兩個屬性( PartitionKey 和 RowKey )它們一起組成實體的唯一鍵

  一個實體最多可以有個屬性

  一個實體的所有屬性總大小不能超出MB這個大小包括屬性名稱屬性值或它們的類型的大小

  · 屬性(列) 它表示實體的一個值屬性名是大小寫敏感的

  · PartitionKey – 每個Table的第一個鍵屬性系統使用這個鍵自動在多個服務器之間分配和負載均衡Table的實體

  · RowKey – Table的第二個鍵屬性它是實體在所屬分區中的唯一ID PartitionKey 和 RowKey 結合起來組成實體的唯一身份標識

  · Timestamp – 每個實體都有由系統維護的一個版本用於樂觀並發控制

  · 排序順序 – Windows Azure Table有一個唯一的索引 表中的所有實體都先按 PartitionKey 排序然後再按 RowKey 排序的 這意味著指定這些鍵查詢的效率是非常高的返回的所有結果也是先按 PartitionKey 排序然後再按 RowKey 排序的

  · 類型 PartitionKey 和 RowKey 必須是字符串類型其它屬性可以是 Binary BoolDateTimeDouble GUIDInt IntString 中的任意類型

  · 無固定的結構描述 – Windows Azure Table中不會存儲結構描述所有屬性都存儲為<名稱值>對這意味著相同表中的兩個實體的屬性可以完全不同不同實體的屬性名可以是相同的但屬性值的類型必須不同在單個實體中屬性名必須是唯一的

  訪問特定Table的URI結構如下

  // 賬號名 / Table名

  Windows Azure Queue

  下圖顯示了Windows Azure Queue的抽象概念在存儲賬號 cohowinery 下創建了一個叫做 orders 的Queue存儲了正在等待處理的訂單消息消息包含 customer ID order ID 訂單鏈接等信息

  Windows Azure存儲抽象概念全接觸

  圖 Windows Azure Queue概念視圖

  · 存儲賬號 – 同上一個賬戶可以有多個Queue

  · Queue – Queue中包含許多消息

  · 存儲在Queue中的消息數量沒有限制(唯一的限制是每個存儲賬號的總容量是TB)

  · 消息至少保留一周超過一周的消息系統會自動進行垃圾回收

  · Queue本身也有元數據其格式也是<名稱值>對每個Queue的元數據最大大小為KB

  · 消息 – 消息是存儲在Queue中的每條消息最大KB如果想存儲更大的數據可以將數據存儲在Azure Blob或Azure Table中然後在消息中存儲Blob/實體的名稱存儲消息時消息可以是二進制數據但從存儲提取消息時返回的是XML格式基於Base編碼的信息

  訪問特定Queue的URI結構如下

  // 賬號名 / Queue名稱


From:http://tw.wingwit.com/Article/os/xtgl/201311/9243.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.