本篇文章是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:项目转换的更多相关文章

  1. 【译】第十四篇 Integration Services:项目转换

    本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...

  2. 第十五篇 Integration Services:SSIS参数

    本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...

  3. 【译】第十五篇 Integration Services:SSIS参数

    本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...

  4. 第四篇 Integration Services:增量加载-Updating Rows

    本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...

  5. 【译】第四篇 Integration Services:增量加载-Updating Rows

    本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...

  6. 第十二篇 Integration Services:高级日志记录

    本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...

  7. 【译】第十二篇 Integration Services:高级日志记录

    本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...

  8. 第十三篇 Integration Services:SSIS变量

    本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...

  9. 【译】第十三篇 Integration Services:SSIS变量

    本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...

随机推荐

  1. redis pool config的配置参数

    .获取jedis实例时,实际上可能有两类错误.一类是pool.getReource(),得不到可用的jedis实例:另一类是jedis.set/get时出错也会抛出异常:为了实现区分,所以根据inst ...

  2. 安装nfs服务器

    服务器和客户端都有一下操作 groupadd nginx useradd -r -g nginx nginx -s /sbin/nologin id nginx 查看nginx的id yum inst ...

  3. C++的ORM 开源框架

    C++的ORM 开源框架 介绍一个C++的ORM工具ODB SOCI.LiteSQL.POCO数据库访问类库对比

  4. 《Java核心技术卷二》笔记(二)文件操作和内存映射文件

    文件操作 上一篇已经总结了流操作,其中也包括文件的读写.文件系统除了读写以为还有很多其他的操作,如复制.移动.删除.目录浏览.属性读写等.在Java7之前,一直使用File类用于文件的操作.Java7 ...

  5. Frenetic QuickInstall

    Frenetic a family of network programming languages 官方网站:Frenetic Github:Frenetic QuickInstall 第一步,先安 ...

  6. http响应报文和http请求报文 详细信息

    tomcat项目本身的jar包

  7. Web前端开发:什么是页面重回(repaints)与回流(reflow)

    前言:什么是重绘与回流? 重绘(repaints)是一个元素外观的改变所触发的浏览器行为,例如改变vidibility.outline.背景色等属性.浏览器会根据元素的新属性重新绘制,使元素呈现新的外 ...

  8. 自定义UserProvider,更改验证方法

    新建UserProvider,如果继承EloquentUserProvider,注入model是必须的,或者去继承interface,自己实现一些方法 use Illuminate\Auth\Eloq ...

  9. Delphi 如何清除动态数组的内存?

    SetLength(glb_IndexConfig,); FreeAndNil(glb_IndexConfig);

  10. 【转】Unity3D开发之Http协议网络通信

    之前unity3d项目要做跟服务器通信的模块,然后服务器那边的协议是基于http的Jsonrpc通信方式一开始,用C#的本身类HttpWebRequest来提交请求,很快就在电脑上面成功了,代码也很简 ...