SSIS学习使用十四:项目转换概述和转换包部署模型为项目部署模型

这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

注:本部分主要介绍SSIS项目升级(升级至SSIS2012)。因此不重点详细操作每一步(个人演示从一开始就是使用的 SSIS 2012)。但是关于项目部署模型的转换,可以详细了解下。

在本文中,将使用 SQL Server Data Tools —— 商业智能(SSDT-BI)或 Visual Studio 2012 将第一个 SSIS 项目转换为 SSIS2012。可以在此处查看 SSIS 2012中的新特性。如果想使用新的 SSIS 2012 目录(Catalog),则项目必须遵循“项目部署模型”(将在本文中进行演示)。

使用 SSDT-BI 转换到 SSIS 2012

在本系列的第十三篇,SSIS变量概述中,我们从头创建了一个SSIS项目(My_Second_SSIS_Project)。首先,我们使用 SQL Server Data Tools–商业智能(SSDT-BI)将之前的名为My_First_SSIS_Project的SSIS项目转换为SSIS 2012。

至少有两种方法来进行SSIS项目转换:您可以从Windows资源管理器中通过 “打开方式”(Open With) 菜单打开解决方案文件(*.sln),也可以启动 SQL Server Data Tools– BI,然后从起始页上的 “打开项目” 链接中打开SSIS解决方案。在 SSIS变量概述 中,演示了如何从起始页创建新的SSIS项目,该过程与使用 “打开项目” 链接转换SSIS解决方案非常相似。此处使用 Windows资源管理器 进行演示。

下图显示了这种方法 —— 使用 Windows资源管理器 的 “打开方式” 菜单打开 Visual Studio解决方案文件 —— My_First_SSIS_Project.sln

Figure 1

我更喜欢启动 SSDT-BI,然后打开要转换的SSIS项目(或解决方案)文件。在 Windows 8/2012 中,打开 Visual Studio 2012 的 SQL Server Data Tools,如图所示:

Figure 2

“开始页面” 有很多帮助信息,可以通过单击 “视图” 下拉菜单上的 “开始页面” 来查看 “开始页面”,如图所示:

Figure 3

起始页面包括一个打开现有项目的链接(“Open Project…”),如图所示:

Figure 4

SSDT-BI 将转换一个早期版本创建的 SSIS 项目。单击 Open Project 链接,然后浏览到 My_First_SSIS_Project SSIS 项目文件(或解决方案文件),如图所示:

Figure 5

SSDT-BI 警告,这是单向升级。一旦名为 My_First_SSIS_Project 的SSIS项目升级到 SSDT-BI 2012 格式后,将无法从 Business Intelligence Development Studio(BIDS)对其进行访问。

打开先前版本中构建的SSIS项目时,将显示下main所示的对话框:

Figure 6

回到过去(2008年),有可能将 SSIS项目 从 SSIS 2005 意外地更新到 SSIS 2008。这对某些开发人员来说很烦人,因为实际情况,几乎没有或根本没有警告说升级即将进行。开发人员抱怨(理所当然的是,这是一个悲剧性的疏忽),Microsoft对此进行了回应,添加了该警告信息的屏幕,以确保开发人员知道此升级是不可逆的。

SSIS项目升级后,您将无法再在以前的开发环境中打开SSIS项目。如果要维护SSIS项目的早期版本,则需要在进行升级之前制作项目的副本。更好的方法,可以考虑使用源代码控制。

每次从 SSDT-BI 中的非本地磁盘源打开SSIS项目时,下图所示的“安全警告”都会显示:

Figure 7

确认安全警告后,将在默认的Web浏览器中显示“迁移报告”,如图所示:

Figure 8

SSIS软件包升级向导(如图9所示)在显示迁移报告的同时启动:

Figure 9

单击下一步按钮继续。下一个屏幕包含要升级的 SSIS 软件包的列表,如图所示。默认情况下,应检查所有软件包,并且应该接受默认设置:

Figure 10

选择要升级的软件包后,单击“下一步”按钮继续。然后会显示用于管理升级的选项,保持默认选项即可:

Figure 11

我很少在 “选择包管理选项”(Select Package Management Options) 界面上更改默认选择。进行更改时,通常会添加 “验证升级的包”、“创建新包ID”(“Validate upgraded packages”, “Create new package ID”) 其中的一个或两个。除非同时升级与SSIS包连接的所有服务器,否则不需要更新连接字符串中的提供器(provider)名称(尽管多年来,我一直没有遇到升级提供者名称的问题,因为它们是向后兼容的)。验证升级的包是“双重检查”。会在操作结束时知道升级是否成功。我可能会选择创建一个新的包ID,以使我的SSIS包ID值在企业中保持唯一。

