SSIS 中的缓存转换

SSIS 中的缓存转换用于从各种数据源读取数据,例如平面文件、Excel 工作表和 ADO.NET 数据源。然后将这些数据源中的数据保存在 .caw 文件中。

默认情况下,查找转换使用 OLE DB 连接管理器作为查找引用表。我们也可以使用其他数据源,但必须通过 SSIS 缓存转换间接使用它们。

在实际应用中,我们使用缓存转换将引用表保存为 .caw 格式。然后,在 SSIS 中,使用 缓存连接管理器执行 查找转换

SSIS 缓存转换示例

在此示例中,我们将使用 SSIS 缓存转换将 Excel 文件中的数据复制到缓存文件(.caw 扩展名)。

步骤 1:从工具箱将数据流任务拖放到控制流中,并将其重命名为“缓存转换”。

Cache Transformation in SSIS 2

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

步骤 2:从工具箱将 Excel 源拖放到数据流区域。双击它以配置 Excel 文件。

Cache Transformation in SSIS 3

点击“浏览”按钮从本地硬盘选择源文件。

Cache Transformation in SSIS 4

从上面的屏幕截图中,您可以看到我们选择了本地驱动器上的COUNTRIES LOOKUP.xls 文件。

注意:如果您的 Excel 文件第一行包含列名,请勾选“第一行包含列名”选项。

Cache Transformation in SSIS 5

步骤 3:单击列选项卡以验证列。在此选项卡中,我们可以取消勾选不需要的列。

从上面的屏幕截图中,您可以看到“Country Key”未被勾选,因为我们不需要使用密钥列。我们只需要“Country Name”作为查找列,“Country Code”列作为附加输出列。

将蓝色箭头从 Excel 源拖到缓存转换,以对源数据执行转换。

步骤 4:双击 SSIS 缓存转换以进行配置。

我们在项目中尚未创建 SSIS 缓存连接管理器,请单击“新建”按钮进行配置。

步骤 5:在 SSIS 缓存转换编辑器的“常规”选项卡中,

  • 连接管理器名称:默认值为“缓存连接管理器”。但您可以根据项目需求更改连接管理器的名称。
  • 描述:为缓存连接管理器提供有效的描述。但现在,我们保留默认值。
  • 使用文件缓存:如果勾选此选项,连接管理器会将缓存数据写入文件。
  • 浏览:此按钮用于浏览现有文件或创建扩展名为 .caw 的新文件。
Cache Transformation in SSIS 8

从上面的缓存转换屏幕截图中,您可以看到我们使用了文件缓存选项。接下来,我们选择了位于本地驱动器上的 lookup.caw 文件。

接下来,选择 SSIS 缓存转换的“列”选项卡。

步骤 6:“列”选项卡将显示来自源数据的所有可用列及其数据类型、长度、精度和小数位数等。除了这些选项外,还有一个重要的属性称为“索引位置”。

  • 将未用于查找的列的“索引位置”设置为 0。在此示例中,我们不想对“Country Code”列执行查找操作。因此,将此列的索引位置设置为 0。
  • 将用于查找的列的“索引位置”设置为 1。在此示例中,我们希望对“Country Name”列执行查找操作。因此,将此列的索引位置设置为 1。
Cache Transformation in SSIS 9

点击“确定”完成 SSIS 缓存连接管理器的配置。

步骤 7:点击 SSIS 缓存转换的“列”选项卡,以验证所有列是否已正确映射。如果未正确映射,请将“输入列”映射到适当的“目标列”。否则,您将获得错误的数据。

点击“确定”并运行 SSIS 缓存转换包,以在本地驱动器上创建缓存文件。

Cache Transformation in SSIS 11

检查 SSIS 缓存转换的结果。