本 Talend 章节将展示如何将数据从文本文件加载到数据库表中。在 Talend 中,您可以通过两种方式将文本文件数据加载到数据库表中。
- 拖放 `tFileInputDelimited` 来浏览文本文件,并为该文本文件创建模式(或列名)。
- 为文本文件创建元数据并使用该“文件分隔符”元数据。
在此 Talend 将数据从文本文件加载到数据库示例中,我们使用已有的 文件分隔符 元数据作为文本文件源。下图显示了文本文件数据。

Talend 将文本文件数据加载到数据库示例
首先,将“文件分隔符”文件夹中的 `EmpInfo` 拖放到 Talend 作业设计中。从下面的截图可以看到,文件组件属性正在使用存储库值。

接下来,将 `tDBConnection`、`tDBCommit` 和 `tDBOutput` 从调色板拖放到作业设计空间。这里您也可以只使用 `tDBOutput`。它也能工作,但分离打开和关闭连接的标准方式在很多方面都有帮助。
请选择 `tDBConnection`,将类型选择为 Microsoft SQL Server,将属性类型选择为存储库,并从存储库中选择 SQL DB 连接。或者使用 Talend 全局上下文组来填充属性,以便将数据从文本文件加载到数据库。

接下来,我们选择 SQL 作为数据库,并为 `tDBCommit` 选择 `tDBConnection1` 作为组件列表。请勾选“关闭连接”选项,以便在到达此字段时关闭连接。

Talend tDBOutput 配置,用于将数据从文本文件加载到数据库
在 Talend `tDBOutput` 组件选项卡中,我们将数据库更改为 SQL Server,并勾选“使用现有连接”选项。接下来,我们连接了所有字段,如下图所示。我建议您参考“使用上下文组连接 Talend 到 DB”文章。
首先,我们选择 `DBConnection1` 作为组件列表。接下来,点击“浏览”按钮选择现有的 SQL 表(如果存在)。我们没有,所以我们输入了一个新表名 `Talend_EmpInfo`。

表操作:您想对 `Talend_EmpInfo` 表执行的操作。正如您所见,它有很多选项,从名称您可以理解它们的目的。请点击超链接了解 创建表,清除表示 删除 所有记录,以及 截断。
开启身份插入:默认情况下,表不允许您 插入身份值。因此,请勾选此 Talend 选项以在将数据从文本文件加载到数据库时启用它们。
数据操作:您想执行插入、更新、删除、插入或更新、不存在则插入 等操作吗?根据您的需求选择操作。例如,如果您想在没有这样的记录时插入,请选择最后一个选项。

通过点击“同步列”按钮旁边的“编辑模式”按钮,将打开以下窗口。请检查并更改 `tDBOutput` 列的数据库类型、长度和精度。我们已更改了所有 `tDBOutput` 列的长度。

在这里,我们选择在表不存在时创建表,并选择插入作为数据操作。

让我们运行将文本文件数据加载到数据库的作业。

我打开 Management Studio 来检查 Talend 作业是否已将文本文件数据加载到数据库中。

我想我漏掉了一个属性。所以,让我去 `tDBOutput` 组件选项卡。
- 指定身份字段:请勾选此选项以指定已启用身份的列名。
- 身份字段:选择列名 — 例如,`EmpID`。接下来,您必须分配起始值和递增值(步长值)的整数值。

在“模式”页面中,您可以通过勾选列名旁边的“键”选项来将任何列分配为主键。

我将撤销我们所做的所有更改,并将“操作”选项从“插入”更改为“不存在则插入”并运行。好吧!什么都不会发生,因为表中已经有这些记录了。