SSIS条件性分裂谱系误差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS条件性分裂谱系误差相关的知识,希望对你有一定的参考价值。

我正在尝试通过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:任务验证期间出错。

答案

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

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

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

另一答案

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

另一答案

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

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

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

以上是关于SSIS条件性分裂谱系误差的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤条件推理决策树是传统决策树的一个重要变体条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

SSIS中对多个工作表的条件拆分转换

SSIS 条件拆分错误 - 表达式评估为 NULL,但“条件拆分”需要布尔结果

SSIS有条件拆分拒绝文件[关闭]

SSIS 中的条件数据验证

如果条件不满足,派生列表达式SSIS如何忽略表达式?