在执行时 —— 从文件系统、msdb数据库或SSIS包存储中执行时 —— 可以设置一个选项来验证包ID。如果在执行此验证的情况下执行SSIS包,则可能要保留原始包ID。通常,我会选中 “软件包失败时继续升级过程” 复选框。如果已开始此过程,则希望它升级尽可能多的包。如果要升级一个或多个SSIS包文件失败,可以手动升级或直接重建。总是将 “忽略配置” 复选框保持选中状态,在包升级完成后手动将SSIS包配置转换为包(或项目)参数。注意:仍然可以在 SSIS 2012 中配置和使用包配置。

单击“下一步”按钮继续。该向导将执行几秒钟(或几分钟),具体取决于要升级的SSIS软件包的数量及其复杂性。完成后,将显示“升级状态”界面,如图所示:

Figure 12

部署模型(Deployment Models)

打开 “My_First_SSIS_Project” —— 刚刚转换的SSIS项目,如图所示:

Figure 13

在解决方案资源管理器中,注意项目名称右边的文字“(package deployment model)”,如图所示:

Figure 14

Microsoft SSIS 团队在支持 SSIS 2012 中的向后兼容性方面做得非常出色。部署模型是这种向后兼容性的很大一部分。当从 SSIS 2008 导入 SSIS 包时,由于"包部署模型",其行为将与2008年完全一样。

包部署模型(Package Deployment Model) 是 Microsoft 在 2005 至 2008 R2 的 SSIS 版本中用于SSIS包部署、执行和管理的名称。 SSIS 2012 支持包部署模型,即,可以在 SSIS 2012 中运行 SSIS 2008 包。有一些警告(不一定总是有警告),但是它们众所周知并且相对容易解决。例如,在包部署模型(Package Deployment Model)中执行的SSIS包不能利用 SSIS 2012 目录(SSIS 2012 Catalog),不能使用项目级连接管理器(Project-level Connection Managers),也不能使用项目或包参数(Project or Package Parameters)。

SSIS 2012 的默认部署模型是 项目部署模型(Project Deployment Model)。 Microsoft提供了在模型之间进行转换的向导。要将 My_First_SSIS_Project 转换为 Project Deployment Model,请在解决方案资源管理器中右键单击项目名称,然后单击 “转换为项目部署模型”(Convert to Project Deployment Model),如图所示:

Figure 15

右键,将项目部署模型转换为包部署模型

启动 Project Conversion Wizard,如图所示:

Figure 16

项目转换向导的第一步是选择包:

Figure 17

下一步,是指定项目属性 —— 项目“保护级别”和“描述”属性(the project Protection Level and Description properties):

Figure 18

如果SSIS项目包含"执行包任务",则在下一步中它们将升级:

Figure 19

新的项目部署模型是需要更新"执行包任务"的主要原因。 SSIS 2012"执行包任务"包含一个新属性:引用类型(Reference Type)。

与以前的SSIS版本一样,子包可以从 文件系统或msdb数据库(file system or msdb database) 执行。“引用类型” 属性必须设置为 “外部引用”(External Reference),才能执行存储在这些位置的子包。要引用与父包包含在相同的项目中的子包,需将“引用类型”设置为“项目引用”(Project Reference)。

通过 "项目转换向导" 中的此步骤,你可以将"包部署模型"的"外部引用"分配给"项目部署模型"的"项目引用"。

向导的接下来的两个步骤使我们能够将 Package Configuration 值转换为 参数(Parameters),从下图开始:

Figure 20

上图所示的 Configurations 界面和下图所示的 Parameters 界面不适用于My_First_SSIS_Project,因为我们没有配置 Package Configurations

Figure 21

由于在上一步中未创建任何参数,因此在下面所示的步骤中没有要配置的参数:

Figure 22

现在我们准备执行转换,如图所示:

Figure 23

转换完成后,将显示一个报告界面,显示转换结果。

同时,还将显示一个对话框,通知用户在 保存项目之前不会保存这些更改保存项目的最好方法是保存所有内容(单击"文件"->"全部保存")

Figure 24

转换完SSIS项目后,将会出现在 “解决方案资源管理器” 中,项目名称右边的括号中没有文本,如图所示:

Figure 25

在解决方案资源管理器中还要注意几个新的虚拟对象:Project.params 和 "连接管理器"(Connection Managers)。

总结

在本文中,我们使用 SQL Server 2012 Data Tools–BI 将第一个 SSIS 项目 —— My_First_SSIS_Project —— 转换为SSIS 2012;然后将导入的SSIS项目从“包部署模型”转换为“项目部署模型”。

翻译参考

本文主要参考翻译自 The Stairway to Integration Services 系列文章的原文 An Overview of Project Conversion - Level 14 of the Stairway to Integration Services,目的在于对 SSIS 有一个全面清晰的认识,所有内容在原文的基础上进行实操,由于版本差异、个人疑问等多种原因,未采用完全翻译的原则,同时也会对文中内容进行适当修改,希望最终可以更有利于学习和了解 SSIS,

感谢支持!

猜你喜欢

转载自juejin.im/post/7032839737815760927