技术开发 频道

SQL Server 2005:面向信息管理的全新平台

【IT168 技术文档】

    面向各类角色的信息平台

    笔者一直认为自SQL Server 7.0以后称SQL Server应该更多的被称为是数据平台而不是数据库产品,但是到了SQL Server 2005则应该提升为信息管理平台。打开SQL Server 2005 Book Online不难发现,与以往版本最大的区别是微软把读者按照岗位类别进行了划分,同时向系统分析员、架构师、开发人员、信息管理人员和知识工作者汇总了不同的帮助内容,这种划分本身说明SQL Server更强调了对整个信息系统生命周期的支持。以往的文档主要关注的是实施和运维阶段,对于最终用户的介绍非常有限,现在则将SQL Server从需求、架构、设计、实施、运维这条主线贯穿,以一个全生命期的完善平台的姿态呈现在信息系统建设、维护、使用的各类人员面前。

    功能组成上的主要增强

    2005版本的SQL Server在功能组成上被划分为如下几个部分:

(1)数据库引擎;
(2)报表服务引擎;
(3)数据分析服务引擎;
(4)集成服务引擎;
(5)通知服务引擎;
(6)全文检索;
(7)复制;
(8)服务Broker; 

    但是,它们之间的关系并不是平行的,而是具有嵌套关系的,如下图所示:

 


    SQL Server体系:整个体系以更主动地方式向用户提供各种信息服务,无论是来自数据引擎的关系数据、XML数据,还是来自分析服务的多维数据,或者是经过集成服务从其他同构或异构平台获得的数据,都可以通过报表服务、通知服务的方式按照用户既定的方式呈递到用户的手中。这个过程可以是用户主动查询发起的,也可以用户根据自己的预定要求按需获得的。

    集成服务:居中的是集成服务,这也是我把SQL Server 2005称之为“信息管理平台”的最主要理由。放眼现有的各类企业应用环境,各类信息系统林林总总,数据源和运行平台也呈百花齐放的态势,各类信息应用出于随需而动要求实现层次也越来越多,如何把纷繁的企业信息环境化简为一个可控的环境,集成服务就是最好的答案。逻辑上,笔者常常把集成服务特化为一个数据HUB或者一个统一数据总线,下面是对企业主要信息系统调整的一个总体架构设计。

    (1)应用层次:采用企业数据总线方式抽象集成服务 。这样的好处是把以往越来越不可控的企业应用环境,特化为一个个单一入口、单一出口的适配器,所有的交换工作集中在集成服务部分通过管理员的配置完成,大大减少了管理的复杂性。

    (2)具体数据交换层次:采用数据HUB方式抽象集成服务。集成服务配合服务Broker可以同时支持单票数据、批量数据、预定数据的分布式交易性交换,因此可以大大减少具体某个应用独立完成这类功能要求,保证跨应用的不同层次间数据交换可以在一个有质量保证的统一容器中完成。

    报表服务:新一版的报表服务在扩展性、安全性、部署等方面均有了非常大的改进,在继承了SQL Server 2000 Reporting Service的众多优势外,新版的报表服务在很多方面都明显优于前辈。
 
    (1)即使是信息工作者(在准备好的Report Model后),也可以随机定义自己需要的报表,还原这个工具服务的主动权到业务用户。 

    (2)对于开发人员最好的改进莫过于支持多参数的报表,这对于人员和业务流程相对较为复杂的企业而言,通过多参数可以按照更为贴近业务职责,同时按照所在区域、负责业务分类、业务访问规则把最合适的报表视图呈现给每个具体用户。 

    (3)根据表达式动态选择数据源的功能,大大方便了在分布式数据环境下察看报表的功能。 

    数据分析服务:数据分析服务对商业智能的支持上也有了很大的提升,不仅仅体现在发掘算法数量上,而且最主要的相对开发人员而言,它把分析服务从一个相对封闭的系统,变成了一个与数据库一样,处处可以开发的开放环境。XMLA(XML for Analysis)、ASSL(Analysis Service Script Language)、AMO(Analysis Management Object)和ADOMD.NET构成了一个完整的开发环境,包括分析服务本身、分析服务元数据、立方体中的数据、各个分析对象都成了开发人员手边的对象。
 

