我们可以把它看成是SQL Server的云计算版本,但是又不能简单的把SQL Azure看成是构建在云端的SQL Server。SQL Azure 是一种可以部署在云端的关系型数据库,能在任何时间为客户提供基于关系型数据库的一种服务。SQL Azure具有四层结构:基础架构层、平台层、服务层和客户端层,前三层构成了微软数据中心,客户端层使用API或者基于Web的客户端来访问存储在云中的数据。本文将介绍SQL Azure的主要功能、价格、应用场景、使用T-SQL 操作SQL Azure、SQL Azure Database的功能限制。
SQL Azure的核心功能:
SQL Azure是微软数据平台的一个关键组件,基于 SQL Server 技术构建,由微软基于云进行托管,提供的是可扩展、多租户、高可用的数据库服务。SQL Azure Database 帮助简化多数据库的供应和部署,开发人员无需安装、设置数据库软件,也不必为数据库打补丁或进行管理。SQL Azure的核心功能表现在:可管理性、可扩展性和可编程性。
(1)可管理性
SQL Azure为用户提供了内置的高可用性和容错能力,且无需客户进行实际管理。SQL Azure支持数据应用层程序(Data-tier Applications),数据库应用层程序是一个包含了几乎某一应用所需要的数据库及实例对象的实体,如表、视图、存储过程、登录等等。有了实体以后,原本独立的登陆、部署、维护就可以通过开发人员进行开发来整合成为一个统一的整体,这样的一个整体又叫应用程序包,这样DBA 就可以把原本独立的对象视为一个数据库应用层的程序来进行部署、监控和管理。目前支持的数据层应用程序有删除、部署、提取和注册数据层应用程序包。
(2)可扩展性
云计算的一个关键优势是用户可以定义自己的解决方案,使用SQL Azure,可以满足用户创建可扩展解决方案的需求,可扩展性表现在:
全球可扩展性(Global Scalability):租用SQL Azure可以采用按需求增长付费(pay-as-you-grow)的策略来租用,当使用SQL Azure的数据容量较小时,租用较小的数据库容量;当应用程序的数据库量增大时,再考虑扩大数据库容量。因为不同的数据库容量的费用和不同容量费用是不一致的,具体费用可参考下文SQL Azure价格。目前在全球有6座数据中心可用,在数据库扩容时也可以选择在哪个数据中心上。
Multi-Tenant支持:支持独立软件开发商所开发的软件和服务。
(3)可编程性
SQL Azure Database 支持 TDS 和 Transact - SQL(T - SQL),客户可以使用现有技术在 T – SQL上进行开发,还可以使用与现有的客户自有数据库软件相对应的关系型数据模型。SQL Azure Database 提供的是一个基于云的数据库管理系统,它能够整合现有工具集,并提供与客户自有软件的对应性。具体来说,可编程性表现在三个方面:
熟悉的客户端模型:支持 TDS和T-SQL,可以使用ADO.NET、 ODBC、 JDBC 和SQL Server driver for PHP。
关系数据模型:使用SQL Server的用户和管理员非常熟悉SQL Azure的数据存储方式。
数据同步和离线支持:可以使用Sync Framework来进行数据同步和离线支持。
SQL Azure团队在Tech ED上展示的SQL Azure Service Update 3已经上线,并且完成了一些重要的特性,如50GB数据库的支持。同时现已在全球有6座数据中心可以使用。
SQL Azure 新功能:
- 更新数据库版本及***容量:SQL Azure的Web 版***数据库***容量是5G,在这之前是1G;SQL Azure商业版的***数据***容量是50G,此前是10G。
- 创建或更新数据库:可以通过T-SQL来创建或者更新商业版数据库至50G。
- 支持查询数据库版本和***容量:使用DATABASEPROPERTYEX ( 'database' , 'property' )查询数据库某属性值。
- 空间(Spatial)数据支持-:SQL Azure 现提供了对于地理和几何学类型,以及通过T-SQL进行空间数据查询的支持。这是一个极其重要的特性,这使得Windows Azure Platform可以创建基于空间和位置的应用程序。
- HierarchyID 数据类型支持:HierarchyID 是可变长度的系统数据类型,使得您能够在数据库中存放类树形结构。在接下来几天,我们会发布一篇文章来讲解如何在应用程序中使用HierarchyID 。
- BCP使用参数查询:在SQL Server 2008 R2的版本中,支持BCP查询,但是需要使用参数:–d database_name。
SQL Azure 的价格:
默认情况下,每个SQL Azure Server上的SQL Azure支持150个数据库,包括Master数据库,也就是说用户可以创建149个数据库。SQL Azure 提供了两种版本:Web 版(Web Edition)和商业版(Business Edition),他们目前的价格如下表1所示:
***容量 | Web版 | 商业版 |
0 – 1 GB | $ 9.99 | $99.99 |
1 – 5 GB | $49.95 | $99.99 |
5 – 10 GB | N/A | $99.99 |
10-20 GB | N/A | $199.98 |
20-30 GB | N/A | $299.97 |
30-40 GB | N/A | $399.96 |
40-50 GB | N/A | $499.95 |
表1 SQL Azure价格
#p#
SQL Azure的应用场景
(1)Web应用程序
当Windows Azure所提供的储存空间、关联式实体数据(如Windows Azure Blob、Windows Azure Queue、Windows Azure Table)不适合应用程序时,可以选择储存它的资料在SQL Azure资料库中。 由于现有的大部分Web 应用程序使用了关系型数据库存储,而且多数开发人员也熟悉这些功能和技术,所以可能会有一些Web应用程序迁移到云中去,这样数据存储可能就需要使用SQL Azure。
(2)部门/工作组应用程序(Departmental/Workgroup Application)
在大公司中,全公司性质的数据库大都使用了容错配置、不间断电源、磁盘阵列存储、群集服务器等方法来保证数据的安全性和可靠性。
使用SQL Azure后,不用考虑容错、7*24数据提供、备份恢复等数据库管理功能。同一份数据会在不同的地方存储3份,不用担心数据丢失。
但是在目前来看,SQL Azure数据存储策略还有不***的地方,数据的安全性是得到了一定的保障,但是如何保证SQL Azure上的数据是按照客户的意图来管理的,这是一个问题,如何保证客户数据的商业秘密,这是另一个问题,这两大问题也是云安全着重要解决的。
(3)数据中心
数据中心(Data Center,DC)通过实现统一的数据定义与命名规范、集中的数据环境,从而达到数据共享与使用的目标。一个典型的数据中心常常跨多个供应商和多个产品的组件,包括:主机设备、数据备份设备、数据存储设备、高可用系统、数据安全系统、数据库系统等等。
(4)独立软件+服务提供者
对独立软件+服务提供者来说,可以租用SQL Azure来运行自己的程序或服务,尤其是使用微软动态云能够让用户自己动态管理数据中心的基础设施(包括服务器、网络和存储等),包括开通、配置和安装等。
使用T-SQL 操作SQL Azure
创建数据库可以使用的T-SQL如表2所示:
T-SQL | 功能 |
CREATE DATABASE Test | 直接创建数据库Test |
CREATE DATABASE Test (EDITION=’WEB’, MAXSIZE=1GB) | 创建一个Web版数据库Test,其***容量是1G,如果超过***容量将返回40544错误 |
CREATE DATABASE Test (EDITION=’WEB’, MAXSIZE=5GB) | 创建一个Web版数据库Test,其***容量是5G |
CREATE DATABASE Test (EDITION=’BUSINESS’) | 创建一个商业版数据库Test,其***容量是10G |
CREATE DATABASE Test (EDITION=’BUSINESS’, MAXSIZE=50GB) | 创建一个商业版数据库Test,其***容量是50G |
表2 创建数据库SQL
修改数据库
在大部分时间里,我们能够知道需要的数据库容量,由于SQL Azure的价格和云计算的特点,决定了我们可以按需购买所需要数据库的容量。在数据库内容较小时,可以使用Web版本,如果容量增长超过了5G,可以购买商业版,这时候就需要修改数据库容量,代码如下:
- ALTER DATABASE Test MODIFY (EDITION=’BUSINESS’, MAXSIZE=50GB)
除此之外,SQL Azure中支持和不支持的T-SQL如下所示。
(1)支持的T-SQL特性:
- 常数
- 数据限制
- 数据光标
- 数据库索引管理与索引重建
- 本地数据库暂存表
- 保留字
- 预存程序
- 数据库统计管理
- 数据库交易
- 触发程序
- 数据库表、数据表联结以及表变量
- Transact-SQL语言元素,像是对数据库、表、用户与登录等的建立、修改与删除
- 用户定义函数
- 查看表
(2)不支持的Transact-SQL特性:
- SQL CLR
- 数据库文件配置
- 数据库映射
- 分布式查询
- 分布式交易
- 文件组群管理
- 全局暂存表格。
- 稀疏数据与索引
- SQL Server组态选项
- SQL Server Service Broker
- 系统表
- 游标
#p#
SQL Azure Database的功能限制
对不同版本的SQL Server数据库SQL Azure的功能限制不同,这里主要列出对SQL Server 2008 R2和SQL Server 2008的功能限制。
(1)对SQL Server 2008 R2的功能限制
- SQL Server Utility
- PowerShell
- 主数据服务
(2)对SQL Server 2008的功能限制
- 数据捕获 Change Data Capture
- 数据审核 Data Auditing
- 数据压缩 Data Compression
- 扩展事件 Extended Events
- CLR 扩展的特殊类型和方法 Extension of spatial types and methods through Common Language Runtime (CLR)
- 驻外键管理 External Key Management / Extensible Key Management
- 文件流数据类型 FILESTREAM Data
- 全文检索 Integrated Full-Text Search
- Large User-Defined Aggregates (UDAs)
- Large User-Defined Types (UDTs)
- Performance Data Collection (Data Collector)
- 策略管理 Policy-Based Management
- 资源管理 Resource Governor
- SQL Server复制 SQL Server Replication
- 数据加密 Transparent Data Encryption
结语:
SQL Azure是构建在SQL Server 2008之上,运行云计算 (Cloud Computing)的关系数据库服务,是一种云存储(Cloud Storage)的实现,它可以随时随地为我们提供关系型数据服务。本文分析了SQL Azure的功能和新功能、应用场景、价格、支持和不支持的功能,通过这些介绍给现在或将来使用SQL Azure的用户一个理论性的认识。
【编者推荐】