Informatica 中的聚合器转换及示例
什么是聚合转换?
聚合转换是一个活动转换,用于执行求和、平均等聚合计算。
例如,如果您想按部门计算所有员工的薪资总和,我们可以使用聚合转换。
聚合操作是对一组行执行的,因此需要一个临时占位符来存储所有这些记录并执行计算。
为此,使用了聚合器缓存内存。这是分配给聚合转换以执行此类操作的临时主内存。
在此示例中,我们将按部门计算薪资总和。为此,我们需要一个新列来存储此总和。因此,首先,我们将准备一个新列。
步骤 1) 创建一个新的数据库目标表,例如,“sum_sal_deptwise”,使用以下脚本。在下一步中,您将在“目标”文件夹下看到新创建的数据库目标表。
下载上面的 Create_table_sal_deptwise.txt 文件
步骤 2) 创建一个新的映射“m_ sum_sal_deptwise”。
为了创建新映射,我们需要源表 (EMP) 和目标表 (sum_sal_deptwise) 都在映射设计器中,为此我们需要:
- 将目标表“sum_sal_deptwise”导入到映射中。
- 导入源表“emp”。
步骤 3) 在映射中,
- 从源限定符中,删除 empno、ename、job、mgr、hiredate 和 comm 列,仅留下 deptno 和 sal 列。
- 使用工具箱菜单创建一个新的聚合转换,如下图所示。单击聚合图标,将创建一个新的聚合转换。
步骤 4) 将源限定符 (SQ_EMP) 中的 SAL 和 DEPTNO 列拖放到聚合转换中
步骤 5) 双击聚合转换以打开其属性,然后
- 在转换中添加一个新端口
- 将端口名称重命名为 SUM_SAL
- 将此新端口的数据类型更改为 double
- 通过选中输出端口的复选框,将此端口设为输出端口。
- 单击表达式选项
步骤 6) 在表达式窗口中
- 添加表达式 - sum(SAL),您需要编写此表达式。
- 选择“确定”按钮,这将返回编辑转换窗口。
步骤 7) 在编辑转换窗口中,通过选中 deptno 列旁边的复选框来选择“GroupBy”选项,然后单击“确定”(通过选择按 deptno 分组,我们指示 Informatica 按 deptno 分组薪资)
步骤 8) 将聚合转换中的 deptno 和 sum_sal 列链接到目标表
现在保存映射并在为该映射创建新会话后执行它。目标表将包含按部门划分的薪资总和。这样,我们就可以使用聚合转换来计算聚合结果。