在本文中,我们将通过一个示例解释如何在Informatica中配置更新策略。对于这个Informatica更新策略示例,我们将使用如下显示的数据(客户表)

目标表是

Informatica中的更新策略示例
在我们之前的文章中,我们已经解释了更新策略转换。在此示例中,我们将向您展示使用此Informatica更新策略转换的另一种方法。
首先,我将连接到存储库服务。为此,请输入您在安装服务器时指定的管理员控制台用户名和密码。
为Informatica中的更新策略创建源定义
成功连接后,请导航到源分析器并定义您的源。在此Informatica更新策略示例中,我们将使用SQL Server数据库中的Customer表作为我们的源定义。请参考数据库源文章。

为Informatica更新策略创建目标定义
请导航到目标设计器并定义Informatica更新策略目标。在此示例中,我们将使用已创建的SQL表(新客户)作为目标定义。请参考使用源定义创建目标表以了解目标定义。

步骤3:为Informatica中的更新策略创建映射
要创建新的Informatica更新策略映射,请导航到“映射”菜单并选择“创建...”选项。
这将打开“映射名称”窗口,用于为此映射编写唯一的名称(m_update_Cust),然后单击“确定”按钮。

将Customer记录源定义从“源”文件夹拖放到映射设计器。拖动源后,Power Center Designer将自动为您创建源限定符。
步骤3(a):创建查找转换
要创建查找转换,请导航到“转换”菜单并选择“创建...”选项。

单击“创建...”选项后,“创建转换”窗口将打开。请从下拉列表中选择“查找转换”,指定唯一的名称(lkp_Cust),然后单击“创建”按钮。

单击“创建...”按钮后,“为查找转换选择查找表”窗口将打开。在这里,我们希望使用目标表作为查找源。
提示:如果您的查找表存在于源中,请选择源。在这里,您也可以从外部源导入。

单击“创建”按钮会将查找转换添加到映射设计器。接下来,从源限定符拖放Customer键。

双击查找转换以配置其设置。“下图”将显示“端口”选项卡中可用选项的列表。从下图可以看出,我们更改了输入端口名称(CustomerKey_lkp)。

在“属性”部分中,我们将“多个匹配项的查找策略”更改为“使用第一个值”。

在“条件”选项卡中,我们添加了一个条件 CustmerKey = CustmerKey_lkp。以下条件指出查找转换将检查查找输入源(即Customer Key)是否等于现有Customer Key。

步骤3(b):创建表达式转换
要创建表达式转换,请从“转换”菜单中选择“创建...”选项。如您所见,我们分配的名称为Exp_Cust。

现在,我将从源限定符添加所有字段到表达式转换,并将Key列从查找转换中添加。

如您所见,我们更改了列名(从查找中添加的列)。接下来,我们想使用“新建列”按钮添加一个标志字段。

对于此标志字段,我将通过单击箭头来编写表达式。请记住,如果您想基于某个条件执行删除或其他操作,请使用多个标签。

这里,ISNULL用于检查它是否为Null。
在指定表达式下方,检查来自查找字段的Customer key列是否为空。如果为空,则返回1,否则返回0。表达式为 IIF(ISNULL(CustomerKey_lkp), 1, 0)。 请参考IIF以了解IIF的语法。

单击确定以应用设置。

步骤3(c):创建路由器转换
请参考路由器转换文章以了解创建它的步骤。

创建完成后,请通过拖动所需字段来连接表达式转换与路由器转换。从下图可以看出,我们正在添加除查找列字段之外的所有字段。

双击路由器转换以添加组。使用“添加新组”按钮添加所需的组。

从下图可以看出,我们创建了一个用于插入新记录的组,另一个用于更新现有记录的组。

让我们通过单击箭头按钮为第一个组提供表达式或条件。它将打开表达式编辑器来编写自定义表达式。在这里,我们想要客户的Customer key为Null,这意味着不存在的记录。

对于更新组,我们编写的表达式为 Flag = 0,这意味着所有现有记录。

完成属性配置后,单击 OK 关闭转换窗口。

步骤3(d):创建Informatica更新策略转换
请参考Informatica中的更新策略转换文章以了解创建它的步骤。我将添加两个更新策略。
- Insert_Cust:用于将新记录插入目标表。
- Update_Cust:用于更新目标表中的现有记录。

将字段从Insert组(Flag = 1)拖到Insert_Cust,并将字段从Update组(Flag = 0)拖到Update_Cust。

双击Insert_Cust更新策略进行配置。我将更新策略表达式更改为0或DD_INSERT。

双击Update_Cust更新策略进行配置。我将更新策略表达式更改为1或DD_UPDATE以进行更新。

接下来,将目标定义从“目标”文件夹拖放到映射设计器。重复相同的操作一次,并自动链接字段。

在我们关闭映射之前,让我们通过转到“映射”菜单栏并选择“验证”选项来验证它。
步骤4:为Informatica中的更新策略创建工作流
在完成Informatica更新策略映射的创建后,我们必须为其创建工作流。Power Center Workflow Manager提供了两种创建工作流的方法。
在本示例中,我们将手动创建工作流。为此,请导航到“工作流”菜单并选择“创建”选项。这将打开“创建工作流”窗口。提供一个唯一的名称(wf_Customers),并保留默认设置。

创建工作流后,我们的下一步是为我们的映射创建会话任务。
步骤4(a):为Informatica中的更新策略创建会话
有两种类型的会话
对于此Informatica更新策略示例,我们将创建一个非可重用会话。从“任务”菜单中选择“创建”选项。
请为此会话(s_Customers)提供一个唯一的名称。单击“创建”按钮后,将打开一个名为“映射”的新窗口。在这里,我们选择m_update_Cust。

双击会话任务将打开“编辑任务”窗口。在“属性”选项卡中。
$Source连接值:此属性将把关系源信息存储在$Source变量中。因此,单击下方标记的箭头,然后选择Source作为源信息。

$Target connection value:此属性将在$Target变量中存储关系目标信息。因此,单击下方标记的箭头,并选择下方目标作为目标信息。

在“映射”选项卡中,我们必须配置Informatica更新策略的源和目标连接。首先,让我们通过单击“源”文件夹中存在的SQ_Customer源来配置源连接。
在“连接”中,单击关系类型旁边的箭头按钮,并使用我们之前创建的连接变量,即$Source。

现在,我们必须配置目标连接。因此,单击“目标”文件夹中存在的NewCustomers。在“连接”中,单击关系类型旁边的箭头按钮,并使用连接变量$Target。对NewCustomers1重复相同的操作。

接下来,我将启动Informatica更新策略工作流。为此,请导航到“工作流”菜单并选择“启动工作流”选项。

让我们打开SQL Server Management Studio,以验证我们是否已成功执行更新策略。
