您的位置:首页 > 数据库

SQL Server 2005 学习笔记--SSIS篇(2)

2007-04-08 00:37 281 查看
二、创建与设计包



什么是包?


包是一个经过组织的构件集合,是SSIS传输操作的执行单元,是SSIS正常运转和开发人员操纵数据的要素。
包必须包含数据的源和目的地,可包含任何转换,还可包含任何构件(比如任务)来定义工作流(即由SSIS执行的操作序列)。



如何创建包?


创建包之前必须先有存放包的项目。项目是包含相关文件的容器,包在项目内开发。


新项目由4个虚拟文件夹组成,每个文件夹有不同的用途:

数据源 包含可以由多个包引用的项目级数据源

数据源视图 它们基于数据源并可以由源、转换和目的地引用

SSIS包 存放SSIS包

杂项 杂物袋,存放除了以上文件之外的文件



无论何时创建SSIS新项目,BIDS都会创建以下几种文件:

*.dtproj文件 包含关于项目配置、数据源和包的信息

*.dtproj.user 文件 包含用户用来处理项目的首选参数

*.database 文件 包含BIDS打开Integration Services项目所需要的信息

创建包的各种方法:

使用导入和导出向导创建包

使用SSIS包设计器创建包

以上二者相结合来创建包


什么是容器?

容器是SSIS新添加的一个结构,容器包含以下要素:

可执行体:可执行体是容器级任务或容器内的任何容器。单个可执行体可以是SSIS所提供的任务和容器之一,也可以是个自定义的任务。

优先约束权:优先约束权将同一个父容器内的容器与任务链接成一个有序的控制流。可以比作SSIS的交通警察。

事件处理程序:容器级事件处理程序响应由容器或容器所包含的对象所引起的事件。

变量:容器中使用的变量包括Integration services所提供的容器级系统变量和用户自定义变量

容器的主要作用:

重复任务

将需要彼此一同成功或失败的任务和容器分成组。

Integration Services提供4种容器用于创建包:

Foreach循环容器 通过使用一个枚举器重复运行一个控制流。

For循环容器 通过测试一个条件重复允许一个控制流。

序列容器 将任务和容器分组为子控制流。

任务主机容器 封装单个任务,所以没有使用优先约束权。

提示

:“工具箱”窗口的“控制流项”列表显示了前3种控制流容器,另外还显示了一个控制流任务列表(共有25个不同的任务,可参考上一小节的图片)。使用包设计器可以给包添加容器或任务。
“工具箱”窗口的“数据流转换”列表显示了28个内部标准数据转换,用户也可以创建自定义数据转换。在“数据流任务”(上述25个任务之一)中,可以插入各种数据转换。



如何保存包?

在BIDS中,用SSIS包设计器创建的包将作为XML文件保存在文件系统中,并使用.dtsx作为文件扩展名。作为选择,也可将SSIS包的副本保存在SQL Server 2005内部的msdb数据库中,或者保存到包存储器中。包存储器指的是文件系统中有Integration Services管理的文件夹。
在"文件"菜单上选择“保存****”会将SSIS包保存到文件系统中。
在Management Studio中,展开“已存储的包”文件夹,选择“MSDB”文件夹,右击,选择“导入包”菜单,可以将包从文件系统中导入到数据库中。




如何运行包?

包可以立即运行,也可安排在某个指定的时间运行。
运行SSIS包的方法:

从SSIS设计器中运行包 从解决方案窗口中右击某个包,选择“执行包”菜单命令。

使用DTEXEC实用程序

该命令行实用程序不仅可以运行包,而且可以配置包。它可以访问所有包配置和运行特性,如连接、属性、变量、日志记录和进度指示器。还可以从3个数据源中装载包(数据库,SSIS服务和文件系统)



使用Management Studio运行包

在导入包之后,展开保存包的文件夹,右击,选择“执行包”菜单,“执行包实用程序”会被启动,该工具可以用来配置许多设置,界面如下:



作为经过计划的“SQL Server代理”作业运行

在Management studio中添加一个新的作用,在该作业中添加一个运行包的步骤。



关于其它设计操作?


日志记录

SSIS可以对包或包中的任一任务或容器启用日志功能。它支持多种日志提供者,还允许用户创建自定义的日志提供者。
在BIDS中,选择“SSIS”->“日志”菜单项,会弹出“配置日志对话框”。



对不同类型的日志提供者(name列)的几点说明:

Windows事件日志 不需要连接管理器(见configuration列),SSIS将自动创建该日志。

