技术开发 频道

细节见差别!从构架谈AzureTable开发

  【IT168 专稿】Windows Azure Table提供了一种以结构化存储数据的方法,Windows Azure Table不像传统的关系型数据库表(如SQL Server里的Table),也不像是云端的关系型数据库Windows Azure SQL中的关系型数据库一样存储具有关系型的数据。Windows Azure Table存储的是能够易于扩展的数据实体和属性。

  构成Windows Azure Table的是数据实体,数据实体则由属性组成。经过扩充,Windows Azure Table可容纳数以亿计的个体单位和兆位元组 (TB) 大小的资料,并可分割储存到数千部伺服器上。在Windows Azure Table中,不仅可以进行单一个体单位的创建、修改和删除,也可执行涵盖整个Windows Azure Table的丰富查询。

  对开发者来说,使用Table Service API,Windows Azure SDK与.Net平台提供的ADO.NET Data Services,能够使用.Net开发者所熟悉的界面进行Windows Azure Table的程序设计与开发。在本文中,将向大家介绍Windows Azure Table的架构,在此基础上通过一个具体案例来介绍如何使用Windows Azure Table来进行开发。

  Windows Azure Table架构

  (1)Windows Azure Table应用架构

  同Windows Azure Blob、Windows Azure Queue架构介绍一样,对Windows Azure Table架构的介绍也同样分成两部分来介绍,第一部分是对Windows Azure Table应用程序架构介绍;第二部分介绍开发环境中的Windows Azure Table数据库对象。

  Windows Azure Table从应用程序上来说,架构如图1所示:

开发环境

  图1 Windows Azure Table架构

  由图1我们可以看到,Windows Azure Table的架构有一个层级关系,在最顶层是Table Service REST API,这个API为开发者提供了访问Table服务的应用程序访问接口,Table Service API在MSDN的地址是:

  http://msdn.microsoft.com/en-us/library/dd179423.aspx

  感兴趣的读者可以去了解更多信息,通过API,可以查询、创建、删除Table,也可以对Table的实体对象进程查询、创建、更新、合并和删除操作。

  紧随Table Service API的是Windows Azure Storage Account,Windows Azure存储服务的存储账户,这个存储账户的地址是:

<http | https>://<account name,存储账户>.table.core.windows.net

 

  在存储账户下,存储的就是我们的Table了,一个Table的地址是:

<http| https>://<account name,存储账户>.table.core.windows.net/Tables('<table name>')

 

  在每个Table里,存储了类似SQL Table里的记录,这些记录叫做Table Row,每个Table Row记录了Table名称以及实体数据,由上图我们也可以看出来。在实体中,每个实体都有由应用程序所定义的属性,可以说Table Row就是一个个实体对象。

  (2)Windows Azure Table数据模型

  在本地开发的环境中,我们使用了安装在本地的SQL Express。要想了解Blob的存储结构,首先连接到数据库上看看。

  使用SSMS连接本地的SQL Express数据库,如图2所示:

 开发环境

  图2 连接本地SQL Express

  在这里使用的SQL Express版本是SQL Express 2008,连接上本地SQL Express后,我们可以看到开发环境的存储数据库如图3所示:

 开发环境

  图3 开发环境存储表

  由图3中的表我们可以看到,除了账户表(Account),这些表是针对Blob、Queue、Table三种存储服务来设计的,事实上,Table的存储结构如图4所示:

 开发环境

  图4 Table的存储结构

  在TableContainer中,记录了每一个Table,在TableRow中,记录的是每一个Table中的实体数据,期中TableRow表中的Data字段以Xml格式记录了Table中实体属性及属性的值。

0
相关文章