[译]Stairway to Integration Services Level 15 – SSIS 参数回顾

介绍

在本文中我们会研究SSIS变量姐妹: SSIS 变量. 我们会演示参数配置,通过包参数管理动态属性值,然后会演示SSIS包执行的时候参数怎么被配置的.

SSIS Parameters 101

SSIS参数和SSIS变量很像.  在SSIS 2012里面 变量和参数是可以互换的. 不过有重要的不同点:

  • SSIS包开始执行以后,参数是只读的.
  • 参数的作用域为项目或者包级别.
  • 参数有 Sensitive 属性.
  • 参数有 Required 属性.
  • 因为参数在SSIS包执行的之后参数是只读的.所以参数值无法通过表达式组合.

项目参数 Project Parameters

项目参数可以被SSIS项目中所有包使用. 不过他们必须在Project Deployment 模型中使用.

Project Deployment 是 SQL Server 2012 Integration Services新功能. 项目参数是Project Deployment 模型的新特性之一. 其他特性包括包参数, 项目连接管理器, 以及部署到新的 SQL Server 2012 Integration Services Catalog.

在Solution Explorer, 双击Project.params 对象:

Figure 3

项目参数窗口工具栏有三个按钮:

  • Add Parameter
  • Delete Parameter
  • Add Parameters to Configurations
Add Parameter

点击Add Parameter按钮添加一个新的项目参数到 My_First_SSIS_Project SSIS 项目:

Figure 4

“Parameter” 被添加到 SSIS 项目. 参数默认属性如下:

  • Data Type: Int32
  • Value: 0
  • Sensitive: False
  • Required: False
  • Description: [Empty String]

对比了一下参数数据类型和变量数据类型.:

  • Boolean
  • Byte
  • DateTime
  • Decimal
  • Double
  • Int16
  • Int32
  • Int64
  • SByte
  • Single
  • String
  • UInt32
  • UInt64

下面三个是变量特有的数据类型:

  • Char
  • DBNull
  • Object

Sensitive(敏感) 属性是一个布尔值默认为 False.  设置为True把变量值标记为敏感的. 如果为 True, SQL Server 2012 Integration Services 会加密这个值. 这取决于 ProtectionLevel 属性的设置. 可以在项目属性里面进行配置

Figure 7

Figure 8

注意: 参数的Sensitive 属性一旦被设置为True , Value值就会被掩盖.

Required 属性也是布尔值,默认为 False. 当值为False的时候表示SSIS 项目执行时并非必要,若设置为True,则该值必须提供SSIS项目执行时使用(必须有值).

为了演示目的,配置如下:

  • Name: Parameter
  • Data Type: Int32
  • Value: 0
  • Sensitive: True
  • Required: True
  • Description: Test Parameter

Figure 9

包参数 Package Parameters

包参数可以在参数标签上配置:

Figure 13

开始配置SSIS包参数之前先下载点真实数据 WeatherData_Dec08.zip

建立个新的包变量 SourceFilePath

Name: SourceFilePath

  • Data Type: String
  • Value: <the location of sensor1-all.csv on your system>
  • Sensitive: False
  • Required: True
  • Description: Weather data source file

Figure 16

返回Control Flow添加一个Data Flow Task 然后重命名至“DFT Stage Temperature and Humidity” :

Figure 18

双击 “DFT Stage Temperature and Humidity” 拖一个 Flat File Source 然后改名为“FFSrc Temperature and Humidity”:

Figure 19

双击FFSrc Temperature and Humidity 然后创建连接管理器 ,把连接管理器的名字改为“FFCM Temperature and Humidity.” 选择你刚才下载的sensor1-all.csv 文件

Figure 28

完成后如下 :

Figure 29

在SQL Server里面创建一个数据库.

Use master
go
If Not Exists(Select name
              From sys.databases
                  Where name = ‘WeatherData‘)
 begin
  print ‘Creating database WeatherData‘
  Create Database WeatherData
  print ‘WeatherData database created‘
 end
Else
 print ‘WeatherData database already exists.‘

Listing 1

再拖一个 OLE DB Destination ,然后重命名为 “OLEDest Stage Temperature”:

Figure 35

双击 “OLEDest Stage Temperature” 创建连接管理器与刚才建立的 WeatherData数据库连接:

Figure 41

表格名称改为StageTemperature

Figure 42

点击“FFCM Temperature and Humidity”平面文件连接管理器,然后他属性里面把 Expressions的 ConnectionString 属性设置为 SourceFilePath 包参数 :

Figure 48

按F5执行包,结果如下:

Figure 55

如果一切都没问题,那么你的执行结果会和 Figure 55 相同.

现在把 sensor1-all.csv  移到上级目录 Dec08 下 :

Figure 56

再次执行包..会出现类似下面的报错:

