如何在Informatica PowerCenter中配置映射标记重复与唯一记录
在Informatica PowerCenter中标记重复记录的Mapping实现方案
需求说明
基于Name和Location的组合判断记录是否重复:重复记录的Duplicate字段赋值Y,唯一记录赋值N,最终输出包含该标记列的结果表。
源表示例
Name,Location Vivek,India Vivek,UK Vivek,India Vivek,USA Vivek,Japan
目标表示例
Name,Location,Duplicate Vivek,India,Y Vivek,India,Y Vivek,Japan,N Vivek,UK,N Vivek,USA,N
Mapping创建步骤与逻辑
1. 基础配置
- 导入源表结构,创建目标表:新增
Duplicate字段,类型设为字符型,长度1。
2. 组件组合与配置
第一步:用聚合转换器统计重复次数
把源数据接入聚合转换器,按Name和Location设置分组(Group By端口选这两个字段),然后新建一个计算端口Count_Rec,用表达式COUNT(*)统计每组的记录数量。
第二步:关联统计结果到原始记录
这里有两种常用方式:
- 方式一:查找转换器
把聚合转换器的输出作为查找源,以Name和Location为关联键,将原始源数据(如果源数据无序,建议先过一遍排序转换器,按Name和Location排序,提升效率)接入查找转换器,获取每条记录对应分组的Count_Rec值。 - 方式二:连接转换器
把源数据拆成两个分支:一个分支去聚合统计次数,另一个分支保留原始数据;再用连接转换器将两个分支按Name和Location关联,拿到每条记录的Count_Rec值。
第三步:用表达式转换器生成标记
在表达式转换器里新建Duplicate端口,写如下表达式:
IIF(Count_Rec > 1, 'Y', 'N')
这个表达式会根据分组计数判断:次数大于1就标记Y,否则标记N。
3. 组件连接流程
推荐的完整流程:
源 → 排序转换器(可选) → 聚合转换器 → 查找/连接转换器 → 表达式转换器 → 目标表
核心逻辑总结
先通过聚合统计每个Name+Location组合的出现次数,再把次数关联回每条原始记录,最后根据次数是否大于1生成重复标记。
内容的提问来源于stack exchange,提问作者Vivek Patil
相关产品推荐
相关产品推荐

