第十四篇 Integration Services:项目转换
本篇文章是Integration Services系列的第十四篇,详细内容请参考原文。
简介
在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值。
在这一篇,我们使用SQL Server数据商业智能工具(SSDT-BI)或Visual Studio 2012将我们的第一个SSIS项目转换为SSIS 2012.为什么你想升级我们的SSIS项目到2012?你可能想使用SSIS 2012中的新特性。你可能还希望利用SSIS 2012目录。要使用目录,你的项目必须遵循项目部署模型,我们也将在这篇文章中演示。
使用SSDT-BI转换SSIS
在第十三篇,我们随便创建了一个SSIS项目(My_Second_SSIS_Project)。首先让我们使用SSDT-BI将之前的My_First_SSIS_Project项目转换为SSIS 2012.
至少有两种方法来实现SSIS项目转换:你可以从窗口资源管理器通过打开方式菜单打开解决方案文件(*.sln),或启动SSDT-BI,通过启始页面的打开项目链接打开SSIS解决方案。在第十三篇,我演示了如何从启始页创建一个新的SSIS项目,那个过程和使用"打开项目"链接转换SSIS解决方案相似。我们演示使用窗口资源管理器。图14.1显示了一种方法:使用窗口资源管理器的"打开方式",打开Visual Studio解决方案文件My_First_SSIS_Project.sln
图14.1
我比较偏向启动SSDT-BI然后打开我想转换的SSIS项目(或解决方案)文件,在Winsows 8/2012,open SQL Server Data Tools for Visual Studio 2012 as shown in Figure 14.2: 
图14.2
正如第十三篇所述,这个页面没有太多用途。你可以通过点击视图菜单下的"启始页"查看启始页上更多有用的信息:
图14.3
启始页包含一个链接来打开已存在的项目("打开项目..."),如图14.4所示:
图14.4
SSDT-BI会将之前版本创建的SSIS项目进行转换。点击打开项目链接,浏览到My_First_SSIS_Project项目文件,如图14.5所示:
图14.5
SSDT-BI警告这是一个单向的升级。一旦My_First_SSIS_Project项目升级到SSDT-BI 2012样式,可能从BIDS就不能访问它了。图14.6显示了打开之前版本的SSIS项目信息:
图14.6
返回到2008,有可能不小心将SSIS项目从SSIS 2005更新到SSIS 2008。对于一些开发者是令人讨厌的,因为依赖情况,在更新的过程有很少或没有警告信息。开发者抱怨(这是理所当然的,这是一个悲剧性的监督),微软回应添加这个屏幕让开发人员知道这个升级是不可逆的。一旦升级SSIS项目,
你就不能在之前的开发环境下打开这个SSIS项目。如果你想保持一个早期版本的SSIS项目,你需要在升级之前备份项目。更好的是,考虑使用源代码控制。
每一次在SSDT-BI中打开非本地磁盘源的SSIS项目,都会有安全警告如图14.7所示:
图14.7
一旦你接受安全警告,在你的默认浏览器会显示迁移报告,如图14.8所示:
图14.8
在迁移报告显示的同时SSIS包升级向导(图14.9)会启动:
图14.9
点击下一步,下一个页面包含需要升级的SSIS包列表,如图14.10所示。默认会选择所有的包,你应该接受默认值:
图14.10
在选择你想要升级的包后,点击下一步。下一个页面呈现包管理选项。图14.11显示了页面的默认选择:
图14.11
我很少对"选择包管理选项"的默认值进行修改。当我要修改时,通常增加"验证升级的包"、"创建新的包ID",或者两者都选。你可能不想更新连接字符串中的提供程序名称除非所有服务器的SSIS包连接被同时升级。验证升级的包是一个"double-check".我能够在操作结束后知道升级成功与否。如果我启用这个选项,我希望向导尝试升级SSIS包,如果升级失败,我可以手动处理问题。我可以选择创建一个新ID来保持SSIS包ID值的唯一。
在执行时间,当从文件系统、msdb数据库或SSIS包存储执行时,你可以设置选项验证包ID。If I am executing SSIS packages with this verification in force, I may want to preserve the original package ID.通常我会选择"包升级失败时继续执行升级过程"选项。如果我启用这个选项,我希望它升级尽可能多的包。如果一个或多个SSIS包升级失败,我可以手动升级或重建它们。我也会保留"忽略配置"选项,如果我想将SSIS包配置转换为包参数,我会在包升级完成后手动操作。注意:在SSIS 2012中你仍然能配置和使用包配置。
确认后,点击下一步。依赖所升级的包数据及复杂性,向导会执行几秒(分钟)。一旦完成,会显示如图14.12所示的升级状态页面:
图14.12
部署模型
如果还没打开,将我们刚转换的SSIS项目My_First_SSIS_Project打开,如图14.13所示:
图14.13
在解决方案资源管理器,你会注意到项目名称的后面有"(包部署模型)",如图14.14所示:
图14.14
微软SSIS团队做了出色的工作,在SSIS 2012中支持向后兼容。部署模型是向后兼容的一大部分。当你从SSIS 2008导入一个SSIS包,由于包部署模型它将表现的和2008完全一样。
包部署模型是微软在SSIS 2005到2008 R2为SSIS包的部署、执行、管理的名字。在SSIS 2012中也支持包部署模型。这意味着你可以在SSIS 2012中运行SSIS 2008的包。有一些众所周知的注意事项,并且相对容易解决。例如,在包部署模型执行SSIS包不能使用SSIS 2012目录,不能使用包级连接管理器,不能使用项目或包参数。
SSIS 2012折默认部署模型是项目部署模型,微软提供向导转换为这种模型。为了转换My_First_SSIS_Project为项目部署模型,解决方案资源管理器,右击项目名称,选择"转换为项目部署模型",如图14.15所示:
图14.15
项目转换向导会启动,如图14.16所示:
图14.16
项目转换向导的第一步是选择包,如图14.17所示:
图14.17
下一步(图14.18),指定项目属性——保护级别和项目说明:
图14.18
如果SSIS项目包含执行包任务,它们会在下一步(图14.19)中更新:
图14.19
新的项目部署模型是执行包任务需要更新的主要原因。SSIS 2012执行包任务包含一个新属性:Reference Type。在之前的SSIS版本,子包能够从文件系统或msdb数据库中执行。Reference Type属性必须设置为外部引用,以执行存储在这些位置的子包。To reference child packages contained in the same project as the parent package,设置参考类型为项目引用。
项目转换向导中的这一步允许你将包部署模型的外部引用分配给项目部署模型的项目引用
向导的下面两个步骤允许我们将包配置值转换为参数,如图14.20所示:
图14.20
选择配置(图14.20)和创建参数(图14.21)页面不适用于My_First_SSIS_Project项目,因为我们没有包配置设置。
图14.21
因为之前步骤没有创建参数,所以在配置参数页面也没有参数,如图14.22所示:
图14.22
现在我们已经准备好转换,如图14.23所示:
图14.23
一旦转换完成,在图14.24中会显示转换结果。对话框提示用户在保存该项目之前,将不会保存所做更改。保存项目的最好方法是保存所有(点击文件->保存所有)
图14.24
一旦该SSIS项目转换完成,在解决方案资源管理器下的项目名称将不会再有"(包部署模型)"字样,如图14.25所示:
图14.25
注意,在解决方案资源管理器下有一组新的虚拟对象:Project.params和连接管理器。
总结
在这一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级到SSIS 2012;然后我们将导入的SSIS项目从包部署模型转换为项目部署模型。
第十四篇 Integration Services:项目转换的更多相关文章
- 【译】第十四篇 Integration Services:项目转换
本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...
- 第十五篇 Integration Services:SSIS参数
本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...
- 【译】第十五篇 Integration Services:SSIS参数
本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...
- 第四篇 Integration Services:增量加载-Updating Rows
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...
- 【译】第四篇 Integration Services:增量加载-Updating Rows
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...
- 第十二篇 Integration Services:高级日志记录
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...
- 【译】第十二篇 Integration Services:高级日志记录
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...
- 第十三篇 Integration Services:SSIS变量
本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...
- 【译】第十三篇 Integration Services:SSIS变量
本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...
随机推荐
- GDUT——1169: Krito的讨伐(优先队列BFS)
1169: Krito的讨伐 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 619 Solved: 102 Description Krito终于干 ...
- jQuery前端验证多种方式
JQuery Validate使用总结:一.导入js库<script src="../js/jquery.js" type="text/javascript&quo ...
- [英语学习]儿童英语 sesamestreet
最近在和我的孩子学习汉语,用在自己学习英语方面,就是多看小故事,多看儿歌. 以前孙小小分享过这个网站www.sesamestreet.org 现在找出来看看,还是很不错的. 搜索elbows and ...
- ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式
/** * ThinkPHP version 3.1.3 */ ThinkPHP ( 官方网站:http://www.thinkphp.cn/ ) 目前最新版本是 3.2.2,它要求 PHP 的版本高 ...
- Android开发的七大环节
Android开发的七大环节 浏览:25 发布日期:2015/10/27 分类:职场感悟 一个完整的Android 开发流程主要包括策划.软件.交互.视觉.测试.运营维护这七大环节,其中的每一个环 ...
- apple-touch-icon,shortcut icon和icon的区别(手机站发送到手机桌面图标自定义)
apple-touch-icon 可以了解到这是一个类似网站favicon的图标文件,用来在iphone和ipod上创建快捷键时使用. 这个文件应当是png格式,57x57像素大小,放在网站根目录之下 ...
- Python函数1
Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...
- MVC问题
将 <customErrors mode="Off" defaultRedirect="~/404.html"> mode 设置为off 就可 ...
- 使用Xpath对XML进行模糊查询
如果要对XML文件进行模糊查找的话是一个比较麻烦的事情,Xpath表达式中没有像文件系统中的“*”或"?" 或者有像SQL表达式中的"%",这样的模糊查找的通配 ...
- 在Delphi下,如何使ShowMessage中的按钮中文化
如果你使用messagedlg(对showmessage也适用)可以汉化定义按钮caption的常量,具体操作步骤如下: 1. 打开文件consts.pas(在Delphi安装目录的/source ...