Informatica 中的查找转换(示例)

⚡ 智能摘要

Informatica 中的查找转换读取关系表、平面文件、视图或同义词,并返回每个传入行的匹配值,其工作原理类似于连接,其中一端是查找源。

  • 🔎 比赛的胜负取决于场上形势: “条件”选项卡包含比较条件,例如 DEPTNO = DEPTNO1,该条件决定返回哪个查找行。
  • 🧪 示例: 七图ping 设计步骤从 DEPT 中提取部门名称到 EMP_DEPTNAME 目标,而无需 Joiner。
  • ???? 已连接或未连接: 连接查找位于管道中,而非连接查找则通过带有 :LKP 限定符的表达式调用。
  • 默认被动模式: 返回单行数据会使转换保持被动状态,返回所有匹配行数据会使转换变为主动状态。
  • ♻️ 可重用对象: 勾选“使可重用”会将一个转换转换为多个映射的对象。ping可以分享。
  • ⚠️ 单向推广: 已提升为可重用的转换不能降级,因此确认提示值得仔细阅读。

Informatica 中的查找转换

什么是查找转换?

查找转换是一种用于查找源、源限定符或目标以获取相关数据的转换。本质上,它是一种连接操作,其中一个连接表是源数据,另一个连接表是查找表。查找源本身可以是关系表、视图、同义词或平面文件。

该转换在被动模式下,对于每一行传入的数据,只返回一行。从 PowerCenter 9.x 版本开始,也可以创建返回符合条件的所有行的转换,此时它是一个主动转换。转换的模式选择在创建时确定,之后无法更改。

有两种方法可以将其放置在地图上。ping并且,该差值决定了返回值如何到达管道的其余部分。

方面 关联查找 未连接的查找
职务 它位于管道内部,并接收来自先前转换的值。 它位于管道之外,并由表达式调用。
它的名称 成排的物料流入其输入端口 使用 :LKP 引用限定符调用
返回值 多个输出端口可以连接到下游。 一个返回值会返回给调用表达式。
典型用途 每一行都需要查找列。 仅某些行需要查找,或者同一个查找操作在多个地方被调用。

在前几个主题中,我们使用了 连接器转型 将“emp”表和“dept”表连接起来,提取部门名称。本节将使用查找转换来实现这一目标。

如何创建查找转换

以下是在 Informatica 中创建查找转换的步骤。

步骤1) 创建一个新地图ping 以 EMP 为源,EMP_DEPTNAME 为目标。映射ping 设计画布随后包含源、其源限定符和目标定义。

地图ping 设计画布包含 EMP 源、其源限定符和 EMP_DEPTNAME 目标

步骤2) 使用“转换”菜单创建新的转换,然后在“创建转换”窗口中:

  1. 选择查找转换作为转换
  2. 输入转换名称“lkp_dept”
  3. 选择创建选项

在“创建转换”窗口中,选择“查找转换”,并输入名称 lkp_dept。

步骤3) 这将打开查找表窗口。在此窗口中:

  1. 选择源按钮
  2. 选择 DEPT 表
  3. 选择“确定”按钮

在选中“源”按钮并高亮显示“DEPT”表的情况下,选择“查找表”对话框并选中“DEPT”表。

步骤4) 查找转换将使用 DEPT 表的列创建,现在单击“完成”按钮。lkp_dept 对象现在包含 DEPTNO、DNAME 和 LOC 作为查找端口。

使用 DEPT 表列作为查找端口创建查找转换 lkp_dept

步骤5) 将源限定符中的 DEPTNO 列拖放到查找转换中,这将在查找转换中创建一个新列 DEPTNO1。然后将查找转换中的 DNAME 列链接到目标表。

查找转换将根据 DEPTNO1 值查找并返回部门名称。DEPTNO1 是输入端口,用于存储员工部门编号,而 DEPTNO 仍然是从 DEPT 查找表中读取的端口。

