1.2 体系结构

1.2  体系结构

SQL Server 2005真正将SSIS打造成为数据提取、转换和加载(extraction、transformation and loading,ETL)领域的主角。它在SQL Server 2000 DTS的基础上完全重写了代码。而SSIS尤其吸引人的地方是它可以在购买SQL Server的同时免费获取。而其他的ETL工具则需要用户花费上百或上千美元来购买。SSIS的体系结构同时也得到了很大的扩展,如   图1-3所示。SSIS的体系结构由以下四个主要的组成部分构成:

●       SSIS服务

●       SSIS运行时引擎和运行时可执行文件

●       SSIS数据流引擎和数据流组件

●       SSIS客户端

SSIS服务负责处理SSIS的运行。它是一种Windows服务,在安装SQL Server 2005的SSIS组件时随之安装SSIS服务,它负责跟踪程序包(程序包是工作条目的集合)的执行并辅助程序包的存储。不要着急,稍后将了解更多有关程序包的知识。SSIS服务默认是关闭的,而且被设置为禁用。只有当程序包第一次执行时SSIS服务才打开。你并不需要SSIS服务来运行SSIS程序包,但是如果该服务停止,则所有当前运行的SSIS程序包都将逐个停止运行。

图  1-3

SSIS运行时引擎和它的补充程序负责实际运行SSIS程序包。该引擎负责保存程序包的布局并管理日志记录、调试、配置、连接和事务处理。另外,当程序包出现事件时该引擎还负责处理事件。运行时可执行文件为程序包提供了以下功能,在本章稍后将了解有关这些功能的更多细节。

●       容器(Container):为程序包提供结构和作用域

●       任务(Task):为程序包提供功能

●       事件处理程序(Event Handler):对程序包中产生的事件进行响应

●       优先约束(Precedence Constraint):提供程序包中各种条目之间的顺序关系

在第3章将花费更多的时间来介绍这些体系结构部分,不过重要的内容将在下面介绍。

1.2.1  程序包

SSIS和DTS的核心组件是程序包(package)这个概念。程序包相当于Windows中的一个可执行程序。本质上来说,程序包是一组按照次序来执行的任务集。优先约束则负责管理这些任务的执行顺序。程序包可以保存在SQL Server上,实际上是保存在msdb数据库中。程序包也可以保存为.DTSX文件,这是一种XML结构的文件,非常类似于针对报表服务(Reporting Service)的.RDL文件。当然,关于程序包的介绍远不止这些,不过在本章后面你将了解到程序包的其他组件,例如事件处理程序。

1.2.2  任务

任务(task)可以描述为某个单一的工作单元。它们为程序包提供功能,非常类似于编程语言中的方法所扮演的角色。以下是一些对你可用的任务:

●       ActiveX 脚本任务(ActiveX Script Task):负责在SSIS程序包中执行ActiveX脚本。该任务主要面向旧式的DTS程序包。

●       分析服务执行DDL任务(Analysis Services Execute DDL Task):在分析服务中执行一个DDL任务。例如,该任务可以创建、丢弃或修改一个多维数据集。

●       分析服务处理任务(Analysis Services Processing Task):该任务负责处理SQL Server分析服务多维数据集、维度或挖掘模型。

●       批量插入任务(Bulk Insert Task):通过使用BULK INSERT SQL命令来将数据加载到表中。

●       数据流任务(Data Flow Task):这个非常专业的任务负责将数据加载并转换到一个OLE DB目的地。

●       数据挖掘查询任务(Data Mining Query Task):允许根据分析服务数据挖掘模型来运行预测性查询。

●       执行DTS 2000程序包任务(Execute DTS 2000 Package Task):将旧式的SQL Server 2000 DTS程序包提供给SSIS 2005程序包。

●       执行程序包任务(Execute Package Task):允许在程序包内执行某个程序包,使SSIS程序包模块化。

●       执行进程任务(Execute Process Task):执行程序包之外的某个程序,例如将提取文件分成多个文件然后再逐个处理这些文件的程序。

●       执行SQL任务(Execute SQL Task):执行某个SQL语句或存储过程。

●       文件系统任务(File System Task):该任务可以处理目录操作,例如创建、重命名或删除某个目录。此外,也可以管理诸如移动、复制或删除文件之类的文件操作。

