在本文中,我们将通过一个示例解释如何在完整缓存模式下执行 SSIS 查找转换。要使用完整缓存模式,我们必须使用缓存连接管理器和 SSIS 查找转换。
在创建 SSIS 查找转换(完整缓存模式)包之前,请参阅查找文章以了解其属性。
提示:请参考查找转换和区分大小写文章,了解 SSIS 查找如何使用 OLE DB 连接管理器在 SQL Server、Oracle 和 DB2 服务器等数据库上运行。有关更多转换 >> 点击此处。
在创建 SSIS 包之前,让我们看看我们 SQL Server 中的查找源表及其数据。
SELECT [Country]
,[State]
,[City]
,[UnitPrice]
,[ProductStandardCost]
,[SalesAmount]
,[TaxAmt]
FROM [Lookup Transformation Source]

配置 SSIS 查找转换(完整缓存模式)
步骤 1:首先,将“数据流任务”从 SSIS 工具箱拖放到“控制流”区域,并将其重命名为“SSIS 查找转换(完整缓存模式)”。

双击它将打开数据流选项卡。
步骤 2:将 OLE DB 源从工具箱拖放到“数据流”区域。双击“数据流”区域中的 OLE DB 源,这将打开连接管理器。

从上图可以看出,我们选择了 SSIS 数据库中存在的查找转换源表。
步骤 3:单击“列”选项卡以检查列。在此选项卡中,我们可以取消选中不需要的列。

步骤 4:在“数据流”选项卡中添加一个查找转换。右键单击 SSIS 查找转换以配置完整缓存模式。

在“常规”选项卡中,“连接类型”部分,将连接类型从 OLE DB 连接管理器更改为缓存连接管理器,因为我们使用的是缓存文件 (.caw)。

在“指定如何处理没有匹配项的行”下,将默认的“失败组件”更改为“重定向行到无匹配项输出”选项。通过更改此选项,不匹配的行将被重定向到“无匹配项输出”。否则,包将失败。
步骤 5:单击“连接”选项卡以配置缓存连接管理器。单击“新建”按钮以在本地文件系统中选择缓存文件。

单击“新建”按钮将打开“缓存连接管理器编辑器”。在此,单击“浏览”按钮以浏览本地硬盘。

在这里,我们选择了在缓存转换文章中从文件系统中创建的缓存查找文件 lookup.caw。
在“缓存连接管理器编辑器”中单击“列”选项卡

检查查找列的索引位置(此处为国家/地区名称)。如果为 0,则将其更改为 1。
单击“确定”完成 SSIS 查找转换完整缓存模式缓存连接管理器的配置。现在单击“查找转换编辑器”中的“列”选项卡。
步骤 6:单击“可用输入列”。接下来,将源列拖到可用查找列以创建两个数据集之间的连接。

从上面可以看出,源数据中的国家/地区列将与查找表中的 [国家/地区名称] 列进行匹配。
- 如果源数据中的国家/地区列的每一行都匹配查找表中的 [国家/地区名称] 列的任何一行,则该行将传递到匹配输出。
- 如果源数据中的国家/地区列的每一行都与查找表中的 [国家/地区名称] 列的任何一行都不匹配,则该行将传递到无匹配项输出。
有时,SSIS 查找表中可能有我们希望传递到匹配输出的额外列。在这些情况下,我们必须在“可用查找列”中选中该列,就像我们对国家/地区代码列所做的那样。
步骤 7:将两个 Excel 目标拖到“数据流”选项卡,然后将 SSIS 查找转换输出箭头拖到其中一个 Excel 目标。将出现一个弹出窗口“输入输出选择”,提示您选择输入输出类型:“查找匹配输出”或“查找无匹配项输出”。
选择“查找匹配输出”并单击“确定”。

当您将另一个输出箭头拖到 Excel 目标 1 时,它会自动分配“查找无匹配项输出”。

步骤 8:双击“Excel 目标”以打开“Excel 目标编辑器”。单击“Excel 连接管理器”旁边的“新建”按钮以配置“Excel 连接管理器”。

从上图可以看出,我们将本地硬盘上的 SSIS 查找转换匹配行文件 SSIS Lookup Transformation Matched Rows.xls 浏览为我们的目标文件。

现在,如果已在 Excel 文件中创建表或工作表,请配置它。或者单击“新建”按钮在此处进行配置。

在这里,我们选择“匹配的行”作为 Excel 表。
步骤 9:单击“映射”选项卡以验证源列是否与目标列精确映射。

步骤 10:现在双击“Excel 目标 1”以配置“无匹配项输出”。在这里,我们将本地硬盘上的“未匹配行”文件 Not Matched Rows.xls 选为我们的目标文件,以存储未匹配的行数据。

现在,如果已在 Excel 文件中创建表,请配置它。否则,请单击“新建”按钮在此处进行配置。

在这里,我们选择“未匹配行”表作为我们的目标 Excel 表。
步骤 11:重复步骤 9。

右键单击“解决方案资源管理器”中的 SSIS 查找转换包,然后选择“执行包”。

正如您所见,我们的 SSIS 查找转换(完整缓存模式)包已成功执行。让我们打开 Excel 文件以查看匹配和不匹配的数据。首先,打开“SSIS 查找转换匹配行.xls”文件以查看匹配的行。

上图显示了国家/地区代码列来自缓存中的查找表。让我们打开“未匹配行.xls”文件以查看未匹配的行。

评论已关闭。