SSIS 项目部署模型
微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模型
关于部署
SSIS 2012 支持两种部署模型:项目部署模型和包部署模型。 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integration Services 服务器。
下表显示使用项目部署模型和使用包部署模型之间的差异和相似之处。
|
在使用项目部署模型时 |
使用包部署模型时 |
|---|---|
|
项目是部署单元。 |
包是部署单元。 |
|
参数用于向包属性赋值。 |
配置用于向包属性赋值。 |
|
将包含包和参数的项目生成为一个项目部署文件(.ispac 扩展名)。 |
包(.dtsx 扩展名)和配置(.dtsConfig 扩展名)单独保存到文件系统中。 |
|
将包含包和参数的项目部署到 SQL Server 实例上的 SSISDB 目录中。 |
包和配置复制到另一台计算机上的文件系统中。 包也可以保存到 SQL Server 实例上的 MSDB 数据库中。 |
|
数据库引擎需要 CLR 集成。 |
数据库引擎不需要 CLR 集成。 |
|
特定于环境的参数值存储于环境变量中。 |
特定于环境的配置值存储于配置文件中。 |
|
可在执行前在服务器上验证目录中的项目和包。 可以使用 SQL Server Management Studio、存储过程或托管代码执行该验证。 |
恰好在执行之前对包进行验证。 还可以使用 dtExec 或托管代码验证包。 |
|
通过对数据库引擎启动执行,来执行包。 在开始执行前,将项目标识符、显式参数值(可选)和环境引用(可选)分配给某一执行。 还可以使用 dtExec 执行包。 |
使用 dtExec 和 DTExecUI 执行实用工具执行包。 适用配置是通过命令提示符参数(可选)来标识的。 |
|
在执行过程中,包生成的事件将自动捕获并保存到目录中。 您可以使用 TRANSACT-SQL 视图查询这些事件。 |
在执行过程中,包生成的事件不自动捕获。 日志提供程序必须添加到包以便捕获事件。 |
|
包在单独的 Windows 进程中运行。 |
包在单独的 Windows 进程中运行。 |
|
SQL Server 代理用于计划包执行。 |
SQL Server 代理用于计划包执行。 |
项目部署模型
下面列出了适用于项目部署模型时的功能:
|
功能 |
说明 |
| 参数 | 参数指定包将使用的数据。 您可以分别使用包参数和项目参数将参数范围限定在包级别或项目级别。 参数可用于表达式或任务中。 在将项目部署到目录时,可为每个参数分配文字值,或者使用在设计时分配的默认值。 还可以引用环境变量来代替文字值。 在包执行时解析环境变量值。 |
| 环境 | 环境是可由 Integration Services 项目引用的变量的容器。 每个项目可以具有多个环境引用,但包执行的单个实例只能引用来自单个环境的变量。 环境允许您对分配给包的值进行组织。 例如,您可以具有名为“开发”、“测试”和“生产”的环境。 |
| 环境变量 | 环境变量定义可在包执行过程中赋给参数的文字值。 若要使用某一环境变量,请创建环境引用(在与具有参数的环境相对应的项目中),向该环境变量的名称分配某一参数值,并且在配置执行实例时指定相应的环境引用。 |
| SSISDB 目录 | 所有 Integration Services 对象都在某一 SQL Server 实例上称作 SSISDB 目录的数据库中进行存储和管理。通过该目录,您可以使用文件夹组织您的项目和环境。每个 SQL Server 实例可具有一个目录。 每个目录中可具有零个或多个文件夹。 每个文件夹可具有零个或多个项目以及零个或多个环境。 该目录中的文件夹也可以用作针对 Integration Services 对象的权限的边界。 |
| 目录存储过程和视图 | 可以使用大量存储过程和视图来管理该目录中的 Integration Services 对象。 例如,您可以指定参数和环境变量值,创建和启动执行,以及监视目录操作。 您甚至可以精确看到在执行开始前将由包使用的值。 |
部署一个项目
编译项目
在解决方案窗口,选中项目文件,右键单击并选择“编译”。此时Visual Studio将编译整个项目,并在Bin目录下的Development(默认)或Release目录中生成ispac文件。

