Informatica 中的 Normalizer 转换是 Active 和 Connected 转换。此 Normalizer 转换用于规范化非规范化数据。或者,您可以简单地说,将表中的单行拆分为多行。
对于此 Informatica Normalizer 转换示例,我们将使用以下数据显示(非规范化源表)

目标表是

Informatica 示例 Normalizer 转换
在开始配置 Normalizer 转换之前,首先让我连接到 repository 服务。为此,请输入您在 安装 服务器时指定的 Admin Console 用户名和密码。
创建 Normalizer 源定义
成功连接后,请导航到 Source Analyzer 并定义您的源。在此 Normalizer 转换示例中,我们使用 SQL Server 数据库中的非规范化源表作为我们的源定义。请参阅 数据库源 文章

创建目标定义
请导航到 Target Designer 并定义目标。在此 Informatica Normalizer 转换示例中,我们使用已创建的 SQL 表(Normalized prosecutors 和 Sales)作为我们的目标定义。请参阅 使用源定义创建 Informatica 目标表 以了解目标定义

创建 Informatica Normalizer 转换映射
要为 Normalizer 转换创建新映射,请导航到菜单栏中的 Mappings 菜单,然后选择 Create.. 选项。

这将打开 Mapping Name 窗口,用于为此映射写入唯一名称 (m_normalizer)。接下来,单击 OK 按钮。

将非规范化源 (DenormalizedSource) 源定义从 Sources 文件夹拖放到映射设计器。拖动源后,Power Center 设计器会自动为您创建 Source Qualifier。
接下来,让我创建一个 Informatica Normalizer 转换。为此,请导航到 Transformation 菜单并选择 Create.. 选项

这将打开 Create Transformation 窗口。请选择 normalizer 转换,并提供唯一名称 (nrm_ProductSale),然后单击 Create 按钮

现在您可以在映射区域中看到 Informatica Normalizer 转换。请记住,您不能简单地将字段从 Source Qualifier 拖放到 Normalizer。因此,我们必须显式地在其中创建字段。

双击 Normalizer 以编辑转换。接下来,转到 Normalizer 选项卡,并使用 New Field 选项添加新字段。

从下面的屏幕截图中,您可以看到我们使用 New Port 按钮添加了 7 个新列。请记住,数据类型和精度都应与输入和输出字段匹配。

接下来,我们选择 Year 列,然后单击 Level 旁边的 Right Shift 按钮。

这将创建一个 Level 字段,并将 Year 列移至 Level 2。

类似地,我们将 Sales 和 Orders 列添加到了 Level 2。在我们的源表中,Year、Orders 和 Sales 重复了 4 次(2014、2015、2016 和 2017)。这就是为什么我们将 Occurs 设置为 4。如果不是这种情况,则使用适当的数字。

现在您可以看到 Informatica Normalizer 转换自动创建的输入和输出端口数量。

您可以看到 Normalizer 具有所有必需的字段名称。现在我们需要将输入和输出连接到它。

首先,我们将 Source Qualifier 连接到 Informatica Normalizer 转换。

接下来,将目标定义从 Targets 文件夹拖放到映射设计器。

使用 Autolink.. 选项将 Normalizer 转换的输出字段连接到目标定义。在关闭 Normalizer 转换映射之前,让我们通过转到 Mapping 并选择 Validate 选项来验证映射。

创建 Informatica Workflow 中的 Normalizer 转换
完成映射创建后,我们必须为其创建工作流。Power Center Workflow manager 提供了两种创建工作流的方法。
在此 normalizer 示例中,我们将手动创建工作流。为此,请导航到 Workflows 菜单并选择 Create 选项。
这将打开 Create Workflow 窗口,用于提供唯一名称 (wf_NormalizerTrans),并保留默认设置。

创建 Normalizer 转换的工作流后,我们的下一步是为我们的映射创建会话任务。
创建 Normalizer 转换会话
有两种类型的会话
对于此 Normalizer 转换示例,我们将创建一个非可重用会话。要创建,请导航到 Tasks 菜单并选择 Create 选项。
请为此 Informatica Normalizer 转换会话提供一个唯一名称。此处,我们将其命名为 s_NormalizerTran。单击 Create 按钮后,将打开一个名为 Mappings 的新窗口。此处,我们选择 m_normalizer。

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

双击 Session 任务将打开 Edit Tasks 窗口。在 Properties 选项卡中
$Source connection value:此属性将把关系源信息存储在 $Source 变量中。因此,单击下面标记的箭头,然后选择 SQL Tutorial 作为源信息。

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

在 mappings 选项卡中,我们必须配置源和目标连接。首先,让我们通过单击 Sources 文件夹中存在的 SQ_DenormalizedSource 源来配置源连接。
在 Connections 中,单击 Relational 类型旁边的 Arrow 按钮,然后使用我们之前创建的 Connection 变量,即 $Source

现在,我们必须配置目标连接。因此,单击 Targets 文件夹中存在的 NormalizedProducts。
在 Connections 中,单击 Relational 类型旁边的 Arrow 按钮,然后使用 Connection 变量 $Target

对 NormalizedSales Target 执行相同操作

接下来,导航到 Workflows 菜单并选择 Validate 选项以验证工作流。

现在,让我开始 Informatica Normalizer 转换工作流。为此,请导航到 Workflows 菜单并选择 Start Workflow 选项。
选择 Start Workflow 选项后,PowerCenter Workflow monitor 将打开以监视工作流。
让我们打开 SQL Server Management Studio 来检查我们是否成功规范化了数据。首先,查看 products 表

让我向您展示 sales。
