【IT168专稿】SQL Azure 是一个云的关系型数据库,它可以在任何时间提供客户数据应用,是一种云存储(Cloud Storage)的实现。可以把它看成是SQL Server的云计算平台版本,但是又不能简单的把SQL Azure看成是构建在云端的SQL Server。 SQL Azure是一个四层结构:基础架构层、平台层、服务层和客户端层,前三层构成了微软数据中心,客户端层使用API或者基于Web的客户端来访问存储在云中的数据。本文将介绍SQL Azure的核心功能及新功能、SQL Azure的应用场景、使用T-SQL 操作SQL Azure、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数据库的支持 -因为数据库最大容量增加到了50GB,现在可以在单个SQL Azure数据库中存储更多数据,这必定会提高您应用程序的拓展性。同时现已在全球有6座数据中心可以使用。
SQL Azure 新功能
(1)更新数据库版本及最大容量:SQL Azure的Web 版最大数据库最大容量是5G,在这之前是1G;SQL Azure商业版的最大数据最大容量是50G,此前是10G。
(2)创建或更新数据库:可以通过T-SQL来创建或者更新商业版数据库至50G。
(3)支持查询数据库版本和最大容量:使用DATABASEPROPERTYEX ( 'database' , 'property' )查询数据库某属性值。
(4)空间(Spatial)数据支持-:SQL Azure 现提供了对于地理和几何学类型,以及通过T-SQL进行空间数据查询的支持。这是一个极其重要的特性,这使得Windows Azure Platform可以创建基于空间和位置的应用程序。
(5)HierarchyID 数据类型支持:HierarchyID 是可变长度的系统数据类型,使得您能够在数据库中存放类树形结构。在接下来几天,我们会发布一篇文章来讲解如何在应用程序中使用HierarchyID 。
(6)BCP使用参数查询:在SQL Server 2008 R2的版本中,支持BCP查询,但是需要使用参数:–d database_name。
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来运行自己的程序或服务,尤其是使用微软动态云能够让用户自己动态管理数据中心的基础设施(包括服务器、网络和存储等),包括开通、配置和安装等。