使用会话属性实现 Informatica 更新策略

本文将解释如何使用会话属性实现 Informatica 更新策略。或者,在不使用任何更新策略转换的情况下,通过示例配置会话属性以实现更新策略的步骤。

在 Informatica 中,您可以使用会话属性来实现更新策略。但是,这种方法在实际应用中是最糟糕的方法之一。因为,它不像查找那样,而是会盲目地更新现有记录(即使没有更改),或者插入每一条记录。这种方法对于小表来说是可以接受的。

在本示例中,我们将使用下面显示的(Employee Duplicate)表数据

Source Table 1

目标表是

Destination Table 2

正如您所见,目标表有 1 条记录和两个额外的列。这些额外的列将帮助您了解此方法可能遇到的问题。

使用会话属性实现 Informatica 更新策略

在我们开始配置会话属性之前,首先让我连接到 Informatica 存储库服务。为此,我们需要提供管理员控制台凭据。因此,请提供正确的用户名和密码,然后单击“连接”按钮。

提示:您需要在此处提供安装服务器时指定的管理员用户名和密码。

步骤 1:创建源定义

成功连接后,请导航到源分析器并定义您的源。在本示例中,我们将 SQL Server 数据库中的 [Employee Duplicate] 表用作我们的源定义。请参考数据库源以了解创建源定义所涉及的步骤。

Informatica Update Strategy using Session Properties 3

步骤 2:创建目标定义

请导航到目标设计器并定义目标。在本示例中,我们将使用已创建的 SQL 表(Employee Dup)作为我们的目标定义。请参考使用源定义创建目标表以了解创建目标定义所涉及的步骤。

步骤 3:创建映射

要创建新映射,请导航到菜单栏中的“映射”菜单,然后选择“创建...”选项。

Informatica Update Strategy using Session Properties 5

这将打开“映射名称”窗口,用于为此映射编写唯一的名称。我将输入 m_update_with_session,然后单击“确定”按钮。

提示:请参考映射文章以了解创建映射的过程

将 Employee Duplicate 源定义从“源”文件夹拖放到映射设计器。一旦拖动源,PowerCenter 设计器将自动为您创建源限定符。我建议您参考源限定符转换文章。

接下来,创建一个表达式转换,并将所有字段从源限定符拖到表达式转换。我建议您参考表达式转换文章以获得更好的理解。

Informatica Update Strategy using Session Properties 7

双击表达式转换以添加新字段或编写自定义表达式。从下面的屏幕截图可以看出,我们使用“新建端口”按钮添加了 2 个新列。我们将使用这些新列来存储创建日期和修改日期。

Informatica Update Strategy using Session Properties 8

让我们编写自定义表达式。为此,请单击 CreatedOn 旁边的箭头按钮。

提示:所有这些新列都是输出端口。因此,请勾选 O。

Informatica Update Strategy using Session Properties 9

这将打开表达式编辑器以编写自定义表达式。在这里,我们需要系统日期,所以写 SYSDATE。

Informatica Update Strategy using Session Properties 10

从下面的屏幕截图可以看出,我们为 UpdatedOn 列也做了同样的事情。

Informatica Update Strategy using Session Properties 11

接下来,将目标定义从“目标”文件夹拖放到映射设计器,并将表达式转换与目标定义连接起来。请使用“自动链接..”选项将它们连接起来。

Informatica Update Strategy using Session Properties 12

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

步骤 4:创建工作流

完成映射创建后,我们需要为其创建工作流。PowerCenter 工作流管理器提供两种创建工作流的方法。

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

这将打开“创建工作流”窗口,如下图所示。请提供唯一的名称(wf_update_using_session)并保留默认设置。

Informatica Update Strategy using Session Properties 14

创建工作流后,我们的下一步是为我们的映射创建会话任务。

步骤 4(a):创建会话

有两种类型的会话

在本示例中,我们将创建一个非可重用会话。为此,请导航到“任务”菜单并选择“创建”选项,如下图所示。

请为该会话提供唯一的名称。在这里,我们将其命名为 s_update_using_session。单击“创建”按钮后,将打开一个名为“映射”的新窗口。在这里,我们选择 m_update_with_session。

Informatica Update Strategy using Session Properties 16

双击会话任务将打开“编辑任务”窗口。在“属性”选项卡中

源连接值:此属性将使用 $Source 变量存储关系源信息。因此,单击下面标记的箭头,然后选择 SQL Tutorial 作为源信息。

Informatica Update Strategy using Session Properties 17

目标连接值:此属性将使用 $Target 变量存储关系目标信息。因此,单击下面标记的箭头,然后选择 SQL Test 目标作为目标信息。

Informatica Update Strategy using Session Properties 18

将源行视为:将默认的“插入”更改为“更新”。这意味着,它将执行更新操作,而不仅仅是插入。

Informatica Update Strategy using Session Properties 19

在“映射”选项卡中,我们需要配置源和目标连接。首先,让我们通过单击“源”文件夹中存在的 SQ_EmployeeDuplicate 源来配置源连接。

在“连接”中,单击“关系型”类型旁边的箭头按钮,并使用我们在上一步中创建的连接变量,即 $Source。

Informatica Update Strategy using Session Properties 20

现在,我们需要配置目标连接。所以,单击“目标”文件夹中存在的 EmployeeDup。在“连接”中,单击“关系型”类型旁边的箭头按钮,并使用连接变量 $Target。

Informatica Update Strategy using Session Properties 21

接下来,勾选“更新或插入”。

更新或插入:如果记录已存在,则将对该记录执行 UPDATE。如果记录不存在,则将执行 INSERT。

Informatica Update Strategy using Session Properties 22

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

Informatica Update Strategy using Session Properties 23

接下来,导航到“工作流”菜单并选择“验证”选项来验证工作流。现在,让我开始工作流。为此,请导航到“工作流”菜单,然后选择“启动工作流”选项。

选择“启动工作流”选项后,将打开 PowerCenter 工作流监视器来监视工作流。从下面的屏幕截图可以看出,我们的工作流已成功执行。

Informatica Update Strategy using Session Properties 24

让我们打开 SQL Server Management Studio 来检查是否成功执行了更新策略。如果您查看第一条记录,该记录与插入一起被更新了。简单来说,我们可以说,这种方法只是将所有现有的目标表记录替换为源表记录。

我将更新 EmpID 3 的年收入并添加一条记录。

从下面的屏幕截图可以看出,我们的工作流已成功执行。

Informatica Update Strategy using Session Properties 27

正如您所见,所有记录再次被全新插入。