SQL Server Integration Services 包的开发与部署初探
说到数据库之间的数据同步,我们经常会结合的SQL Server 2000中的DTS和作业功能来实现按时、按条件的数据传输。但是SQL Server 2005 以后,不再支持SQL Server 2000中的DTS做数据迁移(DTS:Data Transfer Service)。取而代之的是SQL Service Integration Service,缩写为SSIS。开发SSIS包(扩展名为dtsx),完全覆盖了原来DTS的功能,能够更方便的在SQL Server的各版本间传输数据。下面结合一个开发实例,初步探索一下如何在我司的数据库环境中开发、部署SSIS包。
一、 创建包
一般情况下,Integration Services 包都是在测试或开发服务器上进行开发,然后放到一个或多个实际运行的服务器上进行应用。这意味着需要将来自测试或开发环境的包部署到应用环境中。Integration Services 提供了方便的部署和维护包的工具。
开发SSIS包,你需要使用工具Business Intelligence Development Studio 或 Visual Studio 2005。下面只对Business Intelligence Development Studio进行说明。在安装有SQL Server 2005管理员工具的机器上,运行Business Intelligence Development Studio如下图
创建项目时,我们选择“Integration Services 项目”类型,如下图所示
接下来我们在项目中新建一个SSIS包,
我们可以看到开发环境的工具栏中,有很多类型的任务和控制流项
本示例要做的操作是
A、 清空配件图册库(csd)中的作废物料表
B、 把数据库klpdm中的作废物料表复制到配件库(csd)中
C、 调用一个存储过程,完成作废物料代码的替换
我选择使用了两种控制流“执行SQL任务”和“数据流任务”来完成上面三个工作。如下图如示
二、 包的配置
在设计界面中,我们可以从上下文菜单选择“包配置”。
在“包配置”对话框中, 我们可以新建一个XML格式的配件文件如下图所示
我们可以选择一些敏感的属性,配置到XML文件中,一般来说,我会选择,数据库连接的登录名和密码,因为开发、测试和生产环境的这些属性是不同的。
最后要注意一点,如果使用的配置文件,请把SSIS包的ProtectionLevel属性设为“DonotSaveSensitive”。因为这样可以方便我们更改属性。如下图
三、 包的安装部署
要生成一键部署包,必须修改该项目的CreateDeploymentUtility属性为“True”,如下图。
这样,我们就可以在生成目录下找到一个Deployment目录了。
到生产环境安装时,只要把这个目录复制到要安装的数据库服务器上,然后双击manifest文件,安装向导就自动开始了。
第一步,选择部署到SQL Server
第二步,选择要安装到哪个数据库
第三步,使用默认安装路径安装
第四步,设置XML配置文件的一些重要属性。下面图中只设置了登录密码,在我司的实际环境中,还要设置登录名。
四、 使用作业调用包
为了定时执行,已经部署的SSIS包,需要在SQL代理服务中创建一个作业,然后在作业的步骤中,设置调用刚刚部署的SSIS包。如下图
别忘记在“配置”标签中选择安装目录下的xml配置文件。