《SQLAzure简介982.pdf》由会员分享,可在线阅读,更多相关《SQLAzure简介982.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQL Azure 简介 功能介绍:SQL Azure 是微软的云端数据库平台,也是微软云操作系统平台 Windows Azure 的一部分。它是在SQL Server技术基础上发展出来的云端关系型数据库服务。目前除了SQL Azure数据库服务之外,还提供 SQL Azure 报表服务(SQL Azure Reporting)以及 SQL Azure 数据同步服务(SQL Azure Data Sync)。背景 当前企业在提供因特网服务的同时面临很多挑战。诸如数据量不断增长,而客户期望能在任何时间,从任何地点甚至任何设备上访问数据。数据量越来越大,数据使用越来越频繁,还有数据格式也越来越多样
2、化。开发人员必须快速地构建和部署应用程序以满足日益增加的需求。如果使用传统的本地部署的数据管理模型,要满足这些需求,需要持续地投资和管理服务器,操作系统,存储和网络等资源。IT 和运维人员都必须持续监控这些基础设施以确保随着数据量和用户负载的增加,系统的容量,性能和可用性得以保证。云端数据库服务(如SQL Azure 数据库)能够应对这些挑战。SQL Azure 的建立是基于 3 个重要原则:可管理性,可伸缩性和方便开发者。从开发者的角度看,SQL Azure 提供了众所周知的丰富的关系型数据库编程模型,使用相似的数据访问协议和简便的部署选择。SQL Azure 消除了用户构建和维护数据库服务
3、器方面的考虑,使得开发人员有更多的时间和精力进行创新和试验。从 IT 管理的角度看,SQL Azure 提供了系统的安全的云端部署方案,并对基础架构提供自动化的监控,节约了 IT 管理者在服务器监控方面所花的大量时间。另外,SQL Azure 是建立在 SQL Server 基础之上的,因此具有同 SQL Server 一样的高可用性,可靠性和安全性。从商业的角度看,SQL Azure 提供了一种非常经济的方式方便用户管理数据:基于使用量的定价计划,接近零成本的运营支出以及快捷随需地扩容或降容。如果你的应用程序计划构建在大的或共享的数据集上,要求提供能应对需求变化的具有可伸缩性的数据存储,或者
4、希望以更低成本增强您本地部署的数据服务器,SQL Azure 可以为您提供健壮而经济的解决方案。重要功能 SQL Azure 是微软数据平台的关键组件,主要提供了以下几个重要功能:可管理性 与本地部署的数据库方案相比,SQL Azure 无需额外的管理开销就可以提供企业级数据中心才能提供的高性能。自我管理的能力使得企业无需依赖本地的 IT 部门支持就可以快速为应用程序提供数据服务;同时这也能够避免为了维护部门的数据应用程序,而分散技术人员在核心工作上的注意力。低摩擦系数的服务供应 在传统的本地部署的数据基础架构下,通常你会花费大量的时间在部署服务器,增强安全性,配置网络以及安装软件,这会拖延你
5、构建原型和启动新的数据驱动的解决方案的进度。作为云端数据库解决方案,SQL Azure 可以让您在几分钟之内快速装载需要的数据存储并且快速响应。通过按需提供服务,一开始就降低了数据服务的成本并且未来很容易扩展。高可用性 SQL Azure 是建立在强大可靠的 Windows Server 和 SQL Server 技术之上的,具有足够的灵活性来处理各种使用和负载上的偏差。SQL Azure 将多份数据拷贝复制到多台物理机器上,以确保数据的高可用性和保持商业服务的持续性。一旦出现灾难,SQL Azure 会自动切换到其他可用的服务器以最大程度伤确保您应用程序的可用性。另外服务许可协议也给予了商业
6、上的保证,当你使用 SQL Azure 时,您不再需要进行备份,还原以及自我保护数据。可伸缩性 云计算模型一个重要的优点是为您的解决方案提供很强的伸缩性。不管您的应用程序是部门级的小程序还是下一个全球互联网的典范,SQL Azure 都可以满足您可伸缩性的需求。按使用情况支付(pay-as-you-grow)的价格模型使你不仅可以跟据需要快速装配新的数据库,也可以使您在需求减少数据使用量降低的时候,不用的容量不会产生财务上的支出。数据库的伸缩策略使您的应用程序可以利用数百台服务器的处理能力和存储 TB 级的数据。SQL Azure 在全球有很多数据中心,因此你可以快速进入新的市场。如果您想定位
7、在某一个区域,您可以将您的数据库部署在最近的数据中心。您可以利用这种全球性的可伸缩性部署您下一代的因特网应用,而不用基础架构和管理方面的额外开销。多租户支持 在软件+服务模式下,独立软件供应商针对客户数据必须要提供足够的隔离措施,因为 ISV需要根据每个客户使用的存储服务的具体情况进行收费。SQL Azure 提供了足够的灵活性来满足独立软件供应商的需求,使得他们可以迅捷地构建软件+服务的解决方案。开发人员支持 SQL Azure 提供了与 SQL Server 非常相似的功能。开发人员可以使用他们已经有的知识和技能进行云计算的开发,而无需花费大量的时间和精力来学习 SQL Azure。客户端
8、部署模型 SQL Azure 提供了与 SQL Server 一样的 TDS 接口,这使得开发人员可以使用相同的工具和程序类库来构建客户端应用程序,如ADO.NET,ODBC,JDBC以及SQL Server Driver for PHP。证实的关系型数据模型 对开发者和数据库管理员而言,SQL Azure 在使用方式上并无多大区别。数据库开发人员依然可以应用现有的关系型数据库设计知识和 T-SQL 编程技能到 SQL Azure 上。另外,还可以很容易地将现有的本地部署的数据库迁移到 SQL Azure。SQL Azure 服务器实例和数据库都是逻辑概念,并不对应物理的机器和数据库。这层抽象
9、使得开发人员和数据库管理员可以专注于数据模型的设计上。同步以及线下支持 SQL Azure 是微软数据平台的一部分。微软数据平台集成了微软同步框架(Microsoft Sync Framework)来支持用于偶尔连接的同步需求。举例来说,通过使用 SQL Azure 和 Sync Framework,本地部署的应用程序和客户端设备可以通过云端的通用数据中枢(common data hub)互相同步数据。典型应用场景:Web 应用 大多数的 Web 站点需要一个数据库来存储用户输入信息,电子商务交易信息,内容及其他信息。通常对于数据驱动的Web 站点来说,它的数据库服务器和Web 服务器是在同一
10、个数据中心。使用 SQL Azure,Web 开发人员可以选择将数据存储在云中以获得高可以用性和高容错性能。针对部门应用场景,你可以将您的 Web 服务器部署在自己的服务器上或者使用一台第三方的 Web 服务器,将数据存储在 SQL Azure 上,Web 服务器通过互联网访问 SQL Azure 中的数据。但是考虑到性能以及由于网络延迟导致的系统复杂性因素,您应考虑将 Web 站点部署在 Windows Azure中以使它能够在站内访问 SQL Azure 数据库。部门/工作组应用 在一个大的组织中,有资质的数据库管理员需要应用它们的经验负责公司范围十分重要的数据库的正常运行。这些数据库也会
11、有容错配置,如不间断供电,冗余磁盘阵列以及群集服务器。相比较而言,一个大的组织通常还会有许多较小的数据库应用程序。这些应用程序使用的数据库可能是 Microsoft Office Access,Microsoft SQL Server Express 或者是一些第三方的软件。数据库一般部署在一个独立而廉价的服务器上甚至仅仅是一台桌面型电脑上。数据库的管理员一般非专业人员。尽管数据库问题导致的影响通常限制在部门级别,但是这种中断可能会妨碍整个部门的生产力,然而实际工作中又难以对这些数据库进行跟踪。SQL Azure 对于这些分散的数据库应用提供了优秀的管理功能。如果这些简单而分散的应用使用 SQ
12、L Azure 数据库,用户可以享受到 SQL Azure 提供的自我管理能力和很好的容错能力而不用增加本地 IT 部门的负担。这种集中式的方法也使得对数据库的审计工作变得更加轻松。除此之外,由于 SQL Azure 的”根据使用情况付款”(pay-as-you-grow)的价格策略,您可以以非常低廉的成本运行简单的数据库应用。在进行本地部署的客户端/服务器模型的应用程序到 SQL Azure 的迁移时,您可以选择将数据部署在 SQL Azure 中,客户端程序部署在本地,这样您可以通过互联网访问数据库。不过在这种模式下,您需要考虑网络延时对您程序的影响,可能要在客户端写更复杂的代码来处理网络
13、延时带来的连接问题。一种更好的方式是将数据访问逻辑部署到 Windows Azure 上,这样数据访问代码和数据都在同一 个数据中心。你可以在 Windows Azure 中创建 Web 应用程序,这样客户端可以通过浏览器来进行访问。您还可以使用 ADO.NET Data Services 针对简单的桌面应用程序来创建 SOAP,REST 或者 JSON 接口。数据中枢(Data Hub)一个常见的数据中枢场景是你希望让各种各样的移动设备和远程用户协同使用相同的数据。比如一个保险公司在北美有超过 5000 人的移动销售团队,保持客户和价格方面的数据能够在整个销售团队中同步一直是个问题。首要问题
14、是新客户的合同信息要录入内部财务系统;其次是销售团队拿到最新的价目表信息。保险公司需要一个解决方案:确保每个销售员的便携式计算机能同步有最新的价格信息 确保公司系统能同步每个销售便携式计算机上的新客户信息并且没有暴露公司数据的风险 目前关于产品和客户的数据都存储在数据中心的 SQL Server 数据库中。另外,销售人员使用的应用程序运行在各自的笔记本电脑上,数据存储在本机的SQL Server Express 上。由于每个销售人员的笔记本电脑都有可能产生对数据中心不安全的访问,所以 IT 部门不希望为了连接本地的数据中心而修改防火墙设置。通过使用 SQL Azure,开发团队可以提供一种安全
15、而又能够完全同步的解决方案。这种方案包含三个步骤:1.在 SQL Azure 中创建关于产品和客户数据的数据库。2.为数据中心创建 Sync Framework provider。这个 Sync Framework provider 可以在 SQL Azure 数据枢纽和本地数据中心之间进行同步产品和客户的数据。3.再为销售人员的笔记本电脑创建一个Sync Framework provider,以实现在销售人员和 SQL Azure 数据枢纽之间同步产品和客户的数据。从上图可以看出,关于产品价格的数据从企业的数据库经过 SQL Azure 传送到超过 5000 个销售人员手里。而客户信息从超过
16、 5000 个销售人员那里经由 SQL Azure 传送给企业数据库。当一个销售人员的笔记本电脑离线时,本地数据的变化会被记录。当连接恢复时,Sync Framework Provider 会找到这些变化,然后将这些变化传送给 SQL Azure。公司数据中心的安全要求也完全满足了。独立软件供应商“软件+服务”模式(ISV S+S Offering)独立软件供应商可以使用 SQL Azure 来提供软件+服务的解决方案。Windows Azure 提供了一个理想的环境来承载各种软件服务,而且 ISV 或客户不用对基础设施进行额外的维护。考虑这样一个场景,一个软件+服务的供应商要对金融,政府,医
17、疗,房地产以及一些特殊业务公司等各种业务提供关于遵守规定方面的支持。这样的公司需要存储各种各样的历史数据以便将来参考或按要求备案,比如金融条款,商业交易或信函等。该供应商部署了文档管理系统来归档数据,并提供工作流,检查流程的功能以及全文索引。另外,为了审计的目的,它还必须能够跟踪和报告对资源的访问记录。为了减少数据存储成本,确保快速安全地访问记录,这个供应商希望将客户的归档数据迁移到云端。为了实现这个目标,该公司可以创建一个 SQL Azure 账户,并在公司范围内为每个客户创建相应的 Windows Azure 账户。客户有了账户以后,他们可以上传各种形式的文档,如电子邮件,扫描件以及各种契
18、据。有些文档以二进制形式存储在 Windows Azure 的 BLOB store 里面,而有些文档则以结构化的数据存储在 SQL Azure 中。在这种情况下,最重要的是确保每个客户的数据都是独立的并且只对该用户可用。该供应商可以使用 SQL Azure 来实现这种隔离并避免不适合的访问。另外,SQL Azure 很容易审计使用情况,这样就能够对客户进行合理收费。开发人员在编写 Windows Azure 开发解决方案时会发现它与 SQL Azure 是紧密集成的。举例来说,他们可以使用与桌面应用类似的 SQL Server 客户端类库,可以使用一个 Windows Azure 账户来实现
19、云端用户的验证,他们还可以对Windows Azure 代码和 SQL Azure 数据使用相同的地理位置属性。架构简介:SQL Azure 服务模型的设计有两个目的,一方面满足大规模数据和低成本使用的要求,另一方面是为管理人员和开发人员提供熟悉的环境。这主要体现在以下提供的分级服务供应模型上。Windows Azure 平台账户 要使用 SQL Azure,先要创建一个 Windows Azure 平台账户。使用该账户,你可以使用 Windows Azure 平台上的各种功能。该账户也同时作为计费账户来计算所有在 Windows Azure 平台运行的各种服务的费用。SQL Azure 服务
20、器 每个 Windows Azure 账户下可以创建多个 SQL Azure 服务器。这些服务器的创建方式不同于 SQL Server 实例。你可以把这里的 SQL Azure 服务器看成是一个逻辑上的概念,它实际上是针对底层多台 SQL Azure 服务器进行供集中式管理的接口。和本地 SQL Server 实例一样,每个 SQL Azure 服务器都有登录名,另外你还可以为 SQL Azure 服务器指定所在的物理区域。你可以使用 SQL Azure 门户网站来创建和管理你的数据库服务器。门户网站提供了方便易用的用户界面可以帮助你轻松创建登录名和数据库。SQL Azure 数据库 每个 S
21、QL Azure 数据库服务器可以包含多个数据库。对于一个新建的数据库服务器而言,它只有一个 master 数据库,这跟本地部署的 SQL Server 实例非常类似。在每个数据库里,你可以创建多个表,视图,索引,存储过程以及其他熟悉的数据库对象。你可以通过 SQL Azure 门户网站创建新的数据库,也可以用Transact-SQL 语句 CREATE DATABASE 创建数据库。SQL Azure 数据库以多份数据分区形式分布在 SQL Azure 数据中心的多台物理机器上。这种架构既提供了自动切换的功能也提供了负载均衡的功能。客户数据分布在 SQL Azure 指定地理位置的多台物理服
22、务器上。通过这种方式,不管是对大型还是小型应用程序,不需要过多的管理工作,SQL Azure 数据库都可以实现高可用性和稳定性。关系型数据库模型 对于 SQL Azure 而言一个重要的目标是为数据库程序员提供熟悉的开发环境。因此你在 SQL Azure 数据库中可以跟那些在 SQL Server 中一样创建对象。这包含:表,视图,索引,存储过程和触发器 SQL Azure 和 SQL Server 一样都是用 Transact-SQL 语言进行数据库的创建和数据操作。数据库开发和管理人员因此能够根据他们现有的经验立即在 SQL Azure 上展开工作。数据访问架构 SQL Azure为云端的
23、数据库提供一个TDS Endpoint。和本地部署的SQL Server一样都是用 TDS 网络通信协议,因此一个桌面客户端程序可以像连接本地 SQL Server 实例一样连接 SQL Azure 数据库。你的应用程序可以使用 ADO.NET,ODBC 或任何你喜欢的数据库访问技术。查询依然是通过 T-SQL 语句。为了确保安全性,客户端到 SQL Azure 数据库 TDS Endpoint 的连接都通过 SSL。在桌面客户端程序/SQL Azure 数据库的场景中,你必须考虑到云中可能导致的延迟并且在客户端代码中进行处理,者是因为在这种情况下,延迟的可能性明显地要比本地连接方式高。避免延
24、迟的一种方式是为你的数据库应用程序创建一个基于 Web 的用户接口,并将其部署在 Windows Azure 上。用户可以通过浏览器访问这个程序。这样,客户端的代码和数据都被部署在同一个数据中心,因此延迟很低。你也可以对 Windows Azure 中部署的数据驱动的 Web 站点应用这种架构。SQL Azure 还支持另一种架构,你可以使用 ADO.NET 和 Entity Framework 创建应用程序逻辑,并将其部署在 Windows Azure 中。然后,你可以使用ADO.NET Data Services以SOAP,REST或JSON接口服务的形式发布该应用,并创建一个轻量级的客户
25、端应用程序使用数据服务。通过这种方式,你避免了应用程序和 SQL Azure 中的延迟,但是你仍然要为你的数据提供一个基于互联网的服务接口以方便在因特网应用程序或桌面解决方案中使用。安全模型 SQL Azure提供了同SQL Server同样的SQL Server验证方式。您可以使用SQL Azure 服务器的登录名,数据库用户以及数据库角色进行访问授权,并强化数据安全。横向数据库扩展 您?以在 SQL Azure 存储 KB 乃至 TB 级的数据。然后,由于单个数据库最大限制在 50GB,要存储超过 50GB 的数据,你必须将数据集分割到多个数据库中并进行并行查询进行数据访问。Data Sh
26、arding 是一种被许多应用程序所使用的技术,能够提高性能,增强伸缩性和降低成本。有些应用程序非常适合分割因为他们有自然的分割边界。尽管关于使用 Data Sharding 的好处已有充分的说明,但是很少有提到当有几十乃至数百台服务器时进行分布式数据库管理的成本问题。SQL Azure 为那些需要几十乃至数百个数据库的应用程序提供了基础架构却不需要额外的管理开销。应用程序可以将大的数据集分成多个数据库而不需要面对各种各样的成本和资金问题。提供和使用三百台数据库和三台数据库都一样简单。保持数百台机器协同工作并具有高可用性的管理压力都由 SQL Azur 承担。除此之外,SQL Azure 对于
27、应用程序的扩展也提供了足够的弹性。在需求变化时,可以根据需要增加或减少数据库的数量。客户不需要对未使用的资源进行支付。即便对于一个数据量较小但处理器要求较大的应用程序来说,它仍然可以通过并行访问资源获得分区带来的好处。尽管上面提到的方式很值得尝试,但在决定使用横向扩展的数据库策略时必须要小心因为它可能增加应用程序代码的复杂性,也未必适合每个应用程序。部署 通过使用 T-SQL,可以在 SQL Azure 中创建或填充一个数据库。然而,大部分情况下,开发人员或数据库管理员会在本地机器上设计和填充数据库。当应用程序完成的时候,数据库再被部署到云中。为了部署一个数据库到 SQL Azure 中,你可以在 SQL Server Management Studio 中使用”Generate Script Wizard”来创建T-SQL CREATE DATABASE 的脚本。你也可以运行 T-SQL 脚本来创建 SQL Azure 数据库。SQL Azure 的地理位置信息是在 SQL Azure 服务器层面设置的,因此为了在一个特定的区域部署数据库,你应该在那个地理位置创建一个新的 SQL Azure 服务器,连接它,然后运行数据库的脚本进行部署。