4
votes

I'm trying to run an Excel table through an SSIS Package and 3 nodes in, it has a Conditional Split. 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.

I've tried a couple spreadsheets with no avail. I was getting ID 105 initially.

My specific questions are: What do the IDs correspond to? 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.

Error at Data Flow Task 1 [SSIS.Pipeline]: "Conditional Split" failed validation and returned validation status "VS_NEEDSNEWMETADATA".

Error at Data Flow Task 1 [SSIS.Pipeline]: One or more component failed validation.

Error at Data Flow Task 1: There were errors during task validation.

3

3 Answers

3
votes

"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." Read about lineage ID in this Microsoft TechNet article

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). (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)

2
votes

Right click Conditional Split -> Advanced Editor -> Input and Output Properties -> expend those columns, you will see each column has a LineageID.

2
votes

I believe SSIS assigns unique identifiers (lineage IDs) to each column in each pipe connecting your components. SSIS gets confused when a component is expecting a lineage ID of x, but can't find it in the input pipe.

Generally, you try to find the offending pipe (in BIDS/SSDT, using @Wendy's method). 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.