●       FTP任务(FTP task):从某个FTP站点发送或接收任务。

●       消息队列任务(Message Queue Task):发送或接收来自Microsoft消息队列(Microsoft Message Queue,MSMQ)的消息。

●       脚本任务(Script Task):比ActiveX脚本任务稍微高级一点。该任务允许在Visual Studio编程环境中执行更密集的脚本。

●       发送邮件任务(Send Mail Task):通过SMTP发送邮件消息。

●       Web服务任务(Web Service Task):执行Web服务上的某个方法。

●       WMI数据读取器任务(WMI Data Reader Task):该任务可以针对Windows 管理规范(Management Instrumentation)来运行WQL查询。这允许阅读事件日志,获取已安装的应用程序列表,或者是确定已安装的硬件,等等。

●       WMI事件观察器任务(WMI Event Watcher Task):该任务使得SSIS能够等待并响应操作系统中发生的WMI事件。

●       XML任务(XML Task):解析或处理XML文件,它可以合并、分离或重新格式化某个XML文件。

文本框:  
图  1-4

此外还有一批任务可以用于维护SQL Server环境。这些任务可以执行诸如转移SQL Server数据库、备份数据库或压缩数据库等任务。在第3章中将详细介绍这些任务,而且这些任务将在本书中的许多例子中运用。任务是可以扩展的,而且可以使用诸如C#之类的语言创建自己的任务,以便在自己的环境中完成特定的功能,例如从大型主机中读取数据。

1.2.3  数据源元素

SSIS的主要用途仍然是提取数据、转换数据并将它们写入到目的地。数据源是可以用于源或目的地来转换数据的连接。数据源可以是几乎任何一种OLE-DB兼容的数据源,例如SQL Server、Oracle、DB2或者甚至是非传统的数据源,例如分析服务(Analysis Service)和Outlook。数据源可以位于单个SSIS程序包,也可以跨BIDS中的多个程序包来共享。

连接在连接管理器(Connection Manager)中定义。根据所配置的连接类型不同,Connection Manager对话框也会有所差异。图1-4表明了一个到SQL Server的典型连接。

可以完全以脱机方式来配置连接,SSIS程序包只有当在程序包中开始实例化连接时才会使用到连接。这样带来的好处是:可以在任何地点,甚至在机场候机楼开发程序包,然后在需要时再连接。

1.2.4  数据源视图

数据源视图(Data Source View,DSV)是SQL Server 2005中的新概念。该特性允许创建业务数据的逻辑视图。这些业务数据可以是跨项目共享,并且可以在分析服务(Analysis Services)和报表创建器(Report Builder)中使用的表、视图、存储过程和查询。

在像Siebel或SAP等ERP系统中流行的大型复杂数据模型中,这种数据源视图尤其有用。这些ERP系统具有像ER328F2那样的列名来使数据模型具有灵活性以便支持任何环境。这种复杂模型命名约定导致在公司中出现一个新的职位:专职负责读取模型来负责报告。不过,业务用户则不需要知道类似这样的列的具体含义,因此可以使用DSV将这种列映射到像LastPaymentDate之类的实体。DSV还可以映射表(这些表可能在实际的物理模型中并不存在)之间的关系。

DSV还可以将大型的数据模型划分为以字节为大小的数据块。例如,一个Siebel ERP系统可以被划分到称为Accounting(会计)、Human Resource(人力资源)和Inventory(库存)的DSV中。图1-5显示的是一个称为Human Resource的DSV。从图中可以看到,      在Employee实体中的其中一列被指定了一个比较友好的名称,称为Birth Date(原先名为

图  1-5

BirthDate,中间没有空格)。尽管这个例子比较简单,但对于先前提到的ER328F2列非常有用。

DSV作为连接管理器而部署。在使用数据源视图时要记住关键的几点。和数据源一样,DSV允许一次性定义连接逻辑,然后在SSIS程序包中重用该连接逻辑。和连接不同的是,DSV是与源连接断开的,而且在源结构变化时不会随之更新。例如,若将某个连接中的Employee表修改为Resource,则DSV不会获取所进行的修改。这种缓存形式对于开发过程是一个非常好的优点。DSV允许利用开发过程中的元数据,即使处于连接断开的脱机状态也是如此。由于DSV更像是实际数据源的一个子集,因此SSIS连接对话框加载起来将会更快一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值