如何添加额外的列以处理SSIS数据流中的错误消息?

K4timini

我正在研究一个SSIS项目,以便在SQL Server数据库中导入调用行(Excel文件)。

这是我的数据流:

在此处输入图片说明

我添加了一些查询以在导入过程之前检查行。第一个检查行是否已存在(这样做是为了防止重复,因为用户将导入文件拖放到指定的文件夹中)。然后其他查询检查外键约束。此外,所有不匹配的行都将重定向到另一个数据库。因此,我能够检查无效的行,然后一个审核程序包让我知道我的NoMatchingRowsCall表在导入期间是否发生了更改。

现在,我想在没有匹配的行中添加“错误消息”,以检查“关于此行的问题是什么?”。我想在每次查找后添加“派生列”(无匹配输出)以添加错误消息。那怎么办?如何在“派生列”中添加文本内容?我应该使用包变量吗?

这是我想要得到的:

ID | C1 | C2 | C3 | ERROR_MESSAGE
1  | .. | .. | .. | Row already exists
2  | .. | .. | .. | FK error for column C1
3  | .. | .. | .. | FK error for column C2
...

我希望有一个“软”解决方案来跟踪失败的行而不停止执行程序包,并能够根据需要通过更改失败的键来手动插入失败的行。

达里尔·文曼·巴特森(Daryl Wenman-Bateson)

针对每个“不匹配”输出添加派生的Error_Message列,将为您提供所需的内容。在当前的设计中,您只需针对每个派生的列键入错误消息,因为每个流将有一个派生的列组件。除非您要在其他位置重复使用值或将所有消息集中放置,否则无需添加变量

虽然有一些警告...

  1. 查找本质上是昂贵的,因为它们执行逐行查询。如果只处理少量的行/小表,这可能很好,但是如果您查看的是数百万行,您很快就会遇到瓶颈。解决此问题的一种方法是将您的数据临时放入数据库中并执行整个集合检查(例如,使用左联接选择没有相关y行的所有x)。这样,您就可以让sql分批执行支腿工作,这将更快
  2. 您当前的设计只会突出显示第一个问题。解决“无员工问题”后,同一行的日期可能不匹配。理想情况下,您要验证所有问题的所有行(重复的行除外),以使您拥有一整套要解决的问题。如果您决定切换到使用SQL进行验证,则可以为每个问题类型添加一个位标志列,或者在单个列的基础上添加一个覆盖所有问题的按位标志

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SSIS数据流中捕获多个错误列

SSIS 2005数据流如何从查询中获取列

如何在SSIS数据流中添加一条路径

SSIS动态表和数据流中的列数

处理数据流任务中派生列中的截断错误

如何在Azure数据流中处理Excel

SSIS数据流中的Oracle目标失败,并显示错误-ORA-01405:提取的列值为NULL

在SSIS数据流(VS2008 BIDS)中记录错误描述

尝试模拟CASE表达式时,SSIS包中的“数据流任务错误”

ssis数据流任务中如何处理数据类型双精度浮点数[DT_R8]

如何在SSIS数据流中的两个源之间获取不匹配的数据?

SSIS:如何在数据流任务中运行存储过程

如何跳过SSIS数据流中的最后一行

如何在数据流任务SSIS中获取源文件行数?

如何在数据流任务SSIS 2008 R2中传递变量

SSIS-数据流-如何拆分0行返回?

在SSIS中以编程方式创建数据流任务列表

SSIS数据流中的变量使用问题

SSIS - 数据流任务中未执行失败路径

谷歌数据流 SQL | 创建分支 | 错误处理

Apache Beam / Google数据流-错误处理

SSIS如何将数据流数据存储在临时表中,然后将其附加到电子邮件中?

如何在Spark Streaming中以多个批处理间隔传送数据流

如何在Spring Cloud数据流中处理全局资源?

我如何识别数据流作业中已处理的文件

如何使用python处理大型数据流?

如何在数据流verilog中也不添加两个向量?

SSIS 如何使用在 SQL 任务中创建的表作为以下数据流任务中的目标

Azure 数据工厂 - 如何在映射数据流中删除列