• [译]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 对象:

    image

    Figure 3

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

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

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

    image

    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 属性的设置. 可以在项目属性里面进行配置

    image

    Figure 7

     image

    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

    image

    Figure 9

     

    包参数 Package Parameters

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

    image

    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

    image

    Figure 16

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

    image

    Figure 18

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

    image

    Figure 19

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

    image

    Figure 28

    完成后如下 :

    image

    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”:

    image

    Figure 35

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

    Figure 41

    表格名称改为StageTemperature 

    image

    Figure 42

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

    image

    Figure 48

    按F5执行包,结果如下:

    image

    Figure 55

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

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

    image

    Figure 56

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

    image

    Figure 57

    停掉 debugger. 修正 SourceFilePath 的路径:

    image

    Figure 58

    现在再次运行包 :

    image

    Figure 59

    测试成功

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

  • 相关阅读:
    Kubernetes 无法删除pod实例的排查过程
    kubeadm 生成的token过期后,集群增加节点
    linux 常规操作EOF写法梳理
    linux下EOF写法梳理
    容器云之弹性伸缩
    QEMU,KVM及QEMU-KVM介绍
    听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构
    代码内存泄露检测(1) MLeaksFinder (Wechat开源) + FBRetainCycleDetector (FaceBook开源)
    Xcode 创建使用多个 target (1)
    iOS 多线程的简单理解(4) 线程锁的简单使用
  • 原文地址:https://www.cnblogs.com/haseo/p/4109032.html
Copyright © 2020-2023  润新知