使用 tMap 组件连接两个数据源

在本教程中,我们将探索如何使用 tMap 组件轻松连接两个数据源。

本教程使用的是 Talend Open Studio Data Integration 第 6 版。

1. 创建新作业并添加源组件

在新作业中,添加影片元数据文件到作业,作为 tFileInputDelimited 组件。

注意:影片文件最后一列为 directorID。在本教程中,您将使用此列将影片文件连接到导演文件的 directorID 列。

2. 基于名为 directors.txt 的单一文件创建新的元数据文件,并将其添加为第二个源

  1. 创建名为 directors 的新的分隔元数据文件
  2. 如需指定示例文件,单击 File(文件)字段旁的 Browse(浏览),从本地磁盘中选择文件 txt,并单击 Open(打开)。
  3. 此文件中的字段分隔符为逗号。如需更改分隔符,在 Field Separator(字段分隔符)下拉列表中,选择 Comma(逗号)。
  4. 如需刷新文件显示以体现所做更改,单击 Refresh Preview(刷新预览)。
    注意:此文件仅包含两列:directorID 和 directorName。
  5. 将列名称变更为 directorID 和 directorName,并将 directorName 字段长度变更为 40,新的元数据文件 directors 0.1 将显示在项目存储库的 Metadata (元数据)下。您现在可以将影片文件的 directorID 列连接到导演文件的 directorID 列。
  6. 将导演元数据文件作为第二个源输入添加到作业。                                                                                                                                    

3. 添加并配置 tMap 组件,用以连接两个源组件

  1. 向作业设计器添加一个 tMap 组件。
  2. 如需在两个组件间建立到 tMap 组件的数据流,首先将影片链接到 tMap_1 组件,然后将 directors 链接到 tMap_1。
  3. 如需重命名源组件和 tMap 组件间的链接,单击链接两次并键入 movies。使用同样的方式将另一个链接重命名为 directors。
  4. 双击 tMap 组件即可打开组件向导。注意:在向导的左侧部分,tMap 组件会将影片和导演同时列为到 tMap 组件的输入。
  5. 如需创建新的输出数据流,在 tMap 向导的输出部分,单击 [+],将新输出命名为 joinedOutput 并单击 OK(确定),即可创建空白输出数据流。
  6. 如需将 movieID、title、releaseYear 和 url 字段添加到输出数据流,从电影输入中选择这四个字段并将其拖拽至输出数据流。使用同样的方式从导演输入中将 directorName 字段添加到输出数据流。
  7. 如需配置连接,选择影片表中的 directorID 列并将其拖拽到导演表的 directorID 列。                                                                     

4. 将结果存储至文件

  1. 为指定输出目标,向作业设计器添加一个 tFileOutputDelimited 组件,并将 tMap 组件的 joinedOutput 输出链接到该组件。
  2. 如需配置输出组件,请在组件的 Component(组件)视图中指定输出文件的路径和名称。同时将输出文件的标头行包括在内。
  3. 如需运行作业,在 Run(运行)视图中单击 Run(运行)。
  4. 如需查看 moviesComplete.csv 文件,导航到创建文件的文件夹并打开文件。

注意:不显示导演姓名的影片不包含 directorID。

ETL 工具的默认行为:

  • 将显示驱动表的所有行。
  • 不满足连接条件的输出字段将为空白。这是一种“左外连接”。相反,您也可以在 tMap 中将连接配置为内连接,仅显示满足连接条件的行。