2.6 SSIS Package Designer

来源:互联网 发布:苏34 知乎 编辑:程序博客网 时间:2024/04/27 22:02

2.6  SSIS Package Designer

SSIS Package Designer(程序包设计器)包含了用于创建SSIS程序包的设计窗格。该工具包含了删除数据或创建工作流所需的全部项。Package Designer由四个选项卡组成:Control Flow、Data Flow、Event Handlers和Package Explorer。此外当执行程序包时会出现一个额外的选项卡Progress。在本章中,我们将主要了解Controller Flow选项卡。它和SQL Server 2000 DTS不同的是,后者的控制流和数据流是混合在一起的,而SSIS则通过这些选项卡将控制流和数据流编辑器分隔开。这一可用性特性可以在创建和编辑程序包时提供很好的控制。将控制流和数据流绑定在一起的任务是Data Flow任务,在接下来的两章将深入讨论该任务。

2.6.1  Controller Flow

SSIS中的控制流与SQL Server 2000 DTS很类似,因为它包含了大多数用户在SQL Server 2000中所熟悉的任务。其中包含程序包的工作流部分,包括任务和优先约束。SSSI引入了称为容器的新概念,在第1章中有所概述。在Control Flow选项卡中,用户可以从Toolbox中单击某个任务并拖放到Controller Flow设计器窗格中。一旦创建了某个任务后,可以双击该任务来配置它。在任务配置好之前,可能会在任务上看到一个黄色警告。

在配置好任务之后,可以通过使用优先约束将它链接到其他的任务。在单击任务时,会注意到有一个绿色的箭头从任务向下指,如图2-17所示。

要创建一个On Success优先约束,单击箭头并将它拖动到希望链接到第一个任务的任务上。在图2-18中,可以看到在File System任务和Data Flow任务之间具有On Success优先约束(注意在Data Flow任务上的警告图标,因为该任务尚未配置)。此外还可以看到一个On Failure优先约束,它以一个位于File System任务和Send Mail任务之间的红色箭头来表示。这种类型的控制流会在文件操作失效时发送一条消息给操作员。

        

图  2-17                                                           图  2-18

当单击Data Flow选项卡上的转换时,还将看到一个向下指向的红色箭头,它允许用户快速将错误数据导向到一个分开的输出。不过,在控制流中,将需要使用一种不同的方法。如果希望只有当第一个任务失效时才执行下一个任务,则可以按照以上针对On Success约束的方式来创建一个优先约束,在创建约束后,双击约束的箭头,将出现Precedence Constraint Editor对话框(如图2-19所示)。

在该编辑器中,可以在Value 下拉框中设置要使用的约束类型:Success、Failure或Completion。在SSIS 2005中,当任务具有多个约束时还可以选择加入一个逻辑AND或逻

图  2-19

辑OR。在DTS 2000中,具有多个约束的任务只有当所有的约束都求值为真(true)时才会执行。因此,当某个任务在它之前具有两个或更多的Failure约束时会出现问题,因为在后续的任务执行之前,前面两个或多个任务都必须执行失败。在SSIS 2005的Precedence Constraint Editor中,可以将任务配置为当前面的所有任务都结束时(AND)或者是前面的任何一个任务结束(OR)时才执行。如果某个约束使用逻辑AND,则优先约束线是一条“实线”,如果使用逻辑OR,则优先约束线为一条“虚线”。如果希望当任何一个任务执行失败时都可以及时得到通知,则此时通过使用逻辑OR约束是很有用的。

在Evaluation Operation下拉框中,可以编辑任务的评估方式:

●       Constraint(约束):对前面的任务执行评估其是否执行成功、失败或结束。

●       Expression(表达式):对某个使用表达式编程的自定义条件的成功与否进行评估。

●       Expression and Constraint(表达式和约束):在转到下一个任务之前对表达式和约束都进行评估。

●       Expression or Constraint(表达式或约束):在转到下一个任务之前确定表达式或约束是否成功地符合要求。

如果选择Expression或它的某个变体作为选项,则可以在Expression框中输入表达式,表达式通常用于在继续下一个任务之前对某个变量进行求值。例如,如果希望确保Variable1等于Variable2,则需要在Expression框中使用以下语法:

@Variable1==@Variable2

如果不愿意使用编辑器,也可以在某个约束上单击并使用右边的Properties Window来设置这些属性。

1.任务分组

