zoukankan      html  css  js  c++  java
  • SSIS 组件属性整理

    整理SSIS 组件的属性解释及其用法

    一,ExecValueVariable属性

    有些Task组件执行完成之后,会产生输出结果,称作Execution Value,例如,Execute SQL Task在执行完成之后,会返回受影响的数据行数。Task组件的Execution Value可以通过属性ExecValueVariable来获取。

    属性ExecValueVariable指定存储Execution Value的变量名,属性的默认值是none,表示task的输出结果不会被存储到变量;创建一个变量,并将变量名赋值给该属性,表示在Task执行完成之后,SSIS将Task的输出结果赋值给该变量。

    示例,在Execute SQL Task中执行更新语句,获取受影响的数据行总数

    update dbo.dt set c1=5

    1,创建一个变量VarInt,用于保存更新的数据行数量

    2,设置Execute SQL Task的属性ExecValueVariable,选择用户创建的变量User:VarInt 

    3,执行Package,在Watch调试窗口中查看变量的值

    4,附上控制流的Task组件的执行值描述

     

    二,ValidateExternalMetadata属性

    ValidateExternalMetadata属性,指定该组件是否在设计时(design-time)验证外部输入数据源的元数据,默认情况下,该属性的值是True,因此,在设计Package时,打开Package,添加组件或者运行包,SSIS都会链接到外部数据源,验证数据源输入列的元数据。当该属性值设置为False时,SSIS延迟到运行该组件时才验证外部数据源的元数据。在设计时,SSIS 组件会缓存外部数据源的元数据,不会实时更新缓存中的元数据。

    大多数SSIS组件,在跟外部系统(例如,Lookup转换,数据源/目的组件)交互时,都会获取外部列的元数据,并把这些元数据会缓存到Package文件(.dtsx)中。在设计阶段,组件会自动验证缓存的元数据,当和底层(underlying)的数据源不同时,组件会返回一个特殊的状态VS_NEEDSNEWMETADATA,SSIS引擎触发元数据刷新进程,刷新缓存,保证底层元数据和缓存的元数据相同。当在运行阶段时,如果缓存的元数据和底层的数据源不同,这会导致Package运行失败。

    During the Validation phase, a component is supposed to check to make sure that the cached metadata in the package is still in sync with the underlying table/view/query. If there is a mismatch, the component returns a special status (VS_NEEDSNEWMETADATA). When this happens at design-time, SSIS triggers a metadata refresh by calling ReinitializeMetadata(). At runtime, this results in an error.

    因为,元数据的验证可能是一个非常耗费时间、耗费资源的操作,因此,用户可以在设计阶段禁用 ValidateExternalMetadata 属性,提高Package的设计效率。

     

    参考文档:

    Have you used the ExecutionValue and ExecValueVariable properties?

  • 相关阅读:
    Java 8 新特性-菜鸟教程 (8) -Java 8 日期时间 API
    Java 8 新特性-菜鸟教程 (7) -Java 8 Nashorn JavaScript
    Java 8 新特性-菜鸟教程 (6) -Java 8 Optional 类
    心理相关
    matlab和Visio安装
    论文资料搜集整理(研究现状)
    调式相关
    梅花落与折杨柳
    混合高斯模型——学习笔记
    NSCT,非下采样Contourlet变换——学习笔记
  • 原文地址:https://www.cnblogs.com/ljhdo/p/4983828.html
Copyright © 2011-2022 走看看