二、创建与设计包
什么是包?

新项目由4个虚拟文件夹组成,每个文件夹有不同的用途:
- 数据源 包含可以由多个包引用的项目级数据源
- 数据源视图 它们基于数据源并可以由源、转换和目的地引用
- SSIS包 存放SSIS包
- 杂项 杂物袋,存放除了以上文件之外的文件
无论何时创建SSIS新项目,BIDS都会创建以下几种文件:
*.dtproj文件 包含关于项目配置、数据源和包的信息
*.dtproj.user 文件 包含用户用来处理项目的首选参数
*.database 文件 包含BIDS打开Integration Services项目所需要的信息
创建包的各种方法:
- 使用导入和导出向导创建包
- 使用SSIS包设计器创建包
- 以上二者相结合来创建包
什么是容器?
- 可执行体:可执行体是容器级任务或容器内的任何容器。单个可执行体可以是SSIS所提供的任务和容器之一,也可以是个自定义的任务。
- 优先约束权:优先约束权将同一个父容器内的容器与任务链接成一个有序的控制流。可以比作SSIS的交通警察。
- 事件处理程序:容器级事件处理程序响应由容器或容器所包含的对象所引起的事件。
- 变量:容器中使用的变量包括Integration services所提供的容器级系统变量和用户自定义变量
- 重复任务
- 将需要彼此一同成功或失败的任务和容器分成组。
Integration Services提供4种容器用于创建包:
- Foreach循环容器 通过使用一个枚举器重复运行一个控制流。
- For循环容器 通过测试一个条件重复允许一个控制流。
- 序列容器 将任务和容器分组为子控制流。
- 任务主机容器 封装单个任务,所以没有使用优先约束权。



- 从SSIS设计器中运行包 从解决方案窗口中右击某个包,选择“执行包”菜单命令。
- 使用DTEXEC实用程序
该命令行实用程序不仅可以运行包,而且可以配置包。它可以访问所有包配置和运行特性,如连接、属性、变量、日志记录和进度指示器。还可以从3个数据源中装载包(数据库,SSIS服务和文件系统)
- 使用Management Studio运行包
在导入包之后,展开保存包的文件夹,右击,选择“执行包”菜单,“执行包实用程序”会被启动,该工具可以用来配置许多设置,界面如下:
- 作为经过计划的“SQL Server代理”作业运行
在Management studio中添加一个新的作用,在该作业中添加一个运行包的步骤。
关于其它设计操作?
日志记录
对不同类型的日志提供者(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 上。注意:包的基于文件的依赖关系总是安装到文件系统上。如果含有包配置,那么在使用这个向导期间可以修改包配置中的属性的值。