在SSIS中一个很不错的可用性特性是能够在容器中对任务进行逻辑分组。例如,如果具有一组负责创建并清理中间阶段环境的任务,则可以将它们分组在一起,这样程序包就不会在视觉效果上看起来乱七八糟的。例如,在图2-20中,有两个任务负责创建和清理中间阶段环境。若要将它们组合到一起,单击某个任务,然后在选择第二个任务时按住Ctrl键来选中这两个任务。然后,右击这两个任务并选择Group。

文本框:  
图  2-20

一旦将两个任务分组在一起,将看到任务周围具有一个方框容器。该容器默认称为Group。要重命名该组,只需在容器上双击并在旧名称上输入新名称。此外还可以将组收缩起来,使得程序包看起来不至于太乱。为此,可以单击组中向下指的箭头。在组收缩后,效果看起来类似图2-21所示。通过右击组并选择Ungroup还可以将任务取消分组。

2.注释

作为一个优秀的开发人员,注释是他们从来不希望在程序包中遗漏的重要部分。注释(annotation)是放置在程序包中的说明,用于帮助其他人以及用户自己了解程序包中的情况。要加入注释,可以在希望加入注释的地方右击,然后选择Add Annotation。在程序包中加入注释来说明程序包的标题和版本是个好做法。大多数SSIS开发人员还喜欢在程序包中加入版本历史注释,这样他们可以了解在不同版本之间所进行的修改以及谁做了这些修改。在图2-22中可以看到这两个例子。注意图2-21中的组在此进行了扩展。

        

图  2-21                                                     图  2-22

2.6.2  Connection Manager

用户可能已经注意到在Pachage Designer窗格底部有一个Connection Managers(连接管理器)选项卡。该选项卡包含了一系列由控制流和数据流任务都能使用的数据连接。无论连接是一个FTP地址或是指向某个Analysis Services服务器的连接,都将在其中看到一个引用。这些连接在任何操作中可以作为源或目标来引用,而且可以连接到关系数据库或Analysis Services数据库、平面文件或其他数据源。

当创建一个新程序包时,此时并没有定义连接。可以在Connections区域中右击并选择相应的数据连接类型来创建连接。一旦连接创建好了,可以对它重命名来符合自己的命名约定,或者是更好地描述在连接中所包含的内容。即使已经针对项目定义了一个共享连接,那么除非将它添加到Connection Managers选项卡,否则它在程序包中并无用处。几乎所有使用数据的任务或转换都需要Connection Manager。不过有一些例外,例如Raw File目的地和源(在下一章中将了解到),它们允许用户以内嵌方式来定义连接。图2-23显示了两个连接:一个连接到关系数据库(AdventureWorks),另外一个则连接到一个平面文件(Sample Data)。

图  2-23

2.6.3  变量

文本框:  
图  2-24

变量(variable)是SSIS体系结构中的一个亮点,它们允许在运行时动态控制程序包,就像用户在任何.NET语言中所做的那样。按SQL Server 2000的术语来说,变量最接近于全局变量,但是它们现在极大地得到了改进(用户在第5章和第6章将了解这些)。变量有两种类型:系统变量和用户变量。系统变量(system variable)是建在SSIS中的变量,而用户变量(user variable)则由SSIS开发人员自己创建。变量也可以具有不同的作用域,默认作用域为整个程序包。作用域可以设置为容器、任务或者是程序包中的事件处理程序。变量作用域的增加是SSIS变量和DTS全局变量之间的主要差别。

有一个可选的设计时窗口,Variable Window(变量窗口)能够显示一系列变量,要访问Variable Window,可以在设计窗格中右击,并选择Variables。然后Variable Window(如图2-24所示)将在Toolbox的位置出现,可以通过窗口下部的对应选项卡在这两个窗口之间切换。在默认情况下将只能看到用户变量,要查看系统变量,则可以在窗口顶部选择Show System Variable图标。要增加一个新变量,可以在Variable Window中单击Add Variable图标并输入名称。

用户一般习惯在程序包中使用系统变量来用于审核或错误处理。表2-1中列出了一些用户可能愿意在程序包中作为审核用途而使用的一些系统变量。

表2-1

变量名

数据类型

说明

CreationDate

DateTime

创建程序包的日期

InteractiveMode

Boolean

表明执行程序包的方式。如果程序包是从BIDS执行,则该变量设置为true,如果程序包是作为一个作业而执行,则该变量设置为false

MachineName

