Windows Azure存储抽象概念全接触

9914967_201006241330144.jpgWindows Azure存储为应用程序开发人员提供了四个对象抽象:

·  Blob(二进制大文件存储)   提供了一个简单的接口存储文件及文件的元数据。

·  Table(表)   提供大规模可扩展结构化存储,一个Table就是包含一组属性的一组实体,应用程序可以操作这些实体,并可以查询存储在Table中的任何属性。

·  Queue(队列)   为应用程序消息提供可靠的存储和投递,在应用程序不同组件(角色)之间建立松散的连接和可伸缩的工作流。

·  Drive (驱动器)   为Windows Azure应用程序提供持久性NTFS卷,允许应用程序使用现有NTFS API访问网络附加持久化驱动器,每个驱动器都是一个网络附加的Page Blob格式,作为一个NTFS VHD卷使用。

下图显示了Windows Azure存储的抽象概念和Blob、Table和Queue使用的URI。

9914967_201006241330141.jpg

图  1  Windows Azure存储的概念视图

存储账号和它们的位置

访问Windows Azure存储必须使用它的存储账号,创建存储账号时可以指定存储的位置,目前可以选择的位置有:

·  美国中北部

·  美国中南部

·  欧洲北部

·  欧洲西部

·  东亚

·  东南亚

选择位置应选择与你托管的服务相同的位置,这样服务和存储之间的带宽才能得到保证。

注意你注册的账号名将成为主机名的第一部分,如 http://accountName.queue.core.windows.net ,DNS将会用它将请求直接重定向到该账号对应的数据存储位置,其中的Queue表示应将请求定向到该位置的Queue服务,因为Blob,Table和Queue都是独立的服务,因此在Windows Azure存储账号下的都有它们自己的命名空间,因此Blob容器,Table和Queue的名字可以是相同的。

一个存储账号可以保存100TB数据,对Blob容器,Blob,Table,Queue,实体,消息都无数量限制,但总容量不能超出100TB。

Windows Azure Blob

下图显示了Windows Azure Blob的抽象概念,在这里我们的存储账号是“ cohowinery ,在这个账号下,我们创建了一个叫做“ images 的Blob容器,在这个容器下放了两张分别叫做“ pic01.jpg 和“ pic0 2 .jpg 的图片,另外还创建了一个叫做“ videos 的Blob容器,在这个容器下放了一个叫做“ vid1.avi 视频文件。9914967_201006241330142.jpg

图  2  Windows Azure Blob概念视图

·  存储账号   所有对Windows Azure存储的访问都是通过存储账号完成的。

它是访问Blob的最高级命名空间。

一个账户可以有多个Blob容器。

·  Blob容器   容器为一组Blob提供了容身之地。

共享策略是在容器级设置的,容器可以设置为私有或公共访问,设置为公共访问时,它里面的所有内容无需身份验证就可以访问,设置为私有访问时,身份验证通过后才能访问它里面的内容。

容器本身也有元数据, 其格式是对 ,每个容器的 元数据大小最大为8KB

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

·  Blob   Blob存储在Blob容器内,Blob本身也有元数据,其格式是对,每个Blob的元数据大小最大为8KB,可以从Blob数据位设置和检索元数据。

http:// 账号名 . blob .core.windows.net 这样的命名空间是对所有Blob的访问,要访问特定的Blob,其URI格式是 http:// 账号名 .blob.core.windows.net/ Blob容器名 / Blob名。

目前支持两种类型的Blob:

·  Block Blob   针对流工作负载

每个Blob由一串Block组成。

Block Blob最大大小是200GB。

修改Block Blob需要两步,先更新,再提交。

阅读范围可以从Blob中的任意字节处开始。

·  Page Blob   针对随机写工作负载

每个Blob由一组Page组成。

Page Blob最大大小是1TB。

立即更新语义,写入即提交。

Windows Azure Table

下图显示了Windows Azure Table的抽象概念,在这里我们的存储账号是“ cohowinery ,创建了“ customers 和“ winephotos 两个Table,在 customers  Table下保存了代表客户信息的实体,实体有“Name”,“Email”等属性, winephotos  Table下的实体具有“ PhotoID 和“ Date 等属性。9914967_201006241330143.jpg

图  3  Windows Azure Table概念视图

下面是对Windows Azure Table数据模型的总结:

·  存储账号   同上,每个账号可以有多个Table。

·  Table   包含一组实体。

·  实体(行) - 实体(一个实体与一‘行’的概念相似)是Table中最基本的数据项,一个实体包含一组属性,每个Table都有两个属性( PartitionKey RowKey ),它们一起组成实体的唯一键。

一个实体最多可以有255个属性。

一个实体的所有属性总大小不能超出1MB,这个大小包括属性名称,属性值或它们的类型的大小。

·  属性(列) - 它表示实体的一个值,属性名是大小写敏感的。

·  PartitionKey    每个Table的第一个键属性,系统使用这个键自动在多个服务器之间分配和负载均衡Table的实体。

·  RowKey    Table的第二个键属性,它是实体在所属分区中的唯一ID, PartitionKey RowKey 结合起来组成实体的唯一身份标识。

·  Timestamp    每个实体都有由系统维护的一个版本,用于乐观并发控制。

·  排序顺序   Windows Azure Table有一个唯一的索引, 表中的所有实体都先按 PartitionKey 排序,然后再按 RowKey 排序的 ,这意味着指定这些键查询的效率是非常高的,返回的所有结果也是先按 PartitionKey 排序,然后再按 RowKey 排序的。

·  类型 -  PartitionKey RowKey 必须是字符串类型,其它属性可以是 Binary Bool,DateTime,Double, GUID,Int Int64,String 中的任意类型。

无固定的结构描述   Windows Azure Table中不会存储结构描述,所有属性都存储为对,这意味着相同表中的两个实体的属性可以

·  必须不同,在单个实体中,属性名必须是唯一的。

访问特定Table的URI结构如下:

http:// 账号名 .table.core.windows.net/ Table

Windows Azure Queue

下图显示了Windows Azure Queue的抽象概念,在存储账号“ cohowinery 下创建了一个叫做“ orders 的Queue,存储了正在等待处理的订单消息,消息包含 customer ID order ID ,订单链接等信息。

图  4  Windows Azure Queue概念视图

·  存储账号   同上,一个账户可以有多个Queue。

·  Queue   Queue中包含许多消息。

存储在Queue中的消息数量没有限制(唯一的限制是每个存储账号的总容量是100TB)。

消息至少保留一周,超过一周的消息系统会自动进行垃圾回收。

Queue本身也有元数据,其格式也是对,每个Queue的元数据最大大小为8KB。

·  消息   消息是存储在Queue中的,每条消息最大8KB,如果想存储更大的数据,可以将数据存储在Azure Blob或Azure Table中,然后在消息中存储Blob/实体的名称,存储消息时,消息可以是二进制数据,但从存储提取消息时,返回的是XML格式基于Base-64编码的信息。

访问特定Queue的URI结构如下:

http:// 账号名 .queue.core.windows.net/ Queue名称

fj.png图1.jpg

fj.png图2.jpg

fj.png图3.jpg

fj.png图4.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9914967/viewspace-666077/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9914967/viewspace-666077/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值