SQL Server日志 使用一个OLEDB连接管理器

SQL Profiler日志 使用一个文本连接管理器

在“details”选项卡上配置日志需要记录的事件,用户可以选择“save”该配置文件,也可以“load”以前保存过的日志配置文件。

校验点

将包配置成使用校验点可以促使包将自身运行的信息写入到校验点文件中。当失败的包重新运行时,校验点文件被检查,包从故障发生的地方重新启动,而不是重新运行整个包。如果包运行成功,则校验点文件被删除,在包下一次运行时,校验点文件被重建。

启用校验点功能:

1、在包设计器中打开某个包,单击“控制流”选项卡,在“属性”窗口中会出现“校验点”属性组。将“SaveCheckPoint”属性设置为true。在“CheckpointFileName”属性中,填入校验点文件名。在“CheckpointUsage”属性中选择Always(表示总是从校验点重新启动包)或IfExists(表示仅在校验点文件变得可用时重新启动包)。

2、设置包可以从中重新启动的任务和容器,选择该任务或容器,将其“FailPackageOnFailure”属性设置为true。

变量

变量可作为包中的对象之间或父包与子包之间的通信手段,也可用在表达式或脚本中。

变量分为系统变量和用户定义变量。系统变量由SSIS提供,包含运行包的计算机名或包运行的开始时间等信息。系统变量都是只读的。用户自定义变量由用户定义,可用在脚本和包的各种表达式(见下文)中。

给包添加变量:

1、在包设计器中选中一个对象(包,事件处理程序,任务或容器)作为变量的作用域。补充:可以通过单击对应选项卡上的任意一个地方,选中包或事件处理程序对象。

2、选择“SSIS”->“变量”菜单,打开变量窗口,添加变量。

表达式

只有下列元素才能使用表达式:

for循环容器所使用的表达式

派生列转换

条件性拆分转换

优先权约束(表达式必须得出真或假)

变量

属性表达式:更新包、容器、任务、连接管理器、日志提供者和Foreach枚举器的属性值。

表达式生成器是个用来构造表达式的图形工具,用户可以通过图形化的界面选取表达式需要使用的变量(或列)、函数、操作符、类型转换等。当然,用户也可以直接在“表达式”框中键入表达式。


如何部署包?

在确认包能正常工作之后,下一步工作就是部署它们到目标计算机上,使它们变得可供使用。

部署包的方法

使用Management Studio中的导入与导出包特性(也可使用DTUTIL命令行实用程序来导入或导出包)。

通过保存包的副本进行部署。

使用部署实用工具

只有部署实用工具可以部署多个包,并包括包依赖关系(比如配置)和支持信息(比如技术文档)。包部署的过程:(1)在源计算机上创建包含要部署的包的部署实用工具。(2)在目标计算机上运行包安装向导,将包安装到文件系统或SQL Server 2005实例。

创建部署实用工具:

在创建包的部署实用工具之前,可先创建包配置。包配置用来更改包元素在运行时的属性,例如,更新变量的值或连接管理器的连接字符串等。点击“SSIS”->“包配置”菜单,将会启动“包配置组织程序”,点击“添加”按钮将会启动“包配置向导”,依次选择配置类型和要导出的属性即可。

SSIS支持几个存放包配置的不同地点,这些地点也称为配置类型

SQL Server表 可包含多个包配置

XML配置文件 可包含多个包配置

环境变量

注册表项

父包变量

部署实用工具其实就是一个文件夹,其中包含部署一个项目中的包所需要的各个文件。右击项目,选择“属性”菜单,可配置部署实用工具属性。



在生成(build)一个SSIS项目时,该项目中的所有包和包配置都被包含。如果需要在包部署中包含额外的文件,比如Readme文件,可以将这些文件放在“杂项”文件夹中,在项目生成期间,这些文件也被自动包含。生成项目时将会产生一个名为SSISDeploymentManifest.xml的清单文件,它连同包、包依赖关系的副本一起被添加到项目内的bin/deployment文件夹(默认的DeploymentOutputPath)中。清单文件列举了项目中的包、包配置和任何杂项文件。

安装包

将部署文件夹复制到目标计算机上,双击其中的清单文件来启动"包安装向导",这个向导逐步知道用户将包安装到文件系统或SQL Server 上。注意:包的基于文件的依赖关系总是安装到文件系统上。如果含有包配置,那么在使用这个向导期间可以修改包配置中的属性的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: