INFORMATICA 转换教程和过滤器转换

什么是转型?
Informatica 中的转换对象是创建、修改或将数据传递给已定义的目标结构(表、文件或任何其他目标)的对象。
在 Informatica 中,数据转换的目的是根据目标系统的要求修改源数据。它还能确保加载到目标系统中的数据质量。
Informatica 提供各种转换来执行特定的功能。
例如,根据源数据进行税收计算、数据清洗操作等。在转换过程中,我们连接端口以传递数据,转换过程通过输出端口返回输出结果。
转型分类
转换分为两类:一类基于连接性,另一类基于行数的变化。首先,我们将讨论基于连接性的转换。
基于连通性的变换类型
- 互联转型
- 不相关的变换
在 Informatica 中,映射期间ping与其他变换相连的变换称为连通变换。
例如, 源限定符转换 源表 EMP 连接到筛选转换,以筛选部门员工。
那些不与任何其他变换相连的变换称为不相连变换。
它们的功能是通过在其他转换(例如表达式转换)中调用它们来实现的。这些转换不属于管道的一部分。
当需要对每一行输入数据调用转换或期望其返回值时,应优先使用关联转换。例如,对于每一行中的邮政编码,转换会返回城市名称。
当仅需定期或基于特定条件使用某些功能时,非关联转换非常有用。例如,在税值不可用时计算税款明细。
下图将这两组类别并排展示。
基于行数变化的转换类型
- 主动转型
- 被动转型
主动转换是指会修改数据行及其输入行数的转换。例如,如果一个转换接收 10 行作为输入,并返回 15 行作为输出,那么它就是一个主动转换。在主动转换中,行中的数据也会被修改。
被动转换是指不会改变输入行数的转换。在被动转换中,输入和输出的行数保持不变,仅修改行级别的数据。
被动转换不会创建新行,也不会删除现有行。
以下是 Informatica 中的转换列表
什么是过滤变换?
筛选转换是一种主动转换,因为它会改变记录的数量。
使用筛选转换,我们可以根据筛选条件筛选记录。
例如,要仅加载部门编号 (deptno) 等于 10 的员工记录,我们可以在映射中添加一个筛选转换。ping 使用筛选条件 deptno=10。因此,只有 deptno=10 的记录才会通过筛选转换,其余记录将被删除。
默认筛选条件为 TRUE,因此新创建的筛选转换会遍历每一行,直到遇到筛选条件为止。返回 FALSE 的每一行都会被丢弃,并且一条消息会被写入会话日志。
如何使用筛选转换
步骤1) 创建一个 地图ping 源为“EMP”,目标为“EMP_TARGET”。
步骤2) 然后在地图上ping:
- 选择“转换”菜单
- 选择“创建”选项
步骤3) 然后在“创建转换”窗口中:
- 从列表中选择过滤器转换
- 输入转换名称“fltr_deptno_10”
- 选择“创建”选项
步骤4) 筛选转换将创建完成。在“创建转换”窗口中,选择“完成”按钮。
步骤5) 在地图上ping:
- 将所有“源限定符”列拖放到“筛选转换”中
- 将筛选转换中的列链接到目标表
步骤6) Double-单击“筛选”变换以打开其属性,然后:
- 选择“属性”选项卡
- 点击“筛选条件编辑器”
步骤7) 然后在筛选条件表达式编辑器中:
- 输入筛选条件 – deptno=10
- 选择“确定”按钮
步骤8) 现在再次打开“编辑转换”窗口,在“属性”选项卡中,您将看到筛选条件。单击“确定”按钮。
现在保存地图ping 创建完成后执行它 会议 和 工作流程目标表中,仅加载 deptno=10 的记录。
这样,您就可以使用筛选转换来筛选源记录。
过滤器 vs 路由器 vs 源限定符过滤器
Informatica 中有三个对象可以删除不需要的行,选错对象会导致性能下降或被拒绝的数据不可见。
| 摆件 | 如何删除行 | 什么时候选择 |
|---|---|---|
| 滤波器变换 | 每次转换只允许一个条件。返回 FALSE 的行将被删除,并在会话日志中记录。 | 地图内部应用的一条简单规则ping. |
| 路由器转换 | 一次遍历即可设置多个分组条件。未匹配任何分组的行将归入默认分组。 | 必须将行拆分成多个流,或者必须捕获被拒绝的行。 |
| 源限定符 过滤 | 该条件成为从关系型数据源读取的 SQL 语句的 WHERE 子句的一部分。 | 数据源是关系型数据库,不需要的行绝不能离开数据库。 |
单个路由器只需读取一次传入数据,而多个过滤器转换测试相同的输入则会导致集成服务对每个转换都重新处理一次数据。源限定符过滤器限制了要执行的操作。tracted 来自源端,而 Filter 转换则限制发送到目标端的内容。
提升过滤器转换性能的技巧
筛选条件会针对到达转换的每一行进行评估,因此取决于对象在映射中的位置。ping 对会话时间有直接影响。
- 将筛选转换尽可能靠近源,这样不需要的行就不会经过后续的转换。
- 当数据源是关系型数据库时,将条件推入源限定符,因为数据库过滤行的速度比集成服务快。
- 保持条件简洁。复杂的表达式可以移至表达式转换,并简化为过滤器测试的单个标志端口。
- 使用一个路由器代替多个测试相同输入的过滤器转换,这样传入的数据只需读取一次。
- 请记住,默认条件为 TRUE,因此未配置的过滤器会通过所有请求并隐藏错误。
由于每个被删除的行都会作为消息写入会话日志,因此,目标意外为空的情况通常可以通过读取该日志来解释,而不是重新运行映射。ping.









