INFORMATICA 转换教程和过滤器转换

⚡ 智能摘要

Informatica 中的转换是映射ping 创建、修改或向目标传递数据的对象,以及筛选转换,是活动对象,它会删除所有不符合单个筛选条件的行。

  • 🔗 连接方式: 连接的转换位于管道中,而不连接的转换则从另一个转换内部调用。
  • 🔁 行数: 主动转换会改变行数;被动转换只会改变行内的值。
  • 🎯 筛选基础知识: 一个条件决定哪些行继续执行,其余行则离开管道。
  • 🧪 示例: 条件 deptno=10 仅将部门 10 的记录加载到 EMP_TARGET 中。
  • 📄 会话日志: 评估结果为 FALSE 的行将被丢弃并记录在会话日志中。
  • 放置: 记ping 靠近源的过滤器会阻止被丢弃的行进入后续转换。

Informatica转换和过滤器转换

什么是转型?

Informatica 中的转换对象是创建、修改或将数据传递给已定义的目标结构(表、文件或任何其他目标)的对象。

在 Informatica 中,数据转换的目的是根据目标系统的要求修改源数据。它还能确保加载到目标系统中的数据质量。

Informatica 提供各种转换来执行特定的功能。

例如,根据源数据进行税收计算、数据清洗操作等。在转换过程中,我们连接端口以传递数据,转换过程通过输出端口返回输出结果。

转型分类

转换分为两类:一类基于连接性,另一类基于行数的变化。首先,我们将讨论基于连接性的转换。

基于连通性的变换类型

  • 互联转型
  • 不相关的变换

在 Informatica 中,映射期间ping与其他变换相连的变换称为连通变换。

例如, 源限定符转换 源表 EMP 连接到筛选转换,以筛选部门员工。

那些不与任何其他变换相连的变换称为不相连变换。

它们的功能是通过在其他转换(例如表达式转换)中调用它们来实现的。这些转换不属于管道的一部分。

当需要对每一行输入数据调用转换或期望其返回值时,应优先使用关联转换。例如,对于每一行中的邮政编码,转换会返回城市名称。

当仅需定期或基于特定条件使用某些功能时,非关联转换非常有用。例如,在税值不可用时计算税款明细。

下图将这两组类别并排展示。

Informatica转换按连接性和行数变化进行分类

基于行数变化的转换类型

  • 主动转型
  • 被动转型

主动转换是指会修改数据行及其输入行数的转换。例如,如果一个转换接收 10 行作为输入,并返回 15 行作为输出,那么它就是一个主动转换。在主动转换中,行中的数据也会被修改。

被动转换是指不会改变输入行数的转换。在被动转换中,输入和输出的行数保持不变,仅修改行级别的数据。

被动转换不会创建新行,也不会删除现有行。

以下是 Informatica 中的转换列表

什么是过滤变换?

筛选转换是一种主动转换,因为它会改变记录的数量。

使用筛选转换,我们可以根据筛选条件筛选记录。

例如,要仅加载部门编号 (deptno) 等于 10 的员工记录,我们可以在映射中添加一个筛选转换。ping 使用筛选条件 deptno=10。因此,只有 deptno=10 的记录才会通过筛选转换,其余记录将被删除。

默认筛选条件为 TRUE,因此新创建的筛选转换会遍历每一行,直到遇到筛选条件为止。返回 FALSE 的每一行都会被丢弃,并且一条消息会被写入会话日志。

如何使用筛选转换

步骤1) 创建一个 地图ping 源为“EMP”,目标为“EMP_TARGET”。

地图ping 在 Map 中打开 EMP 源和 EMP_TARGET 目标。ping 设计师

步骤2) 然后在地图上ping:

  1. 选择“转换”菜单
  2. 选择“创建”选项

从地图的“转换”菜单中选择“创建”选项。ping 设计师

步骤3) 然后在“创建转换”窗口中:

  1. 从列表中选择过滤器转换
  2. 输入转换名称“fltr_deptno_10”
  3. 选择“创建”选项

创建名为 fltr_deptno_10 的“筛选转换”窗口

步骤4) 筛选转换将创建完成。在“创建转换”窗口中,选择“完成”按钮。

地图上已放置新的 fltr_deptno_10 变换ping 帆布

