SSIS条件性分裂谱系误差

时间:2017-04-27 19:55:53

标签: sql-server ssis etl ssis-2012 conditional-split

我正在尝试通过SSIS包和3个节点运行Excel表,它有一个条件拆分。我正在使用之前已知的工作电子表格,并添加了一些数据。

我特别提到的错误是:

  

条件分割。输入[分割输入] .Columns [ColumnName]具有先前未使用的血统ID 147。

我尝试了几个电子表格但没有用。我最初得到的是ID 105。

我的具体问题是:ID对应的是什么?我在哪里尝试对其进行故障排除?

一些额外的日志。

输出:

  

数据流时的错误任务1 [SSIS.Pipeline]:条件性Split.Inputs [条件性拆分输入] .Columns [ColumnName]具有以前未在数据流任务中使用的谱系ID 147。

     

数据流任务1 [SSIS.Pipeline]出错:“条件性拆分”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”。

     

数据流任务1 [SSIS.Pipeline]出错:一个或多个组件验证失败。

     

数据流错误任务1:任务验证期间出现错误。

3 个答案:

答案 0 :(得分:2)

右键单击Conditional Split - >高级编辑器 - >输入和输出属性 - >花费这些列,您会看到每列都有一个LineageID。

答案 1 :(得分:2)

“Lineage ID是数据流任务中使用的组件或转换的属性。它包含一个整数值,用作缓冲区指针。数据流任务中的每一列都将被分配一个谱系ID。 “ Read about lineage ID in this Microsoft TechNet article

LINEAGE ID错误意味着更改了源元数据,只需双击条件拆分重新验证源(连接和组件)并关闭它,然后检查列元数据(使用高级编辑器)。 (请注意,当双击包含错误的组件时,它会提示修复它)

或者您可以尝试删除条件分割并再次添加(如果之前的解决方案不起作用)

答案 2 :(得分:2)

我相信SSIS会为连接组件的每个管道中的每个列分配唯一标识符(沿袭ID)。当组件期望x的沿袭ID时,SSIS会感到困惑,但在输入管道中找不到它。

通常,您尝试查找有问题的管道(在BIDS / SSDT中,使用@ Wendy的方法)。双击管道或连接的组件有时会生成一个对话框,提供解决问题的选项。如果没有,那么删除并重新创建管道是最好的机会。

当您在其上游更改内容时,可能会对下游组件产生负面影响。通常,进行中游修改时唯一的办法是重建整个下游。 SSIS在这方面有点脆弱。