【问题标题】:Loop through .csv files using Talend使用 Talend 循环遍历 .csv 文件
【发布时间】: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 表而不是截断/加载。

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

【问题讨论】:

    标签: talend


    【解决方案1】:

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

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

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      请使用以下流程,

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

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

      【讨论】:

        猜你喜欢
        • 2014-04-10
        • 2019-07-21
        • 2019-04-11
        • 1970-01-01
        • 2013-04-08
        • 1970-01-01
        • 1970-01-01
        • 2020-06-25
        • 1970-01-01
        相关资源
        最近更新 更多