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”和目标表“sales_target”
第三步:从转换菜单创建一个新转换
- 选择 normalizer 作为转换
- 输入名称,“nrm_sales”
- 选择创建选项。
第四步:创建转换,然后选择完成选项
第五步:双击 normalizer 转换,然后
- 选择 normalizer 选项卡
- 单击图标创建两列
- 输入列名
- 将 sales 的出现次数设置为 4,将 store name 的出现次数设置为 0
- 选择“确定”按钮
将在转换中生成列。由于我们将出现次数设置为 4,您将看到 4 个 sales 列。
第六步:然后在映射中
- 将源限定符的四列季度分别链接到 normalizer 列。
- 将 store name 列链接到 normalizer 列
- 将 normalizer 中的 store_name 和 sales 列链接到目标表
- 将 GK_sales 列从 normalizer 链接到目标表
保存映射并在创建会话和工作流后执行它。对于商店的每个季度销售额,normalizer 转换将创建一个单独的行。
我们的映射的输出将是:
商店名称 | 季度 | 销售 |
---|---|---|
德里 | 1 | 150 |
德里 | 2 | 240 |
德里 | 3 | 455 |
德里 | 4 | 100 |
孟买 | 1 | 100 |
孟买 | 2 | 500 |
孟买 | 3 | 350 |
孟买 | 4 | 340 |
源数据包含 QUARTER1、QUARTER2、QUARTER3 和 QUARTER4 这几个重复列。借助 normalizer,我们已重新排列数据以适应 QUARTER 的单列,并且为一条源记录创建了四个目标记录。
这样,您就可以对数据进行规范化,并为单条数据源创建多条记录。