【问题标题】:Strategy to load a set of files in Talend在 Talend 中加载一组文件的策略
【发布时间】:2011-06-09 15:37:29
【问题描述】:

我想知道在 Talend 中解决以下问题的最佳策略是:

  • 我需要从一组分隔文件中加载数据,这些文件存储在一个目录中,名称类似于 (SAMPLE1.DAT, SAMPLE2.DAT, ... , SAMPLEX.DAT)
  • 目标将是 MySQL 数据库中的表
  • 我必须一次加载所有数据,因为完成此任务后我需要处理同一个表中的所有记录

我有点困惑,因为我不知道在 Talend 中是否可行。我看到了 tFileInputDelimited 组件,但没有找到解决方法。

谢谢

【问题讨论】:

    标签: etl talend


    【解决方案1】:

    要从一个目录中读取多个文件,您可以使用 tFileList 组件。它允许您指定目录和文件名模式。目录中与模式匹配的所有文件都将一个接一个地处理。

    您需要使用从 tFileList 组件到描述您想对每个文件做什么的组件的“迭代”链接。在您的情况下,您将从 tFileInputDelimited 组件开始(读取文件)并将其主要输出连接到 tMysqlOutput 组件。默认情况下,MySQL 组件只会将数据附加到现有表中,这样就可以得到你想要的结果。

    在 tFileInputDelimited 组件中,您不会使用固定文件名,而是使用 tFileList 组件为每次迭代设置的变量文件名(可以说是循环变量)。该循环变量的名称可以在工作室的“大纲”视图中看到,通常位于左下角。

    【讨论】:

      【解决方案2】:

      您将使用组件 tFileInputDelimited 到 tMap(可选)到 tmysqlOutput

      第 1 步: 像这样配置一些组件,除了您将使用分隔文件输入:

      第二步:配置分隔文件的组件设置,点击向导的磁盘:

      第 3 步:通过右键单击元数据下的 Db Connection 来配置您的数据库,然后按照向导:

      第 4 步: 右键单击​​每个组件并选择 Row > Main > 拖动到流程中的下一步。

      第 5 步:打开您的 tMap 并将列从文件架构映射到数据库架构。

      第 6 步: 运行该作业,如果您遵循了所有向导,它应该可以工作,如果有错误,只需将鼠标悬停在红色组件上,它通常可以很好地描述错误。您将在作业运行时看到它已传输了多少记录。

      第 7 步: 完成之后,创建一个与输入具有相同架构的 tfiledelimited 输出,右键单击输入选择 Row > Rejects 并将其拖到新的分隔的输出,这是将被tmap 拒绝的记录发送到的位置。

      【讨论】:

        猜你喜欢
        • 2017-03-31
        • 2012-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-09
        • 2011-06-30
        • 2012-06-23
        • 2011-06-12
        相关资源
        最近更新 更多