Figure 57

停掉 debugger. 修正 SourceFilePath 的路径:

Figure 58

现在再次运行包 :

Figure 59

测试成功

原文链接: http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/106428/

时间: 2024-10-23 20:08:18

[译]Stairway to Integration Services Level 15 – SSIS 参数回顾的相关文章

[译]Stairway to Integration Services Level 13 -SSIS 变量回顾

介绍 在前一篇中我们组合了已经学过的事件冒泡 event bubbling, 日志记录 logging, 和父子模型 Parent-Child pattern 建立了自定义的SSIS包日志记录. 本文中, 我们会将我们的解决方案升级至 SQL Server 2012 Integration Services 并且展示 SSIS变量 (SSIS variables), 变量(variable configuration), 以及通过表达式处理动态值 (dynamic value managemen

[译]Stairway to Integration Services Level 6 - SSIS 工作流管理基础

简介 在之前的章节中,我们学习了增量载入数据. 本文中.我们通过优先约束(Precedence Constraints)来管理SSIS的工作流. 添加一个SSIS包 图 1 将新建的Package1.dtsx 改为 Precedence.dtsx  : 图 3 添加 Script Task 拖个 Script Task 到Control Flow: 图 5 Script Task估计是SSIS 里面最强大的组件了.你可以创建很多功能. 同样的,你能通过Script Task 控制SSIS工作流.

[译]Stairway to Integration Services Level 16 – Flexible Source Locations (多文件导入)

介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip  解压以后我们看到有三个目录数据 Figure 1 每个月年目录包含一个子目录 TH.每个TH 目录包含文件 sensor1-all.csv.  这些文件是 December 2008 至 April 2009 温度和湿度数据. February 2009 的文件包括December 2008 至

[译]Stairway to Integration Services Level 12 - 高级日志配置

介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾    Reviewing SSIS Task Events 在做实验之前我们更改一下 Precedence.dtsx SSIS 包的设置. 把 Precedence.dtsx SSIS 包的 DisableEventHandlers 属性改为True Figure 2 屏蔽内置日志   Disable Built-In Logging 首先我们要移除已经存在的日志

[译]Stairway to Integration Services Level 9 - Control Flow Task Errors

介绍 在本文中,我们会实验 MaximumErrorCount和ForceExecutioResult 故障容差属性,并且还要学习Control Flow task errors, event handlers 和 containers 的联系 关于 SSIS Task Errors 打开 Precedence.dtsx 包. 你的Control Flow 显示如下: 图 1 再做测试前我们先调整两个优先约束.   Script Task 4 和 Script Task 3  调整如下: 图 2

[译]Stairway to Integration Services Level 18 – 部署和执行

介绍 在本文中,我们要创建一个SSIS Catalog 实例,部署我们的项目,并且运行 weather data loader 包. SSIS 2012 部署模型   SSIS 2012 Deployment Models SQL Server 2012 Integration Services 支持两种部署模型: 包部署模型  Package Deployment Model 项目部署模型  Project Deployment Model 包部署模型是向后兼容的,支持SSIS 2012以前的

[译]Stairway to Integration Services Level 3 - 增量导入数据

让我们打开之前的项目:My_First_SSIS_Project_After_Step_2.zip 之前项目中我们已经向dbo.contact 导入了19972行,如果再次执行包会重复导入,让我们来解决这个问题. 增量导入目标 (Incremental Load Goals) 在我们批量处理之前,先来明确下增量导入的目标: 如果数据源中有新纪录,我们要把这些记录导入目的地. 如果数据源中有记录变更,我们要把之前导入目的地的相关记录更新. 如果数据源中的记录被删除,我们要把之前导入目的地的相关记录

[译]Stairway to Integration Services Level 10 - 高级事件活动

介绍 在前一篇文章中我们介绍了故障容差相关的 MaximumErrorCount 和 ForceExecutionResult 属性.  同时我们学习了SSIS Control Flow task errors, containers, 和event handlers联系 . 本篇中我们关注事件行为. 我们用两种方法操纵日志传递(冒泡)行为. 同时也介绍父子模式(Parent-Child pattern )并且演示事件在父子模式中的行为. 关于 SSIS 任务事件 About SSIS Task

[译]Stairway to Integration Services Level 14 - 项目转换(SSIS 2008 ~ SSIS 2012)

介绍 本文中我们会用SSDT把第一个SSIS项目转换为 SSIS 2012, 为什么要升级到2012? 你可能想使用SSIS 2012新的特性. 又或者想使用 SSIS 2012 Catalog. 想要使用 Catalog, 你的项目必须转为 Project Deployment Model 我们会在本片文章中演示. 开发模型  Deployment Models 在Solution Explorer,里面我们注意到一段文字“(package deployment model)” : Figur