Data Flow的错误输出

简介:

一,在Data Flow Task中,对于Error Row的处理通过Error Output Tab配置的。

 

1,操作失败的类型:Error(Conversion) 和 Truncation。

2,错误处理方式:Fail Component,Ignore Failure 和 Redirect Row

3,Error Output增加两个跟Error相关的Column:ErrorCode 和 ErrorColumn,这两个Column的数据类型是DT_4

二,错误处理方式

Fail Component:当某一列选择了Fail Component,并且产生了错误时,数据流将停止并失败,同时触发任何针对Data Flow Task的OnError Event。

Redirect Row:当任何被标记为Redirect Row的column 中任何一行产生错误,整个行将被发送到红色的错误path输出,但数据流不会失败。如果没有使用红色的Error Path输出,那么,该行将会从数据流中抛弃。

Ignore Failure:忽略错误。如果错误发生在源或转换中,那么错误列的值会被设置为NULL;如果是截断错误,那么只会向下游发送部分截断后的值;当错误发生在目的组件上,Ignore Failure的处理方式将会导致目的组件忽略整个行。

 

这三种处理错误的方式,只有Fail Component 会导致Data Flow 失败,触发OnError Event,并产生错误信息;Redirect Row 和 Ignore Failure 不会导致任何组件失败,因此,SSIS 不会抛出任何错误信息。

三,对Error Row的 Redirect 处理

1,Data Flow Design

2,配置Data Conversion 组件的Error Output

在Data Comversion 组件,进行一个转换,将字符串类型转换为int 类型,产生错误

配置Error的错误处理方式是 Redirect Row

在Advanced Editor中查看组件的Error Output columns:ErrorCode 和 ErrorColumn,这两个Column 都是 DT_I4类型,用于输出ErrorCode 和 发生错误的Column ID。

3,存储Error Output

创建临时表,存储Data Conversion的Error Output

复制代码
create table dbo.Test_ErrorOutput
(
    ID int,
    Env nvarchar(11),
    ErrorCode int,
    ErrorColumn int
)
复制代码

将Data Conversion的 红色Path(Error Output Path)链接到Error Output Destination。


 

查看 Error Output path的Metadata,共有四个Column,Source的两个(ID和 Env),ErrorCode 和 ErrorColumn,对于转换失败的Column(copy of env),并没有出现在path中。对于转换失败的新增Column,Error Output不会输出给下游组件。

4,执行Package,查看执行结果

 

Redirect Row的错误处理方式不会导致Data Flow Task的失败,不会触发OnError 事件,也不会导致其子组件和整个Package的失败。

结论:Data Flow的错误处理方式,表示组件能够自行处理错误。当设置Failure Component时,表示Data Flow需要触发OnError Event,抛出错误信息;当设置Redirect或者ignore,表示Data Flow 不会触发OnError Event,Data Flow 将按照设定的容错逻辑进行处理。

 

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SSIS






本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/5493973.html,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
机器学习/深度学习 监控 物联网
函数计算操作报错合集之调用接口提示Cannot copy out of meta tensor; no data! 是什么原因
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
244 0
|
5月前
|
Python
【Batch Job】Batch Job中执行一段Python代码,遇见Failure Exit Code
【Batch Job】Batch Job中执行一段Python代码,遇见Failure Exit Code
|
5月前
LangChain 构建问题之定义extract_local_group_size工具如何解决
LangChain 构建问题之定义extract_local_group_size工具如何解决
32 0
error • The parameter ‘name‘ can‘t have a value of ‘null‘ because of its type错误
error • The parameter ‘name‘ can‘t have a value of ‘null‘ because of its type错误
|
负载均衡 数据处理 开发者
Flow File 操作2 | 学习笔记
快速学习 Flow File 操作2
Flow File 操作2  |  学习笔记
|
C++
VS Code使用过程中遇到的一些问题
VS Code使用过程中遇到的一些问题
67 0
解决办法:对lzma_stream_decoder/lzma_code/lzma_end未定义的引用
解决办法:对lzma_stream_decoder/lzma_code/lzma_end未定义的引用
240 0
|
开发者
Flow File 操作1 | 学习笔记
快速学习 Flow File 操作1
107 0
|
IDE Oracle 关系型数据库
我最终选择VS Code....
Python是全球最流行的编程语言之一,由于非常容易学习,因此,很多人开始用Python进行编程,包括我自己。
我最终选择VS Code....