开发技术 主要用途
.Net Framework 作为整个数据分析服务的支撑,可以进行整个分析平台的开发。
Persisted Calculations 面向计算member和计算Cell,可以作为每个Cube独立的Cache内部进行计算。
Stored Procedures 参考数据引擎的概念提供的新特性。
可以把一些面向立方体和数据库计算通过保存为可编程的单元(存储过程),来提高数据分析服务可重用的功能集合。
XML for Analysis 借助统一数据模型(UDM)的支持,通过专门的Provider获得对数据分析服务的XML访问方式。
Analysis Services Scripting Language 用于管理数据分析服务和SQL Server Management Studio的专用脚本语言。
Analysis Management Objects 类似SMO的概念,主要进行数据分析服务Schema级操作的对象模型,可以完成各种分析对象、甚至数据分析服务本身的对象化访问。
ADOMD.NET 主要提供了对于多维数据内容的访问,类比ADO.Net对于数据引擎的访问支持。






















  表1:数据分析服务的主要开发技术



    从技术结构上不难看出,在SQL Server 2005这个版本上,微软才真正地完善了分析服务的开发模型,提供了与数据服务平行的开发技术,如果究其根源,笔者认为技术上应该是整个SQL Server 2005运行于.Net Framework CLR这个统一对象平台的关系,业务上则是BI市场巨大经济潜力的关系:

    (1)通过XMLA,可以把相同Schema特性的不同的数据源经过UDM的抽象,变成一个数据源无关的统一XML视图,这不仅为企业内部异构分析系统互连提供可能,更说明微软借助.Net Framework 对XML的Native支持,已经把SQL Server数据分析服务也改造成Native XML的。

    (2)ADOMD.Net的出现则是对于以往ADOMD面向新的分析对象的重新封装,以后开发人员可以在纯.Net环境下,通过SQL Server Native Client的方式高效地访问立方体的数据内容,而不用再通过互操作进行类似的工作,尤其对于Cell的密集访问时,效率将得到更好的提升。

    以往笔者的小组为了完成.Net对于SQL Server 2000分析服务的访问,为了避免这种过渡频繁的互操作带来的性能消耗,使用VC.Net重写了一个Provider,目的是在访问ADOMD的时候,可以把整个DataTable的填充工作在互操作层一次性批量完成后,再一次性地向上层应用反馈填充好的DataTable,而不是在上层生成一个DataTable,然后通过m*n次互操作来填充DataTable。

    AMO的出现则是以一个简单的模型向开发人员提供访问机制,类似的工作在以往只能通过WMI或者微软没有公开的一些COM对象访问数据分析服务。 

    通知服务:较之上一版本的 SQL Server 2000,SQL Server 2005的通知服务让笔者认为从操作性角度讲可以用“脱胎换骨”来形容。在上一版本的通知服务的很多功能,笔者更乐于用MOM 嵌WMI脚本或者用SQL Job来完成,这个版本中通知服务的配置也全部统一到了SQL Server Management Studio,才真正感觉算一个完善的产品。本次版本主要在如下方面做了增强:

    (1)基于条件的通知预定(不过笔者建议您在使用该特性的时候要平衡效率因素)。 

    (2)可以把整个消息服务引擎用您自己的宿主应用或者进程来执行。 

    (3)开始提供对数据分析服务的事件Provider。 

    (4)虽然在上一版本中通知服务已经提供对Windows Clustering的支持,但是该版本增强了自动监测的功能,通知服务可以通过检查每个节点是否安装了Cluster并且是否已经开始运行,当发现所有的节点成功enlist在Cluster中后,就用Cluster的默认名称代替Local Computer名称。 

    当然,由于通知服务的功能相对而言还是比较有限的,笔者还是建议如果你的企业在使用MOM或者BMC Patrol之类的企业级统一监控平台的话,那么您没有必要使用通知服务。如果没有的话,通过管理和配置通知服务,结合基于角色的运维人员安排,将为您的企业提供一个不错的低成本SQL Server监控系统。 

    全文检索: 新版本的Ful-Text总算为许多开发人员和管理人员提供了所期待的很多功能: 

    (1)终于可以用熟悉的DDL方式建立全文检索分类和索引,而不是类似上一版本必须通过存储过程完成这些工作。
 
    (2)更有利的是,可以在链接服务器上执行Full-Text查询。 

    (3)对于检索的列也从以往“单列/所有列”的方式下,变成了可以独立定制每个表中一组列。 

    (4)以前总是困扰管理员的恢复后重建Full-Text分类的操作,终于可以自动完成了。

    (5)对于新加入的XML数据,可以用Full-Text来查询。 

    复制:不谈安全性和管理操作上的增强,笔者认为SQL Server 2005对于复制的增强主要体现在面向企业高可用的环境上,除了以往数据内容的复制外,新版本还可以根据Publisher内容的Schema变化复制Schema的修改。为了进一步提高效率,在进行并行复制后进行Merge的时候,可以过滤选项进行预处理,对于BLOB对象的复制也在性能方面有了较大的提高。

0
相关文章