该文件包含如下信息
@Project.manifest -- SSIS项目的所有基础数据,包扩项目属性,连接,参数,包的属性,连接,参数等等。
[Content_Types].xml -- 该目录下文件的内容类型,如dtsx的内容是text/xml,conmgr 的内容是text/xml等等。
*.conmgr -- 该项目的连接管理器下面的连接
*.dtsx -- 该项目所包含的包文件
Project.params -- 项目的参数。
部署项目
在解决方案窗口,选中项目文件,右键单击并选择“部署”(或者双击编译后的ispac文件)。会打开部署向导窗口。

选择源文件,这里可以选择从项目部署文件或者Intergration Services目录

选择目的地

检查核对信息

部署结果

在Intergration Services目录查看部署后的结构

总结
SSIS 项目部署模型的更多相关文章
- SSIS教程:创建简单的ETL包 -- 6. 对项目部署模型使用参数(Using Parameters with the Project Deployment Model)
在本课中,将修改在第 5 课: 添加包部署模型的包配置中创建的包,以便使用项目部署模型.您将使用一个参数替换该配置值,以便指定示例数据位置.还可以复制本教程附带的已完成的 Lesson 5 包. 使用 ...
- SSIS2012 项目部署模型
SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integrat ...
- SSIS的部署和配置
参考:http://www.cnblogs.com/JasonLiao/p/SSISDeploy.htmlhttps://msdn.microsoft.com/en-us/library/ms1401 ...
- SSIS教程:创建简单的ETL包 -- 5. 添加包部署模型的包配置(Adding Package Configurations for the Package Deployment Model)
包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变 ...
- tensorflow 模型保存与加载 和TensorFlow serving + grpc + docker项目部署
TensorFlow 模型保存与加载 TensorFlow中总共有两种保存和加载模型的方法.第一种是利用 tf.train.Saver() 来保存,第二种就是利用 SavedModel 来保存模型,接 ...
- ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式
/** * ThinkPHP version 3.1.3 */ ThinkPHP ( 官方网站:http://www.thinkphp.cn/ ) 目前最新版本是 3.2.2,它要求 PHP 的版本高 ...
- 用户 'IIS APPPOOL\**' 登录失败的解决方案(项目部署到本地IIS上打开网页出现报错)
为开发方便-将项目部署到本地IIS上打开网页出现报错 1.打开IIS管理 2.点击应用池 3.找到你部署的网站名,右键“高级设置”——>“进程模型”——>“标识”修改为localsyste ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- python-django框架-电商项目-项目部署_20191127
python-django框架-电商项目-项目部署: uwsgi作为web服务器: 在pycharm中启动项目:使用python manage.py runserver 这个runserver是dja ...
随机推荐
- CSS中!important的优先级
本篇文章使用最新的IE10以及firefox与chrome测试(截止2013年5月27日22:23:22) CSS的原理: 我们知道,CSS写在不同的地方有不同的优先级, .css文件中的定义 < ...
- 使用jQuery Mobile的注意事项(译)
翻译编辑自:http://www.appnovation.com/blog/7-things-know-about-jquery-mobile-working-it 一.Android和IOS的内置键 ...
- js获取手机联网状态
window.addEventListener("offline", function() { alert('offline') }, false); window.addEven ...
- docker初学笔记
什么是docker 不准确的说,docker是一种轻量级的虚拟机,它把可执行文件和运行环境打包成一个image,放在容器里运行,但是启动速度比虚拟机快很多,资源消耗小.这种技术主要是为了解决部署环境的 ...
- git基本使用方法
在本地mac,通过终端命令进入要上传的项目文件夹,也就是.xcodeproj文件所在的目录: 1)echo "# SubmitLocalProject" >> READ ...
- 计算机网络(6)-----运输层概述和UDP协议
运输层(Transport Layer) 定义 运输层负责端到端的通信,既是七层模型中负责数据通信的最高层,又是面向网络通信的低三层和面向信息处理的最高三层之间的中间层.运输层位于网络层之上.会话层之 ...
- Charles的使用
简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使 ...
- GUI用户界面编程
Java的GUI编程(Graphic User Interface,图形用户接口),是在它的抽象窗口工具箱(Abstract Window Toolkit,AWT)上实现的,java.awt是AWT的 ...
- WPF之MVVM模式讲解
WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 恰当的模式可以让我们轻松达到“高内聚 ...
- OC中快速创建NSNumber NSDictionary NSArray的方法
NSNumber: @() @小括号 或者 NSNumber * num = @3; NSValue * value = @4; NSDictionary :@{} @大括 ...