【译】第十四篇 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:增量加载-Updating Rows
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...
- 【译】第十三篇 Integration Services:SSIS变量
本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...
- 【译】第十五篇 Integration Services:SSIS参数
本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...
- 【译】第十二篇 Integration Services:高级日志记录
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...
- 第十五篇 Integration Services:SSIS参数
本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...
- 第十二篇 Integration Services:高级日志记录
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...
- 第四篇 Integration Services:增量加载-Updating Rows
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...
- 【译】第十一篇 Integration Services:日志记录
本篇文章是Integration Services系列的第十一篇,详细内容请参考原文. 简介在前一篇,我们讨论了事件行为.我们分享了操纵事件冒泡默认行为的方法,介绍了父子模式.在这一篇,我们会配置SS ...
随机推荐
- Delphi报的错误
引入单元时提示Unit 'Unit1' already uses all the units in the project. 可能是没有添加环境变量造成的,需要手动输入代码引用单元. 和Environ ...
- Dapper 事务处理
例子: using (var connection = GetOpenConnection()) using (var transaction = connection.BeginTransactio ...
- 【bzoj4712】洪水 树链剖分+线段树维护树形动态dp
题目描述 给出一棵树,点有点权.多次增加某个点的点权,并在某一棵子树中询问:选出若干个节点,使得每个叶子节点到根节点的路径上至少有一个节点被选择,求选出的点的点权和的最小值. 输入 输入文件第一行包含 ...
- DAY8-Python学习笔记
老样子课有点多,睡觉有点多,玩手机有点多,总结就是事情有点多.Python项目还没找好所以就没上手. 今天学习内容贴几张图...
- Mac突然连不上WiFi
标签(空格分隔): 杂七杂八的问题 从昨晚开始,Mac突然连不上WiFi了,人又在图书馆,上不了网好焦急.于是搜了很多方法,也不知是哪个起作用了,反正现在可以了. 步骤一 打开"Finder ...
- [BZOJ3712]Fiolki 重构树(并查集)
3712: [PA2014]Fiolki Time Limit: 30 Sec Memory Limit: 128 MB Description 化学家吉丽想要配置一种神奇的药水来拯救世界.吉丽有n ...
- BZOJ4036 [HAOI2015]按位或 【minmax容斥 + 期望 + FWT】
题目链接 BZOJ4036 题解 好套路的题啊,,, 我们要求的,实际上是一个集合\(n\)个\(1\)中最晚出现的\(1\)的期望时间 显然\(minmax\)容斥 \[E(max\{S\}) = ...
- 【uoj129】 NOI2015—寿司晚宴
http://uoj.ac/problem/129 (题目链接) 题意 给出2~n这n-1个数,求选2个集合,使得从两集合中任意各选取1个数出来它们都互质.求方案数. Solution PoPoQQQ ...
- 解题:BJOI 2006 狼抓兔子
题面 可以看出来是最小割,然后你就去求最大流了 这么大的范围就是让你用网络流卡的?咋想的啊=.=??? 建议还是老老实实用 平面图最小割等于其对偶图最短路 这个东西来做吧,虽然这个东西跑的也挺慢的,最 ...
- 最短路 dijkstra 优先队列
1.裸题 hdu2544 http://acm.hdu.edu.cn/showproblem.php?pid=2544 Way1: 好像不对 #include <cstdio> #incl ...