简体   繁体   English

SSIS条件性分裂谱系误差

[英]SSIS Conditional Split Lineage Error

I'm trying to run an Excel table through an SSIS Package and 3 nodes in, it has a Conditional Split. 我正在尝试通过SSIS包和3个节点运行Excel表,它有一个条件拆分。 I'm using a previously known working spreadsheet with some data added to it. 我正在使用之前已知的工作电子表格,其中添加了一些数据。

The error I'm getting specifically is: 我具体得到的错误是:

Conditional Split.Inputs[Split Input].Columns[ColumnName] has lineage ID 147 that was not previously used. 条件Split.Inputs [拆分输入] .Columns [ColumnName]具有先前未使用的谱系ID 147。

I've tried a couple spreadsheets with no avail. 我试过几个电子表格但没有用。 I was getting ID 105 initially. 我最初得到的是ID 105。

My specific questions are: What do the IDs correspond to? 我的具体问题是:ID对应的是什么? Where do I look to try troubleshooting them? 我在哪里尝试对它们进行故障排除?

Some additional logs. 一些额外的日志。

Output: 输出:

Error at Data Flow Task 1 [SSIS.Pipeline]: Conditional Split.Inputs[Conditional Split Input].Columns[ColumnName] has lineage ID 147 that was not previously used in the Data Flow task. 数据流任务1 [SSIS.Pipeline]出错:条件Split.Inputs [条件拆分输入] .Columns [ColumnName]具有以前未在数据流任务中使用的沿袭ID 147。

Error at Data Flow Task 1 [SSIS.Pipeline]: "Conditional Split" failed validation and returned validation status "VS_NEEDSNEWMETADATA". 数据流任务1 [SSIS.Pipeline]出错:“条件性拆分”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”。

Error at Data Flow Task 1 [SSIS.Pipeline]: One or more component failed validation. 数据流任务1 [SSIS.Pipeline]出错:一个或多个组件验证失败。

Error at Data Flow Task 1: There were errors during task validation. 数据流错误任务1:任务验证期间出错。

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

"Lineage ID is a property of the component or transformation used in the data flow task. It contains an integer value that will work as buffer pointer. Each column in the data flow task will be assigned a lineage ID." “Lineage ID是数据流任务中使用的组件或转换的属性。它包含一个整数值,用作缓冲区指针。数据流任务中的每一列都将被分配一个谱系ID。” Read about lineage ID in this Microsoft TechNet article 请阅读此Microsoft TechNet文章中的lineage ID

LINEAGE ID Error implies that a Source metadata was changed, just re-validate source (connection and component) by double click on the the Conditional split and close it , then check the columns metadata (using the advanced editor). LINEAGE ID错误意味着更改了源元数据,只需双击条件拆分重新验证源(连接和组件)并关闭它,然后检查列元数据(使用高级编辑器)。 (Note that when double-clicking on a component that contains errors it will prompt to fix it) (注意,当双击包含错误的组件时,它会提示修复它)

Or you can try removing Conditional Split and adding it again (if previous solution doesn't works) 或者您可以尝试删除条件拆分并再次添加(如果以前的解决方案不起作用)

I believe SSIS assigns unique identifiers (lineage IDs) to each column in each pipe connecting your components. 我相信SSIS会为连接组件的每个管道中的每个列分配唯一标识符(沿袭ID)。 SSIS gets confused when a component is expecting a lineage ID of x, but can't find it in the input pipe. 当组件期望x的沿袭ID时,SSIS会感到困惑,但在输入管道中找不到它。

Generally, you try to find the offending pipe (in BIDS/SSDT, using @Wendy's method). 通常,您尝试查找有问题的管道(在BIDS / SSDT中,使用@ Wendy的方法)。 Double-clicking the pipe or connected components will sometimes produce a dialog box offering the option to fix the issue. 双击管道或连接的组件有时会生成一个对话框,提供解决问题的选项。 If not, then removing and recreating the pipe is your best chance. 如果没有,那么移除和重新创建管道是最好的机会。

Downstream components can be adversely affected when you change things upstream of them. 当您在其上游更改内容时,可能会对下游组件产生负面影响。 Often, the only recourse when doing midstream modifications is to rebuild the entire downstream. 通常,进行中游修改时唯一的办法是重建整个下游。 SSIS is a bit brittle in this area. SSIS在这方面有点脆弱。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM