c# - SSIS:C# 中的条件拆分

标签 c# ssis conditional-split

我必须实现的流程根据列值的最后两个字符进行条件拆分。 出于代码维护和性能原因,我需要在 C# 中进行拆分。

如何编码?

我对收集部分没问题,但我不清楚缓冲区部分。 我确实有 Input0_ProcessInputRow

output = ComponentMetaData.OutputCollection["CLEANED_DATA_" + Row.ISO2];

但是对于每个输入行,我需要对相应的输出缓冲区执行 AddRow...

我该怎么做?

谢谢

最佳答案

SSIS 中的组件是用 C# 编写的,因此与数据流组件相比,脚本组件不会获得性能提升。我很想知道通过条件拆分组件和脚本组件实现条件拆分的两个相同包之间的基准性能差异是什么。您可能在其他地方遇到了性能瓶颈。

您提到拆分是动态处理的,您能否更具体地说明其规则是什么?通常,可以使用派生列转换处理行拆分,该转换可以创建一个名为 RowSplitIndicator 的新列,该列可以是位、整数、字符串值。从那里,可以根据 RowSplitIndicator 中的任何值有条件地拆分该行。在拆分逻辑复杂的情况下,这可以简化整体设计。

然而,您的问题的答案是您首先需要向管道缓冲区添加一行,然后您可以将值分配给缓冲区的列:

MyAddressOutputBuffer.AddRow();
MyAddressOutputBuffer.OutputColumnName = YourVariable;

注意:您的脚本组件现在是异步的,因为有一行进出有很多行。

关于c# - SSIS:C# 中的条件拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075394/

相关文章:

C#-如何使用空列表<string>作为可选参数

c# - 使用类在 ListView 上实现初始排序

sql-server - SSIS-OLE DB 源到 OLE DB 目标错误

SSIS 条件拆分基于列值

c# - Azure blob 上传在 .Net Core 3.0 应用程序中调用 .Upload() 时挂起

c# - 避免 Google Calendar API 在人们的日历中添加实际事件?

SSIS 从平面文件中获取数据并分配给变量

jdbc - 是否可以通过 SSIS 建立 JDBC 连接?

sql-server - 如果行发送到默认输出,如何使 SSIS 条件拆分任务失败

sql-server - 组合 2 个日期字段以进行条件拆分