利用Contained Database和DAC来开发基于SQL Server "Denali"和SQL Azure之上的应用程序

大家好! 在刚刚结束的Microsoft TechEd China 2011中,我们在分会的一个小时里为大家讲解并演示了如何利用Contained Database和DAC来开发基于SQL Server “Denali”和SQL Azure之上的应用程序。为了能够和更多的开发人员和DBA介绍和分享CDB及DAC,并提供相关资源和工具下载的链接,我们特撰文如下,希望有所帮助。 背景 让应用程序的数据层可以在本地SQL Server服务器、私有云、共有云之间方便的部署、移动、升级和管理,正在迅速成为当前云时代的关键技术之一。SQL Server “Denali” 的新增功能——包含的数据库Contained Database (CDB) 和数据层应用DAC正是为了满足这一需求而研发并推出的。这两项技术在一起所提供的功能,将SQL Server应用程序的开发、部署、和不同环境之间的移动完全流程化了,让开发人员和DBA能够淋漓发挥,游刃有余。 进展 亮点简述 包含的数据库Contained Database (CDB):排序规则和安全认证已经可以内置在CDB中; 数据层应用DAC:BACPAC既包含数据库的元信息,也包含数据;原地升级;可以防止篡改; 代码名为“Juneau”的SQL Server开发工具:基于Visual Studio 2010,可以从现有数据库中提取信息新建项目;智能感知(IntelliSense);可深层验证;版本化build;可声明目标平台,定义服务器选择策略;界面友好直观; 导出导入工具:广泛支持SQL Server 2000(仅支持导出)、2005、2008、2008 R2、SQL Server Denali及SQL Azure。 相关资源及下载: 微软MSDN 英文介绍 “包含的数据库” SQL数据库导入导出工具 微软技术白皮书 英文《SQL Server 2008 R2 中的数据层应用程序》 SQL Server开发工具”Juneau” 微软MSDN 中文 SQL Server论坛 最后,为了让更多的开发人员和DBA了解CDB及DAC,我们会在10月24日进行一个同样内容的网络直播,详细信息和注册请参考http://technet.microsoft.com/zh-cn/hh506399 。…

1

利用SQL Server 2008 R2升级顾问进行升级前的准备和评估——视频教学

讲师:项目经理 林默 这个视频教学讲介绍如何利用Microsoft SQL Server 2008 R2升级顾问对SQL Server 2005的实例进行分析,以为升级到 SQL Server 2008 做准备。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110308_SQLServer_Upgrade_Advisor.wmv] 如果有什么问题,请直接通过评论提出。

2

StreamInsight手札(一)——初识

StreamInsight是SQL Server 2008 R2的新模块。它是一个基于.NET的平台,用于复杂事件处理(CEP,Complex Event Processing),即对于来自多数据源的无限事件序列提供近乎零延时的连续处理。StreamInsight是一个临时查询处理引擎,它可以支持应用程序对时间窗口内的事件进行查询处理。它对流数据的处理范围包括简单聚合、多数据源事件相关性、事件模式检测、甚至建立复杂事件序列和分析模型。StreamInsight的程序模型可以让用户通过LINQ定义这些查询,同时支持将查询结果无缝整合到C#的代码中。 传统的数据库针对静态数据操作,所有信息先被实体化存储在数据库中,然后被取出,再进行一系列的计算。而StreamInsight则针对的是事件流的操作,事件流从入口通过适配器进入,经过一系列查询逻辑的处理,最终通过输出适配器分发到各个目标上。事件流数据暂时保存于内存中,减少了数据存储与读取的时间。同时,StreamInsight了引入了一种时间窗口机制,即对事件流按照时间窗口切片统计,随着事件流入不断推移时间窗口,保持窗口中统计最新的数据。 因此,StreamInsight适用场景有如下特点: 输入为数据流尤其是多源无限长数据流 数据处理实时性要求高 高吞吐量 不关心中间结果 数据不需要永久保留 比如,多个收费站车辆通过信息作为数据流输入,统计一段时间内车辆的平均数。 下图是StreamInsight的架构: 由上图可以看出,StreamInsight主要包括三个部分:输入适配器(Input Adapter)、输出适配器(Output Adapter)以及CEP服务器。由于输入输出和CEP服务器都是异步运行的,所以StreamInsight提供了事件流调试器(Event Flow Debugger)方便用户调试事件的处理过程。  参考资料: 下载CU2http://blogs.msdn.com/b/streaminsight/archive/2010/06/28/update-on-the-update.aspx StreamInsight MSDN文档http://msdn.microsoft.com/en-us/library/ee362541(SQL.105).aspx 博客http://blogs.msdn.com/streaminsight/ 论坛http://social.msdn.microsoft.com/Forums/en-US/streaminsight StreamInsight MSDNhttp://msdn.microsoft.com/en-us/ee476990.aspx 样例http://streaminsight.codeplex.com Twitterhttps://twitter.com/streaminsight 软件测试工程师 金晶

