使用 Talend 循环遍历 .csv 文件

Posted

技术标签:

【中文标题】使用 Talend 循环遍历 .csv 文件【英文标题】:Loop through .csv files using Talend 【发布时间】:2020-04-17 11:00:01 【问题描述】:

一般来说,这里是 Talend/Data Integration 的新手。已经完成了一些简单的事情,例如使用 Talend 将 CSV 加载到 Oracle 表。以下是现在的要求,请寻找一些开始的想法

请求: 在 Unix 环境中有一个文件夹,其中源应用程序每天@5AM 推出 .csv 文件。它们的命名如下

文件名_20200301.csv 文件名_20200302.csv 文件名_20200303.csv . . 以此类推直到今天。

我必须每天早上创建一个 Talend 作业来解析这些 csv 文件,并将它们加载到我的 BI/报告团队可以使用数据的 oracle 表中。该表将用作查找表,并且源确保不在 csv 中发送重复记录。 这些文件通常每天大约有 250-300 行。计划是密切关注,如果将来行数增加,那么可能会考虑将日期的时间范围限制为滚动 12 个月。 目前我有从 2020 年 3 月 1 日开始到今天的文件。 目标 Oracle 模式/表始终相同。

工具:Talend Data Fabric 7.1

我能想到以下步骤,但不知道如何开始 step1) 和 step2) 1) 连接到 Unix 服务器/共享位置。我有服务器详细信息/用户名/密码,但是在元数据中使用什么组件? 2)解析上述位置的文件。我应该使用 TfileList 吗? TFileInputDelimited 从哪里来? 3) 在使用 TDBOutput 推送到 oracle 之前,可能使用 Tmap 进行一些清理/更改数据类型。我过去使用过这些组件,只需要弄清楚如何插入 oracle 表而不是截断/加载。

请有任何想法/其他很酷的方法。我走在正确的道路上吗?

【问题讨论】:

【参考方案1】:

对于第 1 步,您可以使用 tFTPGet 将文件从 Unix 服务器/共享位置保存到本地计算机或作业服务器。

那么对于第 2 步,正如您所提到的,您可以使用 tFileList 和 tFileInputDelimited 的组合

将 tFileList 设置为现在保存文件的目录(基于步骤 1) tFileList 将遍历目录中找到的文件。 接下来,tFileInputDelimited 会逐个解析每个 csv 之后,您可以将其通过 tMap 进行传输,以执行您需要的任何转换并写入您的 Oracle 数据库。您可以执行的另一个可选步骤是 tUnite,这样您就可以一次性写入数据库。

希望这会有所帮助。

【讨论】:

【参考方案2】:

请使用以下流程,

tFTPFileList --> tFileInputDelimited --> tMap --> tOracleOutput

如果您不是从本地服务器中提取文件,请使用 tFileList 而不是 tFTPFileList

【讨论】:

以上是关于使用 Talend 循环遍历 .csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

Python循环遍历CSV文件及其列

遍历 for 循环并将检索到的数据保存在每个循环的唯一 csv 文件中 | Python

循环遍历 csv 文件以创建连接的数据帧。需要在文件名中使用日期为每个文件创建新列

在 spark 中循环遍历 csv 文件的最佳方法

如何设置循环遍历CSV文件中每个值的jmeter测试?

在 Django 模板中循环遍历 CSV 字符串