Windows Azure Storage由三个重要部分或者说三种存储数据服务组成,它们是:Windows Azure Blob、Windows Azure Table和Windows Azure Queue。在本文中将给大家介绍Windows Azure Storage中的这三种存储服务、Visual Studio环境下配置和使用开发存储和Windows Azure Storage应用场景。

Windows Azure 存储服务的构成

Windows Azure Storage由三个重要部分构成:

Windows Azure Blob:存储大型数据。

Windows Azure Table:存储表数据,类似关系数据库中的数据表,但有所不同,将在后文中介绍。

Windows Azure Queue:为异步工作提供分派消息服务,有点类似Windows系统的消息队列。

它们的组成也可以使用图1来描述:

(1)Windows Azure Blob

在Windows Azure中使用存储服务最简单的方法是使用Windows Azure Blob。Blob存储二进制数据,如图像,XML文档,压缩文件和其它在容器内任意排列的字节。

Blob存储数据是通过一个简单的层级关系来实现的,每个账户Account下有一个容器,这个容器就是用户定义的一套只有一个属性的Blobs(Blob集合),容器不直接存储数据,每个Blobs包含了多个Blob。Windows Azure Blob存储数据和层级关系如图2所示:

Blob存储数据的地址是:

http://.blob.core.windows.net/

可以通过REST的方式来操作,也就是说可以通过如图1所示中的访问方式:Http/Https。在上传大文件的时候,我们可以先把大文件分割成多个Blob来上传,这样就解决了大文件上传的问题。Block对下载流程是透明的,下载者根本不知道也不用去知道它正在下载的文件被分成了多少个block。

注意在PUT Blob操作中你可以上传最大64MB的数据创建一个Blob,通过上传连续块可以创建大于64MB的Blob,块最大只能是4MB。

(2)Windows Azure Table

Blobs只能针对大容量二级制数据存储,它真是太“不结构化”了。为了保存和使用云应用程序中具有紧密的数据,如在云存储服务中存储一个对象,这个对象是有些自己的属性,其实这样的对象我们可以看成是示例或者实体,于是Windows Azure Table就派上用场了。Windows Azure Table可以直接将实体类、实体对象存入表格结构当中。

Windows Azure Table和SQL Server/SQL Azure的区别在于,Windows Azure Table是一种服务,旨在存储具有实体关系的数据,而不是关系数据库。Windows Azure Table 提供轻便快捷低成本的大规模存储数据,包含实体和属性。它不是关系数据库,所以不能提供类似SQL中joins的方法,也不能管理 foreign keys。事实上,一个单一的Windows Azure Table可以存储数十亿个实体,一个Windows Azure Table的大小能达到万亿字节,这是一个相当大的存储量。通过示例图3也可以说明这一点。

(3)Windows Azure Queue

Windows Azure Blob和Windows Azure Table都是用来存储和访问数据的。Windows Azure 提供了第三种存储服务——Windows Azure Queue,为异步工作提供分派消息服务,最常见的一个应用就是作为Worker Role实例和Web Role实例之间通讯的消息队列。有关Windows Azure Queue使用的示例我们将在应用场景来做描述。

不管在Windows Azure Storage中是使用Blob、Queue还是Table来存储数据,为了保证数据的安全,微软云计算服务平台至少会在同一数据中心三个独立的容器中存储Blob,Table和Queue,Windows Azure基于地理位置的功能允许你将数据复制到多个微软数据中心,增强灾难恢复能力,提高特定地区的性能。

Windows Azure Storage应用场景

在Windows Azure Storage应用场景里,我们更多是通过一些示例图或者实际应用的图来给大家介绍一些Windows Azure Storage的应用场景。

在如图4所示的应用场景中,用户通过Web Role实例访问Table里的数据,Web Role和Worker Role之间的消息传递是通过Queue来实现的,而Worker Role则访问了Blob里的大数据。

在图5所示的场景中,Web Role和Worker Role之间的消息传递是通过Queue来实现的,而Worker Role则访问了Blob里的大数据。

在图6所示的应用场景中,用户通过Web Role实例访问Table里的数据。

下面我们给出两个使用Blob和Table访问到的数据界面,如图7~8所示:

在图7中,我们可以浏览到Blobs里存储的二进制数据,默认状态下,这些数据是只读的,可以在上面的搜索条里对数据进行查找,也可以对文件下载,这是不是类似于FTP呢?

在图8中,使用Table存储了数据,每一行都标示了一个实体,每一列都标示了实体的一个属性。从存储看上去还是和SQL Server的数据表很类似的。同样,可以对数据进行过滤,而且还可以对数据进行刷新。

总结

Windows Azure Platform支持三种可扩展的持久化存储:非结构化数据(Blob)、结构化数据(Table)、应用程序和服务之间,或应用程序与服务之间的消息(Queue)。再结合Visual Studio的开发环境和应用场景,加深了大家对Windows Azure 存储服务的理解。

最新文章

  1. ResponsibleChain(责任链模式)
  2. [转]C#网络编程(同步传输字符串) - Part.2
  3. [转]jquery 点击表格变为input可以修改无刷新更新数据
  4. EL表达式中fn函数 (转载)
  5. Swift语言学习之OC和Swift混编
  6. Java中this关键字在构造方法中的使用
  7. Dynamic view
  8. Xaml代码格式设置
  9. read by other session
  10. git生成密钥
  11. iOS国际化和genstrings所有子文件夹本地化字符串
  12. js常见排序
  13. Android开源项目——设置图文居中的按钮 IconButton
  14. JavaScript 运行机制 (Event Loop)
  15. 大牛推荐的30本经典编程书籍,从Python到前端全系列。
  16. python中getcwd()方法慎用
  17. 华策光通信: LED可见光通信室内定位项目获最具投资价值奖
  18. VS中碰到的问题
  19. PCI、PCI-x,PCI-E兼容以及他们之间的区别详细图解
  20. HTTP 协议介绍

热门文章

  1. 用cglib包来为类产生动态代理类对象
  2. AngularJS实战之cookie的读取
  3. 7-18 Hashing - Hard Version
  4. CAAnimation-CAPropertyAnimation-CABasicAnimation-CAKeyframeAnimation
  5. Trie树的数组实现原理
  6. wordpress和数据库的连接
  7. TryEnterCriticalSection___Delphi
  8. JPA Annotation注解
  9. 广搜 poj3278 poj1426 poj3126
  10. unigui回车代替TAB