步骤5) 在地图上ping:

  1. 将所有“源限定符”列拖放到“筛选转换”中
  2. 将筛选转换中的列链接到目标表

源限定符端口链接到过滤器转换,然后连接到 EMP_TARGET。

步骤6) Double-单击“筛选”变换以打开其属性,然后:

  1. 选择“属性”选项卡
  2. 点击“筛选条件编辑器”

筛选转换的“属性”选项卡,显示筛选条件行

步骤7) 然后在筛选条件表达式编辑器中:

  1. 输入筛选条件 – deptno=10
  2. 选择“确定”按钮

在表达式编辑器中输入并验证了筛选条件 deptno=10。

步骤8) 现在再次打开“编辑转换”窗口,在“属性”选项卡中,您将看到筛选条件。单击“确定”按钮。

筛选条件 deptno=10 显示在“筛选条件”属性下

现在保存地图ping 创建完成后执行它 会议工作流程目标表中,仅加载 deptno=10 的记录。

这样,您就可以使用筛选转换来筛选源记录。

过滤器 vs 路由器 vs 源限定符过滤器

Informatica 中有三个对象可以删除不需要的行,选错对象会导致性能下降或被拒绝的数据不可见。

摆件 如何删除行 什么时候选择
滤波器变换 每次转换只允许一个条件。返回 FALSE 的行将被删除,并在会话日志中记录。 地图内部应用的一条简单规则ping.
路由器转换 一次遍历即可设置多个分组条件。未匹配任何分组的行将归入默认分组。 必须将行拆分成多个流,或者必须捕获被拒绝的行。
源限定符 过滤 该条件成为从关系型数据源读取的 SQL 语句的 WHERE 子句的一部分。 数据源是关系型数据库,不需要的行绝不能离开数据库。

单个路由器只需读取一次传入数据,而多个过滤器转换测试相同的输入则会导致集成服务对每个转换都重新处理一次数据。源限定符过滤器限制了要执行的操作。tracted 来自源端,而 Filter 转换则限制发送到目标端的内容。

提升过滤器转换性能的技巧

筛选条件会针对到达转换的每一行进行评估,因此取决于对象在映射中的位置。ping 对会话时间有直接影响。

  • 将筛选转换尽可能靠近源,这样不需要的行就不会经过后续的转换。
  • 当数据源是关系型数据库时,将条件推入源限定符,因为数据库过滤行的速度比集成服务快。
  • 保持条件简洁。复杂的表达式可以移至表达式转换,并简化为过滤器测试的单个标志端口。
  • 使用一个路由器代替多个测试相同输入的过滤器转换,这样传入的数据只需读取一次。
  • 请记住,默认条件为 TRUE,因此未配置的过滤器会通过所有请求并隐藏错误。

由于每个被删除的行都会作为消息写入会话日志,因此,目标意外为空的情况通常可以通过读取该日志来解释,而不是重新运行映射。ping.

常见问题

只有一个表达式。该表达式可能使用 AND 和 OR 组合多个测试,但转换过程会评估一个表达式,该表达式会针对每一行输入数据返回 TRUE 或 FALSE。

空结果被视为 FALSE,因此该行将被删除。ping ISNULL 或 IIF 中的端口可以明确地表达意图,防止行在没有明显原因的情况下消失。

是的。字符串比较区分大小写,因此像 SALES 这样的值与 Sales 不匹配。对端口应用 UPPER 或 LOWER 运算符可以确保在源数据不一致时测试结果的可靠性。

活跃的那些。 归一化器 将包含重复列的单个记录转换为多行,Union 操作会合并管道。被动对象始终返回相同的行数。

由于管道中没有链接,因此没有数据行提供给它。另一个转换通过名称和参数调用它,接收一个返回值,并且该对象仅在这些调用时运行。

是的。可重用对象在转换开发器中构建并存储在存储库中,因此一个定义可以添加到多个转换开发器中。 地图pings 并在同一地点进行编辑。

现代集成工具中的机器学习功能可以分析数据源,提出清理和匹配规则,并标记值发生偏移的列,因此设计人员可以从建议的流程开始,而不是从一张白纸开始。

Copilot 可以根据简单的描述生成 IIF、ISNULL 和 DECODE 等表达式语法,从而加快条件编写速度。但每个生成的表达式仍然需要在 Designer 中针对实际数据行进行测试。

总结一下这篇文章: