【问题标题】:SSIS - Updating destination table with the non matching rows from origin table (Using Pentaho Data Integration)SSIS - 使用源表中不匹配的行更新目标表(使用 Pentaho 数据集成)
【发布时间】:2021-10-22 08:46:23
【问题描述】:
这是我的问题:
我想在我的目标表中更新与源不匹配的行,这是一个示例:
表 A(原点)
1234 3456 4235 5664 2345 2349
表 B(目的地)
1234
3456
4235
5664
2345
如您所见,行 "2349" 是否不在目标表(表 B)中,因此 ssis(我正在使用 pentaho 数据集成)可以“说” : 嘿!查看表 A 和表 B 之间的不匹配行,然后用不匹配的行更新表 B?
【问题讨论】:
标签:
ssis
etl
pentaho-data-integration
【解决方案1】:
是的,根据您的问题描述,您希望将表 A 中不存在的行插入表 B。
您可以在一次转换中完成:
- 通过两个表格输入步骤,您可以在其中一个步骤中选择表格 A 中的所有行,并在另一个步骤中选择表格 B 中的所有行。
- 您添加两个对行排序步骤,每个步骤都在表格输入之后,按您要比较的列对行进行排序
- 您添加了一个 Merge join 步骤,两个 Sort rows 步骤都将它们的数据传递给 Merge join,您定义了一个左连接,并通过要比较的列连接行,左边是行来自A表,右边是来自B表的行,所以输出是来自表A的所有行加上来自表B的满足合并条件的行的信息。
- 您添加了一个 Filter 步骤以仅获取表 A 中的行,而不获取表 B 中的信息
- 您使用插入表步骤将这些行插入到表 B 中。