DEPTNO 从源限定符链接到 lkp_dept,DNAME 链接到 EMP_DEPTNAME 目标

步骤6) Double 单击“查找”转换。然后在“编辑转换”窗口中:

  1. 选择条件选项卡
  2. 将条件列设置为 DEPTNO = DEPTNO1
  3. 选择“确定”按钮

在“编辑转换”窗口的“条件”选项卡中,输入条件 DEPTNO = DEPTNO1

步骤7) 将源限定符中的其余列链接到目标表。

剩余的源限定符列链接到 EMP_DEPTNAME 目标表

现在,保存 地图ping 创建会话和工作流后执行它。此映射ping 将使用查找转换来获取部门名称。

查找转换设置为在 DEPT 表中查找,连接条件基于部门编号。如果 DEPT 表中有多行满足条件,则“属性”选项卡上的“多重匹配查找策略”属性决定返回哪个值。

可重复使用的转换

法线变换是属于映射的对象ping 并且可以在该地图内使用ping 仅此而已。然而,通过使转换可重用,它可以在多个映射中重复使用。pings.

例如,可以根据员工编号获取员工详细信息的查找转换可以在多个映射中使用。ping凡需要员工详细信息的地方。

通过使用可重用的转换,可以减少重复创建相同功能的重复工作。每个映射ping 它保存着一个存储对象的实例,因此对可重用转换所做的更改会影响到所有这些对象。

如何创建可重用的转换

以下是创建可重用转换的步骤。

步骤1) 打开地图ping 正在发生转变,我们在这里进行转变 秩变换 可重用的。

地图ping 在 Designer 中打开了即将实现可重用的 Rank 转换。

步骤2) Double 点击变换以打开编辑变换窗口。然后:

  1. 在窗口中选择“转换”选项卡
  2. 选中复选框以使转换可重复使用
  3. 在确认窗口中选择“是”
  4. 在转换属性窗口中选择“确定”。

在“编辑转换”窗口的“转换”选项卡中,选中“设为可重用”复选框。

这将使转换可重用。第三项中的确认窗口值得仔细阅读,然后再接受:将转换提升为可重用是在 Designer 中进行的单向更改,之后对象无法降级。其中单个映射ping 需要创建自己的副本,按住 Ctrl 键将可重用对象拖到画布上,即可创建一个不可重用的实例。

常见问题

缓存会将查找源一次性加载到内存中,这样每行数据都可以在本地进行匹配,而无需查询数据库。缓存适用于小型或重复读取的查找源;未缓存的查找则会为每一行数据查询查找源。

当一侧是小型参考表且只需要少量列时,尤其是在从多个位置读取同一参考数据时,应使用查找表。连接器则适用于真正连接两个大型异构管道的情况。

“多重匹配”属性的查找策略决定了其处理方式。它可以报告错误,也可以返回第一个、最后一个或任何匹配值。选择返回所有匹配值会激活转换,并且必须在创建时设置。

通常是因为查找源数据量很大。未缓存的查找操作每行数据都会查询数据库一次,而缓存的查找操作则会预先支付构建成本。移除未使用的查找端口并缩小查找查询的范围都有助于提高效率。

现代数据集成工具利用机器学习技术,为源表和参考表之间的列匹配提供建议,并标记那些占用大量会话时间的查找操作。但所有建议仍需与实际数据进行比对验证。

副驾驶会协助显示地图周围的文字。ping 它并非在设计器画布上显示,而是查找 SQL 覆盖、参数文件和运行工作流的脚本。由于它无法访问存储库,因此必须手动验证端口名称和条件。

可重用的转换是多个映射共享的单个存储对象。pings. mapplet 是一组可重用的转换,具有输入和输出组,它打包了一整段逻辑,而不是一个步骤。

查找源中没有行满足这些输入行的条件。由于比较是精确的,请检查两个端口之间是否存在尾随空格、大小写差异和数据类型不匹配。

总结一下这篇文章: