首页 > 代码库 > 《BI那点儿事》SQL Server 2008体系架构

《BI那点儿事》SQL Server 2008体系架构

Microsoft SQL Server是一个提供了联机事务处理、数据仓库、电子商务应用的数据库和数据分析的平台。
体系架构是描述系统组成要素和要素之间关系的方式。Microsoft SQL Server系统的体系结构是对Microsoft SQL Server的主要组成部分和这些组成部分之间关系的描述。
Microsoft SQL Server 2008系统由4个主要部分组成,这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务,这些服务之间相互存在和相互应用,它们的关系示意图如图所示。
SQL Server 2008体系架构示意图

数据库引擎
数据库引擎(SQL Server Database Engine,SSDE)是Microsoft SQL Server 2008统的核心服务,负责完成业务数据的存储、处理、查询和安全管理。
例如,创建数据库、创建表、执行各种数据查询、访问数据库等操作,都是由数据库引擎完成的。
在大多数情况下,使用数据库系统实际上就是使用数据库引擎。
例如,在某个使用Microsoft SQL Server 2008系统作为后台数据库的航空公司机票销售信息系统中, Microsoft SQL Server 2008系统的数据库引擎服务负责完成机票销售数据的添加、更新、删除、查询及安全控制等操作。

功能组件
数据库引擎本身也是一个复杂的系统,它包括了许多功能组件,例如Service Broker、复制、全文搜索、通知服务等。
Service Broker提供了异步通信机制,可以用于存储、传递消息。
复制是指在不同的数据库之间对数据和数据库对象进行复制和分发,保证数据库之间同步和数据一致性的技术。复制经常用于物理位置不同的服务器之间的数据分发,它可以通过局域网、广域网、拨号连接、无线连接和 Internet 分发到不同位置的远程或移动用户。
全文搜索提供了基于关键字的企业级的搜索功能。
通知服务提供了基于通知的开发和部署平台。

分析服务

分析服务(SQL Server Analysis Services,SSAS)提供了OLAP和数据挖掘功能,可以支持用户建立数据仓库。
相对OLAP来说,OLTP是由数据库引擎负责完成的。使用SSAS服务,可以设计、创建和管理包含了来自于其他数据源数据的多维结构,通过对多维数据进行多个角度的分析,可以支持管理人员对业务数据的更全面的理解。
另外,通过使用SSAS服务,用户可以完成数据挖掘模型的构造和应用,实现知识发现、表示和管理。
例如,在航空公司的机票销售信息系统中,可以使用Microsoft SQL Server 2008系统提供的SSAS服务完成对客户的数据挖掘分析,可以发现更多有价值的信息和知识,从而为减少客户流失、提高客户管理水平提供有效的支持。
分析服务的主要组件是Business Intelligence Development Studio(简称为BIDS)。BIDS是一个管理工具,为集成服务、报表服务、分析服务和数据挖掘等提供了一个集成平台。基于Visual Studio 2008的BIDS支持用户开发商业智能应用程序,用户可以在该平台中进行编写代码、调试及版本控制等工作。

分析服务概述

SQL Server 2008中包含了一个SQL Server 2008分析服务的单独程序,可以用来对SQL Server和其他OLE DB数据库执行OLAP分析。

 

创建分析服务项目

使用分析服务,首先就必须创建分析服务项目。一个分析服务项目包含数据源、数据源视图、多维数据集、维度、挖掘结构、角色、程序集和杂项8个子文件夹,每个文件夹中存放相应的对象。

 

创建多维数据集

创建多维数据集的方法有两种:第一种方法是先定义独立于任何多维数据集的维度,然后再定义基于这些维度的一个多维数据集;第二种方法是使用“多维数据集向导”来创建多维数据集和相关维度。

 

处理和浏览多维数据集

处理多维数据集将使分析服务预先计算包含多维数据集中数据的聚合。

添加筛选条件

在浏览多维数据集时,可以为显示的数据添加一些筛选条件,更精确地去分析数据。

 

使用数据挖掘向导

使用分析服务提供的数据挖掘向导,对当前多维数据集进行挖掘分析。

 

报表服务

报表服务(SQL Server Reporting Services,SSRS)为用户提供了支持Web的企业级的报表功能。
通过使用Microsoft SQL Server 2008系统提供的SSRS服务,用户可以方便地定义和发布满足自己需求的报表。
无论是报表的布局格式,还是报表的数据源,用户都可以轻松地实现。
这种服务极大地便利了企业的管理工作,满足了管理人员高效、规范的管理需求。
例如,在航空公司的机票销售信息系统中,使用Microsoft SQL Server 2008系统提供的SSRS服务可以方便地生成Word、PDF、Excel等格式的报表。

报表服务概述

SQL Server 2008报表服务(Reporting Services,SSRS)提供了各种现成可用的工具和服务,帮助数据库管理员创建、部署和管理单位的报表,并提供了能够扩展和自定义报表功能的编程功能。

使用报表向导设计报表

