SSIS 查找转换(完整缓存模式)

在本文中,我们将通过一个示例解释如何在完整缓存模式下执行 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]
Source Data

配置 SSIS 查找转换(完整缓存模式)

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

Drag and Drop Data Flow Task

双击它将打开数据流选项卡。

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

Select Source Table

从上图可以看出,我们选择了 SSIS 数据库中存在的查找转换源表。

步骤 3:单击“列”选项卡以检查列。在此选项卡中,我们可以取消选中不需要的列。

Output Columns

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

SSIS Lookup Transformation In Full Cache Mode 4

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

SSIS Lookup Transformation In Full Cache Mode 5

在“指定如何处理没有匹配项的行”下,将默认的“失败组件”更改为“重定向行到无匹配项输出”选项。通过更改此选项,不匹配的行将被重定向到“无匹配项输出”。否则,包将失败。

步骤 5:单击“连接”选项卡以配置缓存连接管理器。单击“新建”按钮以在本地文件系统中选择缓存文件。

SSIS Lookup Transformation In Full Cache Mode 6

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

在这里,我们选择了在缓存转换文章中从文件系统中创建的缓存查找文件 lookup.caw。

在“缓存连接管理器编辑器”中单击“列”选项卡

SSIS Lookup Transformation In Full Cache Mode 8

检查查找列的索引位置(此处为国家/地区名称)。如果为 0,则将其更改为 1。

单击“确定”完成 SSIS 查找转换完整缓存模式缓存连接管理器的配置。现在单击“查找转换编辑器”中的“列”选项卡。

步骤 6:单击“可用输入列”。接下来,将源列拖到可用查找列以创建两个数据集之间的连接。

SSIS Lookup Transformation In Full Cache Mode 9

从上面可以看出,源数据中的国家/地区列将与查找表中的 [国家/地区名称] 列进行匹配。

  • 如果源数据中的国家/地区列的每一行都匹配查找表中的 [国家/地区名称] 列的任何一行,则该行将传递到匹配输出。
  • 如果源数据中的国家/地区列的每一行都与查找表中的 [国家/地区名称] 列的任何一行都不匹配,则该行将传递到无匹配项输出。

有时,SSIS 查找表中可能有我们希望传递到匹配输出的额外列。在这些情况下,我们必须在“可用查找列”中选中该列,就像我们对国家/地区代码列所做的那样。

步骤 7:将两个 Excel 目标拖到“数据流”选项卡,然后将 SSIS 查找转换输出箭头拖到其中一个 Excel 目标。将出现一个弹出窗口“输入输出选择”,提示您选择输入输出类型:“查找匹配输出”或“查找无匹配项输出”。

选择“查找匹配输出”并单击“确定”。

SSIS Lookup Transformation In Full Cache Mode 10

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

SSIS Lookup Transformation In Full Cache Mode 11

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

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

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

Destination Table Editor

在这里,我们选择“匹配的行”作为 Excel 表。

步骤 9:单击“映射”选项卡以验证源列是否与目标列精确映射。

Columns Mapping

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

Browse Excel File for Not Matched Rows

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

Excel Destination Editor for Unmatched Rows

在这里,我们选择“未匹配行”表作为我们的目标 Excel 表。

步骤 11:重复步骤 9。

Excel Destination Columns 18

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

SSIS Lookup Transformation In Full Cache Mode 19

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

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

评论已关闭。