1

将数据库迁移到SQL Azure云数据库的三种方法——视频教学

讲师:范智华 技术类别:SQL Azure、SQL Server 本视频介绍和演示迁移工具:SQL Server迁移助理(SQL Server Migration Assistant)。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110221_DemoMigrateToSqlAzurePartA_v6.wmv] 本视频介绍和演示迁移工具:数据层应用程序(Data-tier Application / DAC)。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110221_DemoMigrateToSqlAzurePartB_v6.wmv] 本视频介绍和演示迁移工具:脚本生成向导(Generate Script Wizard / GSW)。 [View:http://wm.microsoft.com/ms/china/technet/howtovideo/sqlserver2008/20110221_DemoMigrateToSqlAzurePartC_v6.wmv]


SQL Server 2008 R2新产品介绍——主数据服务

为什么需要主数据服务(Master Data Service ,MDS)? 在信息化的时代,企业每天都需要处理海量的事务数据。 如何保障这些海量数据的准确性和安全性成为企业数据管理的重要问题。微软SQL Server 2008 R2 发布的新产品——主数据服务(MDS)提供了有效的机制来帮助企业解决这个问题。 主数据是什么?主数据是企业的基础的、关键的业务数据。比如企业的产品信息、供应商信息、客户信息、人力资源数据等等。主数据的准确与否,决定着企业海量业务数据的是否有效。管理好这些主数据是进行海量数据处理的关键组成部分。 MDS概要介绍 企业的主数据按照实体、模块的方式存储在MDS数据库中。相互联系的实体存放在相同的主数据模块中。实体的属性是主数据存取和安全性管理的最小数据单元。在日常事务流水中,这些最小的数据单元精确的描述和刻画着事务的具体内容。同时在MDS中,可以对这些主数据进行组装和搭配,形成高级的主数据管理单元。这些功能分别在MDS的以下组成部分中实现: 系统管理工具:定义主数据的存储结构 资源管理器:展示和管理主数据的内容 安全性管理模块:定义主数据单元的存取权限 MDS同时提供了: 版本管理工具:维护和管理企业历史上不同时期的主数据 数据集成工具:与已有的系统进行主数据的导入和导出 参考资料 微软新产品介绍:http://www.microsoft.com/sqlserver/2008/en/us/MDS.aspx MDS 应用程序开发人员参考资料:http://msdn.microsoft.com/en-us/library/ee633763.aspx  MDS  博客:http://blogs.msdn.com/mds/ TechNet技术指引视频:http://technet.microsoft.com/zh-cn/ff959218.aspx 软件测试工程师 郝勇 作为技术指引,本片首先概要的介绍了什么是Master Data和Master Data Service,然后简明地演示了微软SQL Server Master Data Service所提供的主要功能。 [Video]


浅谈SQL Server 2008 R2 中的新组件——StreamInsight

随着信息技术的广泛应用,数据流作为一种新颖的数据结构在日常生活中有着越来越广泛的应用,微软在SQL Server 2008 R2 中推出了分析处理数据流的新组件——StreamInsight。它提供了基于DotNet框架的开发环境,用户能够轻松地使用它来开发出健壮,高效地数据流处理程序。 StreamInsight的本质是复杂事件处理(Complex Event Processing,CEP)的应用程序框架,与传统的数据库查询处理不同,事件处理系统需要同时处理来自多个数据源的海量事件(Event),并且根据用户提供的查询语句以及匹配模式,实时地输出事件分析结果。我们在下表中列出了事件驱动应用和数据库应用的主要区别: 数据库应用 事件驱动的应用(Event Driven) 查询模式 特定的查询请求 连续的查询 响应时间 从几秒至数天 几毫秒或更少 数据流量 数百条记录/秒 >10000 事件/秒 通过使用StreamInsight,用户可以开发出基于CEP的程序来实时处理大量的原始数据,利用数据之间的层次和关联关系,有效的采用相应的规则进行处理,以降低进行事件分析,事件关联及事件解析等操作的代价。StreamInsight同时能够支持对数据流模式匹配、异常检测、趋势分析等操作,使用户能够更好地管理、监控和挖掘数据,最终使用户得到之前无法了解的信息,并能够更快速和更有效的进行操作决策,提高关键绩效指标(KPI)。 在StreamInsight的应用中,其核心为StreamInsight服务器,它主要由输入,输出适配器(Adaptor)以及CEP引擎(CEP Engine)组成。 CEP引擎(CEP Engine):所有的输入数据都将再CEP引擎中进行分析和处理,它根据用户定义的查询逻辑,有效地分析和转换输入的数据,并及时输出结果。 适配器(Adaptor):StreamInsight提供了适配器的框架,开发者能够通过实现不同的接口来开发不同种类的适配器。适配器分为两类,输入适配器(Input Adaptor)是连接外部存储设备如网络服务器,传感器同StreamInsight引擎的接口。而输出适配器则用于处理CEP引擎输出的结果并可以同时触发一系列的操作。 下图给出了StreamInsight应用的整体结构: StreamInsight平台提供了一个功能强大的对象模型,它包含了许多有用的特性使得我们能够开发出灵活和功能强大StreamInsight的程序。对于初次使用StreamInsight的开发者来说,参考网上的一些实例能够取得事半功倍的效果。 在我加入微软之前,也曾进行过一段时间的数据流研究,当时的感受是,由于没有很好的数据流开发框架,我需要对于不同的应用开发不同的数据流程序来分析算法的有效性,而随着StreamInsight的推出,不仅能够为企业用户创造很大的价值,普通研究者也能够使用它更有效地开展研究工作。 StreamInsight的相关组件可以在微软网站上直接下载,如果您需要获得更多的信息,请访问微软StreamInsight的相关网站。 软件开发工程师 李人和

6

SQL Server 2008 R2 StreamInsight简介

作为SQL Server 2008 R2一个主要的部分,StreamInsight提供了复杂事件处理(Complex Event Processing,CEP)功能。它处理的对象是例如证券交易行情、物联网、医疗监护等数量巨大并且需要实时处理的复杂事件。 从体系结构上看,StreamInsight类似于一个基于内存的数据库系统。它通过输入适配器接收事件并保存在内存里面。然后通过LINQ对输入事件进行处理得到结果,用于进一步的处理。StreamInsight的LINQ扩展提供了丰富的功能,包括过滤、分组、汇总、连接等常见的SQL功能,和窗口切分这样比较特殊的功能。 窗口切分是CEP系统和一般DBMS不太一样的一个地方。它用于把一个无限长的输入流转换成为一个一个有限的集合,从而可以方便的进行处理。StreamInsight提供多种窗口切分支持,以适应不同的应用场景需要。例如下面的LINQ查询代码采用了数量为2的计数窗口进行切分,计算后面一个事件相对于前面一个事件的变化值。 var deltas = from e in inputstream              group e by e.DeviceId into eachGroup              from win in eachGroup.CountByStartTimeWindow(2, CountWindowOutputPolicy.PointAlignToWindowEnd)              select new { ValueDelta = win.Delta(e => e.Value), SourceID = eachGroup.Key }; 此外,StreamInsight还提供了事件流程调试器,它对于了解事件引擎的内部处理流程、开发和调试应用都有很大的帮助。 和其他微软产品一样,StreamInsight虽然功能很复杂很强大,但是非常容易使用。你可以按照下面的步骤很快把它提供的例子运行起来,开始你的CEP应用之旅。 下载StreamInsight试用版(大小大约是14MB),安装到你的机器上。安装的时候,实例名栏目输入Default。你不需要安装任何的SQL Server实例; 打开Microsoft StreamInsight程序组,点击StreamInsight Samples,下载例子代码并展开; 启动Visual Studio 2008或者2010,打开StreamInsightProductTeamSamples\Applications\ComposingQueries\ ComposingQueries.sln; 打开成功以后,按F7编译,然后Ctrl+F5就可以运行了。 更多的知识,请参考Microsoft StreamInsight程序组里面提供的文档或者查阅无联网。 参考资料…


SQL Server 2008 R2报表服务之地图向导

SQL Server 2008 R2地图向导是Report builder3.0中内嵌的用于导入地图、创建地图、编辑地图以及发布地图的一套可视化的工具。使用地图向导,用户可以轻松地制作出地图相关的报表,并发布供重用。相比于之前需要靠第三方插件的方法,地图向导在便捷性、灵活性、兼容性等多个方面都有了巨大的优势。 下面将详细介绍地图向导的强大功能。准备数据使用地图向导,必须首先有如下信息: 空间数据源。提供空间数据的源的位置或连接,例如,包含空间数据的 SQL Server 实例和数据库的名称,或是Environmental Systems Research Institute, Inc. (ESRI) 形状文件的名称。 空间数据。来自空间数据源,是包含用于指定位置的一系列坐标的字段。 分析数据。用于改变地图显示的分析数据,例如,年度商店销售额。 匹配字段。定义空间数据和分析数据之间关系的匹配字段,例如,唯一标识每个城市的地区和城市的名称。 空间数据用于显示地图,分析数据用于区分显示地图区域,匹配字段用于将分析数据和空间数据关联起来。 ESRI形状文件是一个文件集,其中的数据符合Environmental Systems Research Institute, Inc. (ESRI) 形状文件空间数据格式。该文件集通常包含.shp 文件(包含空间数据)和一个支持文件.dbf。 当您将形状文件指定为空间数据源而该文件位于您的本地计算机中时,空间数据将自动嵌入到报表中。若要动态使用ESRI文件中的空间数据,必须执行以下操作:在Report Builder 3.0中,将.shp文件及.dbf文件同时上载到报表服务器上的同一文件夹,然后链接到作为空间数据源的.shp 文件。 可以通过如下链接或者是其他网络地址获得空间数据。 分析数据可以来自报表数据集,也可能随地图库或ESRI形状文件中的某个地图的空间数据附带。对于随形状文件附带的分析数据,需要使用工具导入到数据库,供后面创建带有分析数据的地图使用。常用的导入工具比如SqlSpatialTools等。 创建地图可以创建地图的方法和地图种类有很多,这里只介绍其中一种。 1、打开Report Builder3.0。 2、欢迎界面选择Map Wizard 或者菜单Insert->Map->Map Wizard。 3、选择ESRI形状文件。 4、浏览文件夹,打开事先准备的.shp文件: 5、单击‘下一步’。 6、选择地图的显示属性。这一步可以放大地图,然后选择只显示其中一块区域。也可以添加Bing的地图层。 7、设置好选项后,单击‘下一步’。 8、选择地图类型: 基本图:只显示区域的地图,例如,销售区域。选项:通过调色板改变颜色或使用一种颜色。调色板是一组预定义的颜色。当分配完调色板中的所有颜色后,将分配颜色的阴影。 颜色分析图:一个按变化的颜色显示分析数据的地图,例如,按区域列出的销售数据。 起泡图:一个在各区域中心以不同气泡大小显示分析数据的地图,例如,按区域列出的销售数据。选项:根据第二个分析字段改变区域颜色以及指定颜色规则。 9、选择颜色分析图,单击‘下一步’。 10、选择新建数据集,单击‘下一步’。 11、 点击‘新建’,设置数据集连接字符串等属性。 12、单击‘下一步’。…

1

SQL Server Utility

在即将发布的SQL Server 2008 R2中,SQL Server Management Studio提供了一个新的管理组件:SQL Server Utility。该组件能够帮助数据库管理员以统一和集中的方式去管理多个数据库实例:Instance以及数据层应用程序:Data-tier Application。(如果你对数据层应用程序没有太多的了解,请参考这里) 本文将对该组件所针对的应用场景和相关概念做些解释,然后会对该组件的主要功能接界面做进一步的介绍。 先来看一下SQL Server Utility所要解决的用户需求吧: 随着数据库技术的越来越广泛的使用,很多企业里面都部署了一台以上的数据库服务器,并且在每个数据库服务器上都有着一个或若干个的数据库实例以及更多的数据层应用程序;想象一下,如果一个企业有着10个以上的数据库实例及更多的数据库层应用程序,对这些数据库实例与应用程序的监控与管理将是一个十分耗时而又费力的工作。而SQL Server Utility便是针对这一用户需求而开发的,在SQL Server Utility中,用户可以同时监控多个数据库实例及相关应用程序的使用状态,包括CPU、内存、硬盘等关键资源的使用情况。而且这些数据也会被保留一定时间,企业可以基于这些数据做进一步的分析,从而能够做更好的资源规划。 那么SQL Server Utility是如何做到这一点的呢?我们先来解释一下SQL Server Utility的物理架构和相关概念,然后会进一步解释具体的步骤。下图便是SQL Server Utility的物理架构:  在这一架构中,一个或者多个需要被监控的数据库实例将注册到一个统一的控制点上(UCP),而数据库管理员则可以通过其他与此控制点相连的管理终端上对那些需要被监控的数据库实例进行监控和管理。 为此,数据库管理员完成以下几步: 创建一个UCP。 将需要被监控的数据库实例或者相关的数据库应用程序注册到该UCP中。 在完成上述步骤后,数据库管理员只需要通过SQL Server Management Studio连接到创建好的UCP,便可以在dashboard上看到相关数据库实例的资源使用状态了。例图如下: 接下来我们进一步介绍如何创建一个UCP,以及如何注册一个数据库实例,并会对Utility的管理做一个简要的介绍。 创建一个UCP 1. 在创建一个UCP之前,需要注意以下若干项: a. 当前的登录帐号必须有数据库管理员权限;b. 用来创建UCP的数据库实例从来没有被创建过UCP,并且也没有注册到任何其他的UCP中;c. SQL Server Agent服务必须被设置为自动启动,缺省安装的情况下,SQL Server Agent 服务的启动方式是手动;d. SQL Server Agent的启动帐号不能是缺省的build-in的域帐号,譬如:Network Service; 2. 打开SQL Server Management Studio, 在View菜单中选择Utility Explorer; 3. 在Utility Explorer上点击:来启动创建UCP向导;  4. 点击下一步来指定在哪个数据库实例上来创建UCP,你可以在本地数据库实例上创建,也可以创建在一个远程的数据库实例上,但是数据库实例的版本号必须高于10.50。…


2010年:给SQL Server DBA的三个建议

这些天里我真应该写一篇Blog,题目就叫“我在客户见面会上被问过的笨笨问题”。当然,这很危险——某位客户也可以写篇类似的Blog,题目叫“我从Donald Farmer那里得到的愚蠢回答”。不过,有一天某位CIO倒问了我一个非常好的问题: “我们一直在投资培训DBA所需的那些核心技能,但除此之外,如果我们有几个小时或一个礼拜的机会培训他们一些新技能,你建议应该培训哪些方面?”在随后与她的Email交流中,我给出了本文中余下部分的建议。 在新的一年里,你将看到我们发布的SQL Server新版本:SQL Server 2008 R2。我们希望这个版本里能有你们DBA喜欢的东西。和以往一样,可能有些新特性与你们的业务紧密相关,立刻就能用上;有些特性也许慢慢会用上;而有些特性虽然有趣,但你们并不打算使用。所以总的来说,我建议利用这额外的培训时间做如下三件事:增强你已有的技能、扩展新技能、探索孵化一些试验性的项目。 增强已有的技能 我很少遇到悠闲的DBA。我知道,在现在的业务中他们要管理比以往都多的物理服务器。而且,伴随着服务器整合和虚拟化,他们还要管理越来越多的数据库实例,以及更多的数据。所以,如果我只建议一个SQL Server 2008 R2新特性让你们透彻研究的话,那就是新版本中对多服务器和多应用管理的改进。我们组在这方面写了个很不错的白皮书:http://bit.ly/6yVmOL。你将会发现这是个本质的特性,能帮助你在新的一年里节省投资并且管理一个健康的数据库环境。 扩展新技能 当我们2005年第一次在一起谈论SQL Server时,我们评论了DBA职责范围的变化。在SQL Server中,他们不仅要管理数据库,还要管理报表、OLAP服务器和ETL流程。我知道DBA们认为这是一件好事。他们不仅“掌控数据”,而且掌控了所有的外围服务——这些服务整合、增强和解释了数据。在SQL Server中这些是相对容易的事,因为和这些服务相关的开发和管理环境已经高度集成在一起了。但是,我建议DBA们应该钻研另一个新领域:SharePoint。SharePoint是一个新的管理体验,有很多的新东西要学。但是这是很值得的,为什么呢? 这不仅因为SharePoint是我们增长最快的服务器产品,而且因为它是我们协作平台的心脏。因为以上原因,SharePoint正快速地成为对商务智能至关重要的产品。你们当然听说了PowerPivot(www.powerpivot.com上有很多资料,而且还提供自己动手的实验室)。我想在你们组织中,对PowerPivot的采用会是部门级的——我不认为你可以阻止那些市场部的家伙。这样的话,我可以见到你的DBA们会要做很多事,不仅是提供数据,并且要管理基础设施。在PowerPivot for SharePoint方面,已经有一些很不错的Blog了: www.powerpivotgeek.com和www.powerpivottwins.com。如果你想给DBA们一个研究SharePoint的开始,Arpan Shah的Blog上有一些很不错的培训链接:http://bit.ly/5Ez7xT。 探索和孵化 最后一方面,我一直认为做实验是件好事。即使你并不打算去立刻应用一项技术,多学点经常能发现一些有用的案例。而且,当某一天CEO从他最新的商业杂志中抬起头来问“我们是不是该试试这个啊?”,整个团队都已经有所准备了。今年,我保证他会问云计算方面的事。幸运的是,我们第一个重要的云计算关系数据库系统——SQL Azure—— 是很容易做实验的。实际上,开发和管理工具基本上和你现在用的一样。他们团队有个Blog提供了很多信息: http://bit.ly/7zdfAJ。我并不是建议你现在就把所有的应用都移植到云上去(不过你要是打算这样做的话,告诉我一声,我也可以帮助你)。但是,我确信你和你的团队会发现大量的机会去实验那些新应用。我们会很高兴能在这方面能帮助你。 简而言之,以上就是我对2010年额外培训所做的建议。2010年对SQL Server 而言将是一个好年份,很高兴你们能加入其中。 Donald Farmer 丁晓宁 译 原文链接

1