使用报表向导创建报表是比较常用且简单的方法,其实现过程在Microsoft SQL Server 2008的工具Business Intelligence Development Studio(BIDS)中完成。

使用报表设计器

虽然使用报表向导可以快速地创建报表,满足大多数用户的需求,但对于创建复杂或者自由格式的报表还是具有一定的局限性。在这种情况下,就可以使用报表设计器来自主设计报表。

设计参数化报表

创建报表之后,为了进一步精确报表中显示的数据,可以通过为报表添加参数的方式控制报表中包含的数据信息。在SQL Server 2008中可以利用输入值来维护报表,则称这种报表为参数化的报表。

配置报表服务器

对当前报表服务器的内容进行配置。

发布报表

设计好一个报表之后,需要将该报表发布到已经设置好的报表服务器上,供其他人查看。

管理报表

在报表管理器中,管理员可以对已经发布的报表进行管理,比如创建文件夹、删除文件和转移文件等操作。

集成服务
集成服务(SQL Server Integration Services,SSIS)是一个数据集成平台,可以完成有关数据的提取、转换、加载等。
例如,对于分析服务来说,数据库引擎是一个重要的数据源,如何将数据源中的数据经过适当地处理加载到分析服务中以便进行各种分析处理,这正是SSIS服务所要解决的问题。
重要的是,SSIS服务可以高效地处理各种各样的数据源,除了Microsoft SQL Server数据之外,还可以处理Oracle、Excel、XML文档、文本文件等数据源中的数据。

SSIS是Microsoft SQL Server 2005/8 Integration Services的简称,是生成高性能数据集成解决方案.
包括数据的抽取,转换,加载的一个平台,简称ETL。这个平台主要是用于商业智能中,来抽取数据适合的数据到数据仓库的一个工具,当然也可以用到一般的系统中,做数据的导入,导出等。
俗话说:“十年磨一剑”,Microsoft 通过5年时间的精心打造,于2005年浓重推出Sql Server 2005,这是自SQL Server 2000 以后的又一旷世之作。这套企业级的数据库解决方案,主要包含了以下几个方面:数据库引擎服务、数据挖掘、Analysis Services、Integration Services、Reporting Services 这几个方面,其中Integration Services (即SSIS),就是他们之间的中转站、纽带,将各种源头的数据,经ETL到数据仓库,建立多维数据集,然后进行分析、挖掘并将结果通过Reporting Services 送达给企业各级用户,为企业的规划决策、监督执行保驾护航。

现在很多人都把SSIS 说成是一个ETL (Extract-Transform-Load)工具,我个人觉得不太准确,或许是大家基本上都把他做为ETL 使用,其实SSIS已经超越了ETL的功能,ETL 仅是其中之一,它在其它方面也有非常突出的表现:

在数据库维护方面

数据库备份;

统计信息更新;

数据库完整性检查;

索引重建

SSIS 包执行;

SSAS 任务处理。

业务处理

执行SQL 任务。

Web Service 任务。

操作系统维护

WMI事件观察器任务

文件系统任务。

其它

执行SQL 任务

执行进程任务

ActiveX 脚本任务

脚本任务(VB/C#).

执行Web Service 服务

 

尤其是上面的第四点,可以执行SQL 任务,可以执行Web Service 服务,可以执行系统进程,可以执行(VB/C#)脚本任务,这给了我们多大想象的空间,还有什么例外的?强啊。不得不佩服务一下。

  SSIS(SQLServer集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩、转换和加载)包。SSIS代替了SQL2000的DTS。整合服务功能既包含了实现简单的导入导出包所必需的Wizard导向插件、工具以及任务,也有非常复杂的数据清理功能。SQLServer2008SSIS的功能有很大的改进和增强,比如它的执行程序能够更好地并行执行。在SSIS2005,数据管道不能跨越两个处理器。而SSIS2008能够在多处理器机器上跨越两个处理器。而且它在处理大件包上面的性能得到了提高。SSIS引擎更加稳定,锁死率更低。
Lookup功能也得到了改进。Lookup是SSIS一个常用的获取相关信息的功能。比如从CustomerID查找CustomerName,获取数据集。Lookup在 SSIS中很常见,而且可以处理上百万行的数据集,因此性能可能很差。SQL2008对Lookup的性能作出很大的改进,而且能够处理不同的数据源, 包括ADO.NET,XML,OLEDB和其他SSIS压缩包。

SSIS 应用场景
SSIS 应用主要是在一些商业智能的大型数据系统中,对数据的抽取,清洗等,以获得高质量的数据,是企业在做分析的时候分析出准确的结果。同时SSIS也会应用于日常的数据管理中,比如一些DBA对数据库的管理,对数据库Job的管理,对数据库的迁移,合并等工作。

SSIS 的体系结构
主要由四部分组成:Integration Services 服务、Integration Services 对象模型、Integration Services 运行时和运行时可执行文件以及封装数据流引擎和数据流组件的数据流任务(如图):

 

《BI那点儿事》SQL Server 2008体系架构