如何在 SSIS 数据流中的两个源之间获取不匹配的数据?
How to get unmatched data between two sources in SSIS Data Flow?
我有两个数据源,一个 sql table,一个平面文件 (csv)。两个来源都有完全相同的列。示例数据:
Table:
HCN Name Surname DOB
111 John Black 2013-12-10
222 Jack White 1989-01-14
333 Brian Brown 2000-04-22
平面文件:
HCN Name Surname DOB
111 John Black 2013-12-10
444 Alex Smith 1978-05-16
请注意,列 HCN 是主键。我需要做的是让 table 但 FlatFile.
包含这样的记录
预期输出:
HCN Name Surname DOB
222 Jack White 1989-01-14
333 Brian Brown 2000-04-22
我必须在我的 SSIS 包的数据流中执行此操作。我正在执行以下操作以获取匹配记录 (HCN:111),但我无法弄清楚如何获取不匹配的记录。任何帮助将不胜感激。
解决方案 1:查找:
您可以按照以下步骤操作:
- 添加查找转换
在连接选项卡中,选择您的平面文件连接
在列选项卡中,拖放连接列
在常规选项卡中,通过重定向行处理不匹配的条目
- 将不匹配的输出重定向到您的目的地
解决方案 2:左反连接
您可以按照以下步骤操作:
1 对数据集进行排序/或将源的属性修改为 isSorted
= 真
2 在键上使用 LEFT JOIN,并添加一个包含右侧 ID 的新列
3右侧添加条件拆分条件
侧 ID 为空
然后将 CASE 1 拆分数据重定向到您的目的地,您只有左侧的行而没有右侧的对应关系
首先我建议您将平面文件数据加载到 OLEDB 暂存中 table,这是可选的。如果将平面文件数据加载到目标中,则可以对齐主键以进行查找。
创建暂存table插入不匹配的记录,这种情况下只需要异步转换
查找转换参考下方
检查查找列:
这是例子
我有两个数据源,一个 sql table,一个平面文件 (csv)。两个来源都有完全相同的列。示例数据:
Table:
HCN Name Surname DOB
111 John Black 2013-12-10
222 Jack White 1989-01-14
333 Brian Brown 2000-04-22
平面文件:
HCN Name Surname DOB
111 John Black 2013-12-10
444 Alex Smith 1978-05-16
请注意,列 HCN 是主键。我需要做的是让 table 但 FlatFile.
包含这样的记录预期输出:
HCN Name Surname DOB
222 Jack White 1989-01-14
333 Brian Brown 2000-04-22
我必须在我的 SSIS 包的数据流中执行此操作。我正在执行以下操作以获取匹配记录 (HCN:111),但我无法弄清楚如何获取不匹配的记录。任何帮助将不胜感激。
解决方案 1:查找:
您可以按照以下步骤操作:
- 添加查找转换
在连接选项卡中,选择您的平面文件连接
在列选项卡中,拖放连接列 在常规选项卡中,通过重定向行处理不匹配的条目 - 将不匹配的输出重定向到您的目的地
解决方案 2:左反连接
您可以按照以下步骤操作:
1 对数据集进行排序/或将源的属性修改为 isSorted = 真
2 在键上使用 LEFT JOIN,并添加一个包含右侧 ID 的新列
3右侧添加条件拆分条件 侧 ID 为空
然后将 CASE 1 拆分数据重定向到您的目的地,您只有左侧的行而没有右侧的对应关系
首先我建议您将平面文件数据加载到 OLEDB 暂存中 table,这是可选的。如果将平面文件数据加载到目标中,则可以对齐主键以进行查找。
创建暂存table插入不匹配的记录,这种情况下只需要异步转换
查找转换参考下方
检查查找列:
这是例子