MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了基于SSIS 事件的向上传递(详解)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在SSIS中,Package是Task组件的有序组合,具有层次结构,Package处于层次结构的顶层(Root Level),对于父子包结构,父包(Parent Package)通过Execute Package Task组件调用其他Package,被调用的Package是子包,父包是子包的上层级别,最顶层的Package,处于层次结构的顶层,叫做根包(Root Package);容器(Container)组件包含其他Task组件,容器是被包含的Task组件的父级别(Parent Level);Task组件是层次结构的最底层,处于叶级别(Leaf Level)。事件就是沿着Package的层次结构向上传递的。

在Package中,每一个Task组件都是一个可执行程序(Executable),所有的数据处理任务都是由Task组件完成的。在Package运行(runtime)时,SSIS引擎为了监控和追踪Task组件的运行状态,预先创建了12个系统事件(Event),这些事件都是在Package运行时(runtime)被可执行程序(Executable)触发的,每个事件都会产生相应的消息,用于描述Executable的运行状态,供开发工程师对Package进行调试和性能调优。一旦有事件被触发,SSIS会执行相应的事件处理程序(Event Handler),SSIS为每个事件都创建了默认的事件处理程序,命名规范是:On+EventName,用户可以创建自定义的事件处理程序,以扩展Package的功能,使Package在运行时更容易管理,以完成数据处理任务。在ETL开发中,最常用的事件是错误(Error)事件,该事件在Executable运行出现错误时触发,对应的事件处理程序是OnError。

在Package的层次结构中,事件处理具有向上传递(Propagate)的特性。发生在Task组件的事件,首先会被该Task组件的Event Handler捕获和处理;如果该Task组件没有创建Event Handler,那么SSIS把该Event向上传递到其父级别的Executable,由其父级别的Event Handler来处理;如果该Executable有Event Handler,那么由该Event Handler负责响应和处理该事件。事件会依次向上传递,直到事件被处理,或者传递到顶层被默认处理,事件向上传递的顶层是根包(Root Package)。

引用MSDN官方文档的例子,Package的层次结构如下图所示:

在层次结构中,如果相应的Task组件没有定义事件处理程序,那么事件向上传递的过程如下图所示:

注:

事件向上传递的条件是没有创建自定义的事件处理程序,默认情况下,该图示有误,事件被Event Handler处理之后,将继续向上传递,我会在下文详细解释。

@H_430_9@mSDN对图示做了说明:

curs when the Execute sql task runs,the OnError event handler for the package runs. 

大佬总结

以上是大佬教程为你收集整理的基于SSIS 事件的向上传递(详解)全部内容,希望文章能够帮你解决基于SSIS 事件的向上传递(详解)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: