Informatica 中的 Normalizer 转换(附示例)

什么是 Normalizer 转换?

Normalizer 是一种活动转换,用于将单行转换为多行,或将多行转换为单行。它是表示数据的智能且更有条理的方式。

如果单行中有多列重复数据,则可以将其拆分为多行。有时我们会遇到多列重复的数据。例如:

学生姓名 九年级分数 十年级分数 十一年级分数 十二年级分数
学生 1 50 60 65 80
学生 2 70 64 83 77

在这种情况下,班级分数列在四列中重复出现。使用 normalizer,我们可以将其拆分为以下数据集。

学生姓名 分数
学生 1 9 50
学生 1 10 60
学生 1 11 65
学生 1 12 80
学生 2 9 70
学生 2 10 64
学生 2 11 83
学生 2 12 77

第一步:使用脚本创建源表“sales_source”和目标表“sales_target”,并将它们导入Informatica

下载上面的 Sales_Source.txt 文件

第二步:创建一个映射,其中包含源“sales_source”和目标表“sales_target”

Normalizer Transformation in Informatica

第三步:从转换菜单创建一个新转换

  1. 选择 normalizer 作为转换
  2. 输入名称,“nrm_sales”
  3. 选择创建选项。

Normalizer Transformation in Informatica

第四步:创建转换,然后选择完成选项

Normalizer Transformation in Informatica

第五步:双击 normalizer 转换,然后

  1. 选择 normalizer 选项卡
  2. 单击图标创建两列
  3. 输入列名
  4. 将 sales 的出现次数设置为 4,将 store name 的出现次数设置为 0
  5. 选择“确定”按钮

Normalizer Transformation in Informatica

将在转换中生成列。由于我们将出现次数设置为 4,您将看到 4 个 sales 列。

Normalizer Transformation in Informatica

第六步:然后在映射

  1. 将源限定符的四列季度分别链接到 normalizer 列。
  2. 将 store name 列链接到 normalizer 列
  3. 将 normalizer 中的 store_name 和 sales 列链接到目标表
  4. 将 GK_sales 列从 normalizer 链接到目标表

Normalizer Transformation in Informatica

保存映射并在创建会话和工作流后执行它。对于商店的每个季度销售额,normalizer 转换将创建一个单独的行。

我们的映射的输出将是:

商店名称 季度 销售
德里 1 150
德里 2 240
德里 3 455
德里 4 100
孟买 1 100
孟买 2 500
孟买 3 350
孟买 4 340

源数据包含 QUARTER1、QUARTER2、QUARTER3 和 QUARTER4 这几个重复列。借助 normalizer,我们已重新排列数据以适应 QUARTER 的单列,并且为一条源记录创建了四个目标记录。

这样,您就可以对数据进行规范化,并为单条数据源创建多条记录。