[转]SSIS的Validation

Delay Validation Property in SSIS

Hello!

ETL can be very time consuming and also complicated process. In order that the business does not stands at cross roads when any critical and time consuming ETL process counters a failure, the package is validated during design time and also during execution time.

In this post let’s have a brief understanding of what Delay Validation Property in SSIS is and how this property can be manipulated to favor the business case under special considerations.

Design Time Validation

To understand more about design time validation, let’s create a package.

Here I have two Execute SQL Tasks on my design pane. As you will see in the graphic above, one on the right has a small cross. That’s because the package was validated at design time to list potential agent that might break the routine execution of the package.

In this case, the error discovered was that the task on the right has no connection manager defined.

This prompts the designer that a valid connection string should be defined for task execution. Such early signals are highly beneficial as they serve as an important indicator that something somewhere is incorrect and requires the attention of the designer.

The default value of delay validation is false. This means that all actions taking place on the designer pane will be validated and checked for their correctness. Here, we skipped the connection string and the development studio is smart enough to point that to designer.

Once a valid data is provided, the cross mark disappears, thereby ensuring that the task will not fail as far as the connection to server is concerned.

Please note during package execution, errors specific to EXECUTE SQL TASK like Timeout error is not managed by delay validation property. The designer will have to tweak the task accordingly.

On a lighter note, not specifying a connection string and setting the value for delay validation to true will also not make any sense until unless the designer decides to use expressions to specify connection details.

Run Time Validation

To understand more about run time validation, let’s create a package.

Here, we shall create a business case to archive files (you may consider the daily ETL loads) and move them into say a ”processed” folder after successful transfer to staging area.

Suppose that the daily ETL loads that the business receives from the transaction system are in form of a flat files and each file has a unique time stamp attached like (filename_date.txt). Now since the source is a varying entity, the name to source will only be resolved at run time i.e. when the package is executed. So this can be a brilliant case to study the usage of Delay Validation at run time.

We need a combination of following tasks for successful execution. Please note one may come up with an alternate design and also more efficient design. This is always welcome.

  • Foreach loop container(FEL)
  • File system task(FST) and variable of string type to store current file name

The foreach loop will enable the repeated execution of the identical behavior over multiple files and the file system task will enable the business to move the processed files to some alternate location.

After configuring the FEL, and the FST, you will notice a cross mark on the FST.

Now, if you toggle the default value of Delay Validation and set it to true, the cross mark disappears. Which is precisely what we require, since the filename will be known the the executable to make the connection at run time.

Lastly, this is a wonderful property as long as it is not abused.

时间: 2024-10-25 06:49:34

[转]SSIS的Validation的相关文章

[转]SSIS package taking forever to load when you open it?

SSIS package taking forever to load when you open it? Posted on July 13, 2011 by James Serra When you open a SQL Server Integration Services (SSIS) package in SSIS Designer or add components to a package, SSIS by default checks the data sources used

SSIS的DelayValidation属性

一,DelayValidation Property true if validation of the package is delayed until run time. false if the package is validated, and errors and warnings are returned before the package is actually executed. false may prevent the package from running if err

SSIS Error:Package Validation Error. SSIS Error Code DTS_E_OLEDBERROR. .Error code: 0x80040E37. An OLE DB record is available. Hresult: 0x80040E37

当我参考如下链接,尝试在SSIS包中动态创建全局临时表##Temp,用Lookup组件作为数据源,给全局临时表变量赋值时,会发生如下图的验证错误. http://sqlage.blogspot.com/2014/04/ssis-how-to-create-use-temp-table-in.html 因为信息已经明确提示,这是一个验证的错误,这又是一个动态创建全局临时表的包,所以我怀疑是DelayValidation 属性设置问题.当我检查了所有的数据库连接,这个属性设置为Ture.我就迷惑了,

SSIS Parameter用法

Parameters能够在Project Deployment Model下使用,不能在Package Deployment Model使用.在Package Deployment Model下,使用Package Configurations来传递属性值:在Project Deployment Model下,使用Parameters来传递值. 1,Parameters and Package Deployment Model In general, if you are deploying a

SSIS Component的ValidateExternalMetadata属性

ValidateExternalMetadata Property Indicates whether the component validates its column metadata against its external data source at design time. When this property is true, the component connects to its external data source during design time and val

SSIS 日志记录的机制和查询sysssislog

一,MSDN Logging SQL Server Integration Services includes log providers that you can use to implement logging in packages, containers, and tasks. With logging, you can capture run-time information about a package, helping you audit and troubleshoot a p

SSIS:SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. Error code 0xC020801C,0xC0209303

The error info: [Excel Destination [20]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209303.  There

spring和hibernate整合时报sessionFactory无法获取默认Bean Validation factory

Hibernate 3.6以上版本在用junit测试时会提示错误: Unable to get the default Bean Validation factory spring和hibernate整合时报sessionFactory无法获取默认Bean Validation factory  ,是因为新版hibernate用到新的jar包造成的,默认会自动找验证包,吴国不需要这一步,可以在spring整合hibernate的配置节点中添加如下标红属性: <bean id="sessio

微软BI 之SSIS 系列 - Precedence Constraint 详解优先约束的使用

开篇介绍 Precedence Constraint 优先约束 - 在控制流中使用,用来链接控制流中各种 Task,Container,并且要求满足一定的条件才能执行相关联的 Task 或者 Container. 比如下图中,第一个 Execute SQL Task 叫做 Precedence-Executable 优先可执行任务,而Script Task 由于在关联箭头的下游,所以它叫做 Constrained-Executable 受约束可执行任务.关联箭头的上游任务自然先执行,关联箭头下方