SSIS条件性分裂谱系误差

问题描述 投票:3回答:3

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

我具体得到的错误是:

条件Split.Inputs [拆分输入] .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:任务验证期间出错。

sql-server ssis etl ssis-2012 conditional-split
3个回答
2
投票

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

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

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


2
投票

右键单击条件分割 - >高级编辑器 - >输入和输出属性 - >展开列,您将看到每列都有一个沿袭ID。


2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.