String

运行程序包的计算机

PackageID

String

针对程序包的唯一标识符(GUID)

PackageName

String

程序包的名称

StartTime

DateTime

启动程序包的时间

UserName

String

启动程序包的用户

VersionBuild

Int32

程序包的版本

在接下来的各章将详细讨论变量。要了解系统变量的完整列表,可以参考本书在线版(Book Online)的“System Variable”部分。

2.6.4  数据流

当在控制流中创建一个Data Flow(数据流)任务时,会在Data Flow选项卡中创建一个后续的数据流。可以扩展该数据流,方法是双击任务,或者进入到Data Flow选项卡,然后从顶部的下拉框(如图2-25所示)中选择相应的Data Flow任务。数据流的关键组成

图  2-25

部分是源、目的地、转换和路径。在Control Flow选项卡中表示优先约束的绿色和红色箭头在Data Flow选项卡中现在被称为路径(path)。

当第一次开始定义数据流时,将需要创建一个数据所来自的源以及数据要去往的目的地。而转换则负责在数据写入到目的地之前对它们进行修改。随着数据在由逐个转换组成的路径之间流动,数据本身也根据用户所选择的转换而发生变化。在图2-25中,连接“修复错误记录”转换和“添加审核信息”转换的红色箭头负责将错误记录写入到某个目的地,例如某个错误队列,或者在错误发生时将数据沿不同的路径移动。在第4章将更详细地介绍这整个过程。

2.6.5  Event Handler

Event Handler(事件处理程序)选项卡允许创建工作流来处理事件中的错误或变化。如果希望处理SQL Server 2000中的错误,必须创建一个On Failure优先约束,这会导致错误处理任务脱离用户监视范围。而在SQL Server 2005 SSIS中,可以跨整个程序包来实现这一点。例如,如果希望跟踪错误并且在错误发生时给自己发电子邮件来进行通告,则可以创建一个OnError事件处理程序,并配置它发送一条消息到操作员,如图2-26所示。

图  2-26

可以在Executable下拉框中配置事件处理程序作用域。可执行文件可以是程序包、Foreach循环、For循环、Sequence或任务主机容器。在Event Handler框中,可以指定希望监视的事件。表2-2列出了可以选择的事件。

表2-2

事件

事件何时发生

OnError

当错误发生时

OnExecStatusChanged

当某个可执行文件的状态发生变化时

OnInformation

当在某个可执行文件的验证和执行期间发生某个报告性事件时

OnPostExecute

当某个可执行文件执行结束时

OnPostValidate

当某个可执行文件的验证过程结束时

续表   

事件

事件何时发生

OnPreExecute

在某个可执行文件运行之前

OnPreValidate

在某个可执行文件的验证过程开始之前

OnProgess

当在某个可执行文件上启动一个可度量的进度时

OnQueryCancel

当某个查询被指定取消时

OnTaskFailed

当任务失败时

OnVariableValueChanged

当某个变量在运行时发生变化时

OnWarning

当在程序包中产生一个警告时

在开发能够自行修复问题的“自愈”程序包时,事件处理程序非常重要。在第13章中将了解更多有关事件处理程序的内容。

文本框:  
图  2-27

2.6.6  Package Explorer

在SSIS Package Designer中的最后一个选项卡是SSIS Package Explorer选项卡。该选项卡将所有的设计窗格合并到单个视图。它类似于SQL Server 2000 DTS中的分离编辑对话框。Package Explorer选项卡(如图2-27所示)列出了程序包中的所有任务、连接、容器、事件处理程序、变量以及转换,而且可以在此双击任何项来配置它。此外还可以在选择自己希望修改的项之后,在右边的Properties Window中修改选定项的属性。

2.6.7  执行程序包

当希望执行程序包时,可以单击工具栏上的Play图标,按下F5,或者从Debug菜单选择Start。这将使设计环境进入执行模式,打开一些新窗口,启用一些新菜单和工具栏项,并开始执行程序包。当程序包结束运行时,BIDS不会立即回到设计模式,而是停留在执行模式来使用户检查运行时变量,或者查看执行结果。这也意味着此时不能修改程序包中的对象,但是可以修改变量和对象的读取/写入属性。用户可能在执行.NET项目时就已经熟悉了这一概念了。

要返回到设计模式,必须单击调试工具栏上的Stop图标,按下Shift+F5,或者选择Debug→Stop Debugging。

原创粉丝点击