Informatica 中的联接器转换与示例

什么是 Joiner Transformation?
连接转换是一种主动式连接转换,它允许您在 Informatica 中创建连接。使用连接转换创建的连接类似于数据库中的连接。连接转换的优势在于,它可以为异构系统(不同的数据库)创建连接。
在连接转换中,我们将使用两个数据源进行连接。这两个数据源被称为
- 主源
- 详细来源
在连接器转换的属性中,您可以选择哪个数据源可以作为主数据源,哪个数据源可以作为明细数据源。
执行过程中,主数据源会被缓存到内存中以备连接之用。因此,建议选择记录数较少的数据源作为主数据源。主管道保存在两个缓存中:一个索引缓存用于存储连接条件中使用的值,另一个数据缓存用于存储其余的行数据。
连接器转换中的连接类型
“属性”选项卡上的“连接类型”属性决定了如何处理找不到匹配项的行。可以使用“连接器”转换创建以下连接。
- 主外连接 – 在主外连接中,连接会返回详细信息源中的所有记录,并且仅返回主源中匹配的行。
- 详细外连接 – 在明细外连接中,仅从明细源返回匹配的行,并返回主源中的所有行。
- 全外连接 – 在完全外连接中,将返回来自两个源的所有记录。
- 普通连接 – 在普通连接中,只会从两个数据源返回匹配的行。
主外连接和详细外连接等效于左外连接 SQL每种类型都保留一个数据源中的每一行数据,而只保留另一个数据源中匹配的行。下表列出了这四种类型及其对应的 SQL 语句。
| 联接类型 | 主目录保留的行 | 保留详细信息的行 | SQL 等效项 |
|---|---|---|---|
| 普通连接 | 仅匹配 | 仅匹配 | 内部联接 |
| 主外连接 | 仅匹配 | 所有行 | 详细信息源的左外连接 |
| 详细外连接 | 所有行 | 仅匹配 | 主源的左外连接 |
| 全外连接 | 所有行 | 所有行 | 全外连接 |
连接类型是一个属性,而不是结构选择,因此以后可以更改它而无需重建映射。ping 或重新连接任何端口。
如何在 Informatica 中使用连接器转换
在本例中,我们将使用连接器转换连接 emp 表和 dept 表。请在 Map 中完成以下八个步骤。ping 设计师。
步骤1) 使用以下脚本在数据库中创建一个新的目标表 EMP_DEPTNAME,并将该表导入到 Informatica 目标中。
步骤2) 创建一个新的 地图ping 导入源表“EMP”和“DEPT”以及我们在上一步创建的目标表。这三个定义现在都显示在画布上,如下图所示。
步骤3) 从“转换”菜单中,选择“创建”选项。然后在如下所示的“创建转换”窗口中,
- 选择连接器转换
- 输入转换名称“jnr_emp_dept”
- 选择创建选项
步骤4) 将所有列从 来源限定符 连接到 Joiner 转换。如屏幕截图所示,两条管道现在都已链接到 jnr_emp_dept。
步骤5) Double 单击“连接器”变换,然后在“编辑变换”窗口中单击“连接器”变换。
- 选择条件选项卡
- 点击添加新条件图标
- 在主列表和明细列表中选择 deptno
“条件”选项卡现在包含对 deptno 的单个连接条件。
步骤6) 然后在同一个窗口中
- 选择属性选项卡
- 选择普通连接作为连接类型
- 选择“确定”按钮
接下来显示的是设置了连接类型的“属性”选项卡。
为了优化性能,我们将主数据源分配给记录数较少的源表管道。要执行此操作:
步骤7) Double 单击“连接器”变换以打开“编辑变换”窗口,然后
- 选择端口选项卡
- 选择要设为主列的特定来源的任意列
- 选择“确定”
“端口”选项卡会将选定的管道标记为主管道,如下所示。
步骤8) 将连接器转换中的相关列链接到目标表。ping 现在通过连接从两个源运行到 EMP_DEPTNAME。
现在保存地图ping 创建完成后执行它 会议 和 工作流程 为此,将使用 Informatica Joiner 创建连接,并从两个表中获取相关详细信息。
连接器转换属性
“属性”选项卡包含的信息不仅限于连接类型。以下设置控制连接使用的内存量以及缓存文件的写入位置。
| 设置 | 它控制什么 |
|---|---|
| 联接类型 | 普通、主外层、详细外层或完整外层。决定保留哪些不匹配的行。 |
| 加入条件 | 将主从端口对列表与等于运算符进行比较。多个条件通过“与”运算符组合使用。 |
| 已排序输入 | 声明两个管道已按条件端口排序到达,这使得集成服务能够最大限度地减少磁盘输入和输出。 |
| 主排序 | 主源数据的排序顺序,与已排序的输入一起使用。 |
| 缓存目录 | 索引和数据缓存文件所在的目录。默认值为 $PMCacheDir 进程变量。 |
| 连接器数据缓存大小 | 用于存储主行数据的数据缓存大小。默认值为“自动”,允许集成服务自动调整其大小。 |
| 连接索引缓存大小 | 用于存储主条件值的索引缓存大小。默认值为“自动”。 |
| 转型范围 | 将连接应用于每个事务、所有传入数据或行级范围。 |
排序输入是首选设置。当两个管道都按条件端口排序到达时,集成服务无需在匹配开始前保存整个主源,这与在以下情况下应用的原理相同: 性能调优 其他缓存转换。
连接器转换规则和限制
有些限制只有在地图显示时才会出现。ping 已经过验证,因此在端口连接之前了解它们成本更低。
- 唯平等。 连接条件使用等于运算符比较端口。大于、小于或不等于等比较运算符在条件中不被接受。
- 数据类型匹配。 条件中的两个端口必须具有相同的数据类型。设计器会对此进行验证,因此必须先转换不匹配的列,通常是在表达式转换中完成。
- 上游没有更新策略。 当任一输入管道包含更新策略转换时,不能使用连接器转换。
- 无序列 Generator 就在它之前。 连接序列 Generator 不支持在连接器上游立即进行转换。
- 缓存无法关闭。 主管道始终会被缓存,这就是为什么较小的源应该放在主端,以及为什么缓存大小在大连接时很重要。
连接三个数据源需要两个链接在一起的连接器转换,因为每个转换都只接受一个主管道和一个从管道。如果第二个数据源是一个逐行读取的小型参考表,则需要进行以下操作: 查找转换 通常来说,这种设计比较简单。







