Talend Join

Talend Join 字段有助于您根据键属性执行 join 操作或连接两个源并返回输出。通常,Talend Join 执行左连接(默认)和内连接。但是,通过交换两个表,我们也可以执行右连接。

  • 内连接: 仅返回两个表中匹配的记录。
  • 左连接: 返回左表或主表的所有记录,并匹配右表或查找表中的记录。左连接是默认的 Talend Join。
  • 右连接: 返回右表的所有记录和左表中匹配的记录。

Talend Join 示例

在此示例中,我们使用员工和部门数据来演示 Talend Join。下面的屏幕截图显示了 employee.txt 文件中的数据以及 Department.txt 文件中的数据。

Left and Right Source Tables

首先,拖放 DBConnection 以建立到 SQL 的连接,我们在其中保存 Talend tJoin 的输出。接下来,使用 tDBCommit 提交更改并关闭连接。

Talend Joins 3

从下面的屏幕截图中可以看到,我们已经为上述两个文本文件创建了元数据。因此,我们将两个元数据拖放到 Job 设计中,并选择 tFileInputDelimited 作为组件。

Talend Joins 4

接下来,拖放 Talend tJoin 字段。从 tJoin 的工具提示中可以看到,它在主数据流和查找流之间执行内连接或外连接。

Talend Joins 5

请将 EmployeeData 的 Main row 连接到 tJoin。接下来,将 DepartmentName 连接到 tJoin。您会注意到它显示了 Department name 文件的 row2(Lookup)。Talend 将第一个连接的视为主表,第二个视为查找表。您可以将另一个连接为 tJoin 的第一个表来更改顺序。

Talend Join 组件选项卡有三个选项。

  • 在输出中包含查找列: 请选中此选项以包含查找表中的额外列。例如,在输出中添加查找表中的部门名称。
  • 键定义: 请选择输入键列和查找键列。在这里,您必须选择主表中的公共列或主键以及查找表中的外键。
  • 内连接(带拒绝输出): 默认情况下,Talend tJoin 执行左外连接。请选中此选项以执行内连接。

接下来,单击“编辑模式”按钮,将主表和查找表中的必需列添加到 tJoin 输出中。

Talend Joins 6

在这里,我们添加了 EmployeeData 中的所有列,除了 DeptID。

Check Left Table Schema

接下来,我们从查找表或 Department 表中添加了 Department Name。

Check Right Table Schema

请使用加号按钮添加键定义。我选择 DeptID,因为它是两个文本文件中的公共列。

您可以看到输入键和查找键属性。

Add Input Key and Lookup key attributes

到目前为止,我们还没有包含查找列。因此,请勾选“在输出中包含查找列”选项。它将打开一个新部分以选择输出列和查找列。

  • 输出列: 请选择 tJoin 输出中的列名。
  • 查找列: 请选择查找表或 Department 表中的列名。

请为两者选择 Department Name。

Talend Joins 13

在这里,我们将 Talend tJoin 的输出保存在 SQL 数据库中。因此,使用 DBOutput,它使用现有连接。接下来,我们创建一个新表 Talend_Joins(如果不存在)作为目标表。

Configure tDBOutput

让我们运行 Talend Join 作业。

Run the Talend Left Join Job

我打开 Management Studio 来查看左外连接的结果。

Left Output

Talend 内连接

请选择 tJoin 字段,然后选择 Inner Join rejects row 以在 tLogRow 中显示被拒绝的行。

Right Click on the Row to Change Order

接下来,请勾选“内连接(带拒绝输出)”选项。

Talend Joins 19

运行 Talend Join 作业后,您将看到四个内连接被拒绝的行。

Talend Joins Output

SQL 查询中,您可以看到 内连接 的输出。

Inner Output

Talend 右连接

严格来说,没有右连接。但是,通过更改查找表和主表,我们可以实现目标。因此,我将 DepartmentName 表设置为查找表,方法是右键单击 row2(lookup) 并选择“将此连接设置为主表”选项。

Talend Joins 22

接下来,您需要添加查找表(即 Employee)中的字段到列映射中。

Talend Joins 23

我来运行这个 Talend 右连接作业。

Talend Joins 24

Talend 右连接的结果是

Right Output