如何在Informatica中按ID对比Error表与Success表的行数?
在Informatica中对比Error与Success表ID=1的行数
实现步骤:
配置源组件
- 分别引入Error表和Success表作为数据源,确认两张表的
ID字段可正常读取。
- 分别引入Error表和Success表作为数据源,确认两张表的
添加聚合转换计算单ID行数
- 为每个源表单独创建聚合转换:
- Error表聚合:设置分组字段为
ID,新增计算端口ERR_CNT,表达式为COUNT(*),同时添加过滤器条件ID=1(提前过滤非目标ID,提升效率)。 - Success表聚合:设置分组字段为
ID,新增计算端口SUCC_CNT,表达式为COUNT(*),同样添加过滤器ID=1。
- Error表聚合:设置分组字段为
- 为每个源表单独创建聚合转换:
连接两个聚合数据流
- 添加全外连接(Full Outer Join)转换,连接条件设为
ERR.ID = SUCC.ID,确保其中一张表无ID=1数据时仍能输出结果。
- 添加全外连接(Full Outer Join)转换,连接条件设为
用表达式转换处理空值与对比逻辑
- 新增端口处理空值(避免无数据时显示NULL):
FINAL_ERR_CNT:IIF(ISNULL(ERR_CNT), 0, ERR_CNT)FINAL_SUCC_CNT:IIF(ISNULL(SUCC_CNT), 0, SUCC_CNT)
- 新增对比结果端口
COMPARE_RESULT,表达式示例:IIF(FINAL_ERR_CNT > FINAL_SUCC_CNT, 'Error行数多于Success', IIF(FINAL_ERR_CNT < FINAL_SUCC_CNT, 'Success行数多于Error', '两行数相等'))
- 新增端口处理空值(避免无数据时显示NULL):
配置目标输出
- 创建目标表/文件,包含
ID、FINAL_ERR_CNT、FINAL_SUCC_CNT、COMPARE_RESULT字段,将表达式转换的输出映射到目标即可。
- 创建目标表/文件,包含
内容的提问来源于stack exchange,提问作者K_mns
相关产品推荐
相关产品推荐

