在本文中,我们将向您展示如何在 Informatica 中将多个文本文件加载到 SQL Server,并附有示例。对于这个 Informatica 将多个文本文件加载到 SQL Server 的示例,我们将使用本地文件系统中的四个文本文件,即 D:\FILE SYSTEM TASK FOLDER\

Employee1.txt 文件中的数据

Employee2.txt 文件中的数据

以下屏幕截图将向您展示 Employee3.txt 文件中的数据

Employee4.txt 文件中的数据

Employee 文件中的数据

目标表是 Multiple File Destination。如您所见,它是一个空表

在 Informatica 中将数据从多个文本文件加载到 SQL Server
在我们开始配置 Informatica 以将数据从多个文本文件(或平面文件)加载到 SQL Server 之前。首先,通过提供您在安装 Server 时指定的管理员控制台用户名和密码,连接到Informatica 存储库服务。有关更多源和目标 >> 点击这里!
步骤 1:创建 Informatica 源定义以加载多个文本文件到 SQL Server
成功连接后,请导航到源分析器来定义您的源。要加载多个文件的数据,我们必须提供适用于所有文本文件的源定义。为此,我们使用 Employee1,但您可以尝试任何一个(Employee2、3 或 4)。
要加载本地文件系统中的数据,请导航到“源”菜单并选择“从文件导入...”选项

选择“从文件导入...”选项后,将打开一个名为“打开平面文件”的新窗口。请从本地文件系统选择 Employee1.txt 文件。我建议您参考平面文件源文章以了解后续步骤。

点击“确定”按钮后,将打开一个名为“平面文件导入向导”的新弹出窗口。在这里,我们的文本由逗号分隔,所以我们选择“分隔”选项。接下来,我们勾选“从第一行导入字段名”选项。因为我们的文本文件包含列名作为第一行

在“分隔符”部分,我们选择“逗号”。在“文本限定符”部分,我们选择“无引号”,因为我们的平面文件没有引号。

在这里,我们可以编辑列名、数据类型、长度或精度、小数位数和宽度。请根据您的要求更改长度、宽度或精度。

从下面的屏幕截图中,您可以看到我们在 Informatica 中新创建的平面文件源

步骤 2:创建 Informatica 目标定义以加载多个文本文件到 SQL Server
请导航到目标设计器来定义目标。在此示例中,我们将使用现有的 SQL 表作为目标定义。因此,转到“目标”菜单并选择“从数据库导入...”选项。

请选择将 Informatica 连接到 SQL Test Database 的 ODBC 连接。要创建一个新的,请参考ODBC 连接文章。
从下面的屏幕截图中,我们从 SQL Test 数据库中选择 Multiple File Destination 表。您可以参考 使用源定义创建 Informatica 目标表。

现在您可以看到目标表带有必需的列名。

步骤 3:创建映射以将数据从多个文本文件加载到 SQL Server
要创建新映射,请导航到菜单栏中的“映射”菜单,然后选择“创建...”选项。

它会打开“映射名称”窗口,以便为此映射编写一个唯一的名称。我写 m_load_multifiles_to_sql 并点击 OK 按钮。

将 Employee1 源定义从“源”文件夹拖放到映射设计器。拖动源后,Power Center 设计器会自动为您创建源限定符转换。

接下来,将目标定义(Multiple File Destination)从“目标”文件夹拖放到映射设计器。然后,使用 Autolink.. 选项将源限定符连接到目标定义。
在关闭映射之前,让我们通过转到“映射”菜单栏并选择“验证”选项来保存和验证映射。

步骤 4:创建工作流以将数据从多个文本文件加载到 SQL Server
完成创建 Informatica 将多个文本文件加载到 SQL Server 映射后,我们必须为此创建工作流。Power Center Workflow manager 提供两种创建工作流的方法。
在此示例中,我们将手动创建工作流。为此,请导航至“工作流”菜单并选择“创建”选项。

它会打开“创建工作流”窗口。请提供唯一的名称(wf_load_multifiles_to_SQL),并保留默认设置。

创建工作流后,我们的下一步是为我们的映射创建会话任务。
步骤 4(a):创建会话以将数据从多个文本文件加载到 SQL Server
有两种类型的会话
对于这个 Informatica 将多个文本文件加载到 SQL Server 的示例,我们将创建一个非可重用会话。要创建非可重用会话,请导航到“任务”菜单并选择“创建”选项

请为此会话提供一个唯一的名称(s_load_multifiles_to_sql)。

点击“创建”按钮后,将打开一个名为“映射”的新窗口。在这里,您必须选择要与此会话关联的映射(即 m_load_multifiles_to_sql)。

请链接“开始任务”和“会话任务”。

双击会话任务将打开“编辑任务”窗口。在“属性”选项卡中,我们配置了 $Target connection value。此属性将关系源信息存储在 $Target 变量中。

因此,单击上面标记的箭头,然后选择 SQL Test 作为目标信息。

在“映射”选项卡中,我们必须配置源和目标连接。首先,让我们通过单击 FileDestination 来设置目标连接。
在“连接”中,单击“关系型”类型旁边的“箭头”按钮,并使用我们在上一步中创建的连接变量,即 $Target

您可以根据需要将目标加载类型从批量更改为常规。

现在,我们必须配置源连接。请单击“源”文件夹中的 SQ_Employee1。请将“源文件类型”选项从“直接”更改为“间接”。

- 源文件目录:它将使用默认目录,但您可以提供完整路径来更改目录。这里我们将文件目录更改为 D:\File System Task Folder\
- 源文件名:请指定您放置文件名的文件(包含扩展名)(Employee.txt)。

接下来,导航到“工作流”菜单并选择“验证”选项来验证工作流。现在,让我通过在“工作流”菜单中选择“启动工作流”选项来启动工作流。

让我们打开 SQL Server Management Studio,检查我们是否已成功将数据从多个文本文件传输。

我将修改 Employee 文本文件。这意味着 Informatica 需要从 Employee1.txt 文件和 Employee4.txt 文件加载数据

请勾选“截断目标表”选项以删除目标表(Multiple File Destination)中的现有记录。我建议您参考 SQL Truncate 来理解该概念。

让我们打开 SQL Server Management Studio。从下面的屏幕截图中可以看到,Informatica 已从 Employee 1 和 Employee 4 文本文件加载了数据。
