SSIS 父子包配置

在本文中,我们将通过示例向您展示如何创建 SSIS 父子包配置。我们已经在之前的文章中解释了包配置列表。因此,请参阅包配置以了解相同内容。

我们在 D 驱动器中有一个 SSIS 文件系统任务文件夹,其中包含四个文本文件。为了演示此 SSIS 父子包配置,我们将把数据从文本文件加载到SQL Server表中。以下屏幕截图将向您展示 Employee1.txt 文件中的数据。

Text File 1

以下屏幕截图显示了 Employee2.txt 文件中的数据。

Text File 2

下面的屏幕截图显示了 Employee3.txt 文件中的数据。

Employee Text File 3

以下屏幕截图显示了 Employee4.txt 文件中的数据。

Employee Text File 4

SSIS 父子包配置示例

在此 SSIS 示例中,我们将首先配置父包,然后是子包。然后我们将创建一个父包变量(包配置)。我们的目标是从子包访问(包含数据)的父包变量。

在 SSIS 中配置父包

在此包中,我们将枚举这些 Employee 文本文件,并将文件名保存在字符串变量中。为此,首先将 Foreach Loop Container 拖放到 Control Flow 区域。

Parent Package Configuration

双击它将打开 Foreach Loop Editor 进行配置。在 Collections 选项卡中,请选择Foreach File Enumerator,因为我们要遍历文件系统中存在的文件。接下来,单击 Browse 按钮从文件系统中选择文件夹名称。

Foreach Loop Container Editor

从下面的屏幕截图中,您可以看到我们正在 D 驱动器中选择 FILE SYSTEM TASK FOLDER。在 Files 部分,我们使用通配符 *.txt,因为我们要枚举文本文件。

Select txt files in Enumerator Configuration

我们的目标是将文件名存储在变量中。为此,请转到 Variable Mappings 部分,选择变量,并将其分配给索引 0。完成后,单击 OK 完成 Foreach Loop Container 的配置。

Foreach Loop Variable Mapping

在 SSIS 中配置子包

将 Data Flow Task 从工具箱拖放到 Control Flow 区域,并将其重命名为 Load data from Text Files to SQL Server table。

Child Package Configuration

双击它将打开 Data Flow 选项卡。接下来,从工具箱将Flat File SourceOLE DB Destination拖放到 Data Flow 区域。

Data Flow Task Configuration Fast and OLE DB

双击 Flat File Source 将打开 Flat File Source Editor 来配置连接管理器设置。如果您已创建 Flat File Connection Manager,请选择它;否则,单击 New 按钮将打开 Flat File Connection Manager Editor。

Configure Flat File Connection Manager

从下面的屏幕截图中,您可以看到我们正在从 File System Task 文件夹中选择 Employee1 文本文件。

Select the First Text File and Format Header and Delimiter

单击 OK 按钮关闭 Flat File Source Connection Manager Editor,然后单击 Flat File Source Editor 的 Columns 选项卡以验证列。在此选项卡中,我们也可以取消选中不需要的列。

Verify Input and Output Columns

双击OLE DB Destination将打开 OLE DB Destination Editor。选择OLE DB Connection Manager,然后选择数据库中存在的 [Parent Child Destination] 表以插入新记录。

Configure OLE DB Destination Editor

单击 Mappings 选项卡以检查源列是否已正确映射到目标列。

Choose Database Table

子包将从文件系统中获取 Employe1 文本文件并将其保存在SQL Server表中。但是,我们打算将文件系统中存在的所有文本文件(Employee1、Employee2、Employee3 和 Employee4)加载到表中。为此,请从 Connection Managers 窗格中选择 Flat File Connection Manager,右键单击它,然后从上下文菜单中选择 Properties 选项。

Parent Child Package Configuration 16

单击 Expressions 属性将打开 Property Expressions Editor。在这里,我们需要配置 Connection String 设置。因此,从下拉框中选择 Connection Manager 属性,然后单击 … 按钮。

Parent Child Package Configuration 17

单击 … 按钮后,将打开 Expression Builder 来构建表达式。在这里,我们将 FileName 变量拖动为表达式。

PropertyExpression Editor

现在,我们需要指定变量值 -> 位置、文件名、扩展名。

使用父包变量进行 SSIS 包配置

对于此 SSIS 父子包配置演示,右键单击 Control Flow 区域将打开上下文菜单。请从其中选择 Package Configurations.. 选项。

Expression Builder for Multiple Text Files

选择 Package Configurations.. 后,将打开一个名为 Package Configurations Organizer 的新窗口。请选中 Enable Package Configurations 以启用配置。接下来,单击 Add 按钮添加新配置。

Parent Child Package Configuration 20

单击 Add 按钮将打开一个向导。第一页是欢迎向导。请选中 Don’t show this page again 以避免出现此页面。

Wizard

Select Configuration type:这是我们必须用来选择配置类型的页面。默认情况下,Integration Service会选择 XML 配置文件。在此示例中,我们正在解释 SSIS 父包变量配置。所以,我选择 Parent Package Variable 作为配置类型,并指定 Parent 变量名称。记住,变量名称应与父包变量名称相同。

有关其余配置,请参阅以下链接。

  1. 环境变量
  2. 注册表项
  3. 服务器配置
  4. XML 配置文件
  5. 环境变量中的 XML 配置文件
SSIS Parent Child Package Configuration Type

Select Target Property:您必须在此处指定目标值。在这里,我们将父包变量(FileName)分配给文件系统连接字符串变量(ChildFileName)的值。这意味着 ChildFileName 的默认值在运行时将被父包变量(FileName)替换。

SSIS Parent Child Package Configuration Target Property

我将 SSIS 配置名称重命名为 Parent Child Package Configuration。然后单击 Finish 按钮关闭向导。

Name

现在您可以看到我们新创建的父包变量配置。

SSIS Parent Child Package Configuration Organizer

接下来,转到父包,并将Execute Package Task从工具箱拖放到 Foreach Container。

SSIS Parent Child Package Configuration 26

双击 Execute Package Task 进行配置。转到 Package 选项卡设置包位置和连接字符串。在此示例中,我们正在执行位于文件系统中的包。因此,请将 ReferenceType 更改为 External reference,并将文件系统选为 Package Source。

接下来,单击 New Connection 打开 File Connection Manager Editor 以在文件系统中选择文件。

提示:请参阅 Execute packages in File System 文章以了解从文件系统执行包的步骤。接下来,请参阅Execute Package Task Project Reference文章以调用同一项目内的包,以及Execute Packages in SQL Server以调用服务器中的包。

SSIS Parent Child Package Configuration 27

从下面的屏幕截图中,您可以看到我们正在从包列表中选择 Child Package。

Choosing the Child Package from File System

单击 OK 选择文件。如果包受到密码保护(通常是),请提供适当的密码。

SSIS Parent Child Package Configuration Connection

单击 OK 完成父包的配置。让我们运行 SSIS 父子包配置包。

Run SSIS Parent Child Package Configuration

从上面可以看到,我们的 Execute Package Task 是 Child Package。

Run SSIS Parent Child Package Configuration

让我们打开Management Studio并检查结果。

Destination Table Data

让我告诉您,如果我们删除父包变量配置会发生什么。

SSIS Parent Child Package Configuration 34

现在您可以看到任务失败了。

Failed to Run