Talend tMap 查找

本 Talend 部分讨论了 Talend tMap 查找模型、查找匹配模型和存储临时数据选项。总的来说,当我们查找表中只有一条匹配记录时,更改 Talend tMap 查找匹配模型是没有意义的。但是,当查找表中有多条匹配记录时,我们必须指定为特定 ID 选择哪一条。匹配模型选项完全控制这一点。

从下面的部门表文本文件中可以看出,该文件有部门 ID 2 和 6 的多个条目。

Department Table with Duplicates

我们使用了员工和部门文本文件来演示 Talend tMap 查找匹配模型。

two text inputs

首先,我们将 tMap 添加到作业设计器中,并将员工主输入行连接到 tMap。接下来,我们将部门主行添加到 tMap,它将自动转换为查找表。

Add Talend tMap to workflow to perform Lookup

接下来,我们添加了 tLogRow,将 tMap 的新输出连接到它,并将其命名为 Lookup_Output。我建议您参考 Talend tJointMap Joins 文章来理解。

new Output Name window

下面的屏幕截图显示了最终的 Talend tMap 查找匹配模型作业。请双击 tMap 以打开 tMap 架构编辑器。

Talend tMap Lookup final job view

Talend tMap 查找匹配模型示例

首先,我们连接了员工表和部门表的键或公共列,即 DeptID。接下来,我们将所有列拖到了 Lookup_output。

Configure the match model

让我们运行 Talend tMap 查找匹配作业,看看输出。

Run the Talend tMap Lookup match model job

从上面的屏幕截图中,您可以看到部门 ID 2 加载了 Developer。对于部门 ID 6,它加载了 Sales 作为部门名称。

请单击“设置”选项卡,然后单击“匹配模型”的浏览按钮以打开可用选项。设置将决定 tMap 查找需要选择的匹配记录。如您所见,它有四个选项,默认选项是“唯一匹配”。因此,默认的“唯一匹配”模型选择查找表中的最后一条匹配记录。

Options - All Rows, Unique, First, and All Matches

让我将匹配模型更改为“首次匹配”,然后运行 Talend tMap 查找匹配模型作业以查看结果。

Talend tMap Lookup Match

下面的 tMap 查找图像已为部门 ID 2 和 6 的部门名称选择了第一个匹配的记录。

Talend tMap Lookup 9

这次我们将 tMap 匹配模型选项更改为“所有匹配”。

Talend tMap Lookup 10

从下面的查找匹配模型图像中,它显示了部门 ID 的所有匹配的部门名称。

Run the Talend tMap Job to perform Lookup

如果您将 Talend tMap 匹配模型更改为“所有行”,Talend 将显示两个表的笛卡尔积。

Cartesian product

Talend tMap 查找模型设置

单击 tMap 查找模型设置旁边的浏览按钮将显示可用的查找模型选项。

  • 仅加载一次:查找表中的所有记录将在开始时加载,并且 tMap 查找将使用这些记录。
  • 每次行加载:此查找表将加载并处理主行中的每条记录。
  • 每次行加载(缓存):与上面相同,但它将从缓存中处理。
Talend tMap Lookup Model Settings

类似地,tMap 还有一个称为“存储临时数据”的选项。将其从默认的 False 更改为 True,您可以将查找表存储在本地文件系统中,它将充当临时数据。

Talend tMap Lookup Configuration

如果启用“存储临时数据”选项,那么您需要选择“临时数据目录”路径来保存此临时数据。我建议您在处理数百万条记录时尝试此选项。

Save the settings in a folder