Informatica中从文本文件加载数据到SQL Server

在本文中,我们将通过一个示例向您展示如何在Informatica中从文本文件加载数据到SQL Server。对于这个Informatica从文本文件加载数据到SQL Server的示例,我们将使用下面显示的文本文件数据(Employee表)。

TB Connect to a CSV File

目标表为File Destination。如您所见,这是一个空表。

Empty Destination Table 2

Informatica中从文本文件加载数据到SQL Server

在我们开始配置Informatica从文本文件(或平面文件)加载数据到SQL Server之前。首先,通过提供在安装服务器时指定的管理控制台用户名和密码,连接到Informatica存储库服务。关于其他源和目标,请点击这里

步骤1:为Informatica从文本文件加载数据到SQL Server创建源定义

请导航至源分析器来定义您的源。正如我们之前所说,我们将使用本地文件系统中的Employee表作为我们的源定义。所以,请导航至Source菜单并选择Import from File...(从文件导入...)。

Import Text File to Informatica Source

选择Import from File...(从文件导入...)选项后,将打开一个名为Open Flat File(打开平面文件)的新窗口。请从您的本地文件系统中选择Employee.txt文件,然后点击Open(打开)按钮。我建议您参考平面文件源文章来理解后续步骤。

Select The Text File

点击Open(打开)按钮后,将打开一个名为Flat File Import Wizard(平面文件导入向导)的新弹出窗口。

  • 选择最能描述您数据的“文件类型”:请指定您的列值是如何分隔的(“分隔符”或“固定宽度”)选项。我们的文本由逗号分隔,因此我们选择“分隔符”选项。
  • 从第一行导入字段名:“此选项允许我们从文本文件的第一行导入列名。如果您的文本文件包含作为第一行数据的列名,就像我们的示例文件一样,请勾选此选项。”
Flat File Import Wizard

步骤2

  • 在“分隔符”部分,请选择文本文件中使用的分隔符。我们的文本由逗号分隔,所以我们选择“逗号”。
  • 在“文本限定符”部分,我们选择“无引号”,因为我们的平面文件没有任何引用。请根据您的需求进行更改。
Select the Text Qualifier and delimiter

在这里,我们可以编辑列名、数据类型、长度或精度、小数位数和宽度。通常我们不这样做,但如果您想这样做,可以。

Choose text file column data types

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

Load Data From Text File Source Analyzer

步骤2:为Informatica从文本文件加载数据到SQL Server创建目标定义

请导航至目标设计器来定义目标。在此示例中,我们将使用现有表作为我们的目标定义。所以,转到Targets(目标)菜单并选择Import from Database...(从数据库导入...)选项。

Load Data From Text File Target Designer

请选择连接到数据库的ODBC连接。要创建一个新的,请参考ODBC连接文章。

从下面的屏幕截图中,您可以看到我们从SQLTest数据库中选择File Destination表。您可以参考使用源定义创建Informatica目标表来理解目标定义。

Select Table to Load Data From Text File

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

Load Data From Text File Target Designer 11

步骤3:创建映射以从文本文件加载数据到SQL Server

要为Informatica从文本文件加载数据到SQL Server创建新映射,请导航至菜单栏中的Mappings(映射)菜单,然后选择Create...(创建...)选项。

这将打开“Mapping Name”(映射名称)窗口,用于为此映射(m_load_text_to_SQL)输入一个唯一的名称,然后点击OK(确定)按钮。

Assign Mapping Name

将Employee源定义从Flat File Sources(平面文件源)文件夹拖放到映射设计器。一旦拖动源,PowerCenter设计器将自动为您创建Source Qualifier Transformation(源限定符转换)。

Mapping Designer

接下来,将目标定义(File Destination)从Targets(目标)文件夹拖放到映射设计器。接下来,使用Autolink..(自动链接..)选项将源限定符连接到目标定义。

在关闭映射之前,让我们通过转到“映射”菜单栏并选择“验证”选项来保存和验证映射。

Load Data From Text File to SQL Server in Informatica 15

步骤4:创建工作流以从文本文件加载数据到SQL Server

在完成映射创建后,我们必须为它创建工作流。Power Center 工作流管理器提供两种创建工作流的方法。

在此示例中,我们将手动创建工作流。为此,请导航至Workflows(工作流)菜单并选择Create(创建)选项。

这将打开“Create Workflow”(创建工作流)窗口。请提供一个唯一的名称(wf_load_text_to_SQL),并保留默认设置。

workflow name

一旦我们创建了Informatica从文本文件加载数据到SQL Server的工作流,下一步就是为我们的映射创建一个会话任务。

步骤4(a):创建一个会话以在Informatica中从平面文件加载数据到SQL Server

有两种类型的会话

对于此Informatica从平面文件加载数据到SQL Server的示例,我们创建了一个非可重用会话。要创建非可重用会话,请导航至Tasks(任务)菜单并选择Create(创建)选项。请为此会话提供一个唯一的名称(s_load_text_to_sql),如下图所示。

Task Name

点击Create(创建)按钮后,将打开一个名为Mappings(映射)的新窗口。在此选择您要与此会话关联的映射,即m_load_text_to_sql。

Select Load Data From Text File to SQL Server in Informatica Mapping

请链接Start Task(开始任务)和Session Task(会话任务)。接下来,双击Session task(会话任务)将打开Edit Tasks(编辑任务)窗口。在Properties(属性)选项卡中,我们配置了$Target connection value(目标连接值)。此属性将关系源信息存储在$Target变量中。

Load Data From Text File Target Connection Value

因此,点击我们上面标记的箭头,并选择Test作为目标信息。

Choose Load Data From Text File to SQL Server Database

在mappings(映射)选项卡中,我们需要配置源和目标连接。首先,让我们通过点击FileDestination来设置目标连接。

在Connections(连接)中,点击Relational type(关系类型)旁边的箭头按钮,并使用我们之前创建的连接变量,即$Target。

您可以根据需要将Target Load type(目标加载类型)从Bulk(批量)更改为Normal(正常)。

现在,我们需要配置源连接。请点击Sources(源)文件夹中存在的SQ_Employee。

  • Source Filetype(源文件类型):您是否使用Direct source(直接源)。Indirect(间接)表示源来自多个文本文件。
  • Source File directory(源文件目录):它将使用默认目录,但您可以提供完整路径来更改目录。在这里,我们将文件目录更改为D:\File Examples\
  • Source filename(源文件名):它会自动检测。如果没有,请指定带扩展名的文件名。
Load Data From Text File to SQL Server in Informatica 27

接下来,导航至Workflows(工作流)菜单并选择Validate(验证)选项来验证工作流。现在,让我通过在Workflows(工作流)菜单中选择Start Workflow(启动工作流)选项来启动工作流。

Start Load Data From Text File to SQL Server in Informatica Workflow

选择Start Workflow(启动工作流)选项后,Workflow monitor(工作流监视器)将打开以监视工作流。从下面的屏幕截图中,我们的Informatica从文本文件加载数据到SQL Server的工作流已成功执行,没有错误。

Load Data From Text File to SQL Server in Informatica Workflow successful

让我们打开SQL Server来检查我们是否已成功地将数据从源传输过来。

Destination table