2011-06-09 21 views
3

我想知道这是一艘在Talend以下问题最好的策略:战略装载一组文件在Talend

  • 我需要从一组分隔的文件存储在一个加载数据(SAMPLE1.DAT,SAMPLE2.DAT,...,SAMPLEX.DAT)名称的目录
  • 目标将是MySQL数据库中的表
  • 我必须一次加载所有数据,因为在执行此任务之后,我需要使用同一表中的所有记录

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

感谢

回答

5

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

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

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

1

你会使用组件tFileInputDelimited到TMAP(可选)为tmysqlOutput

第1步:配置一些组件就是这样,除非您将使用分隔的文件输入: Step 1

步骤2:配置分隔文件的组件设置,单击向导的磁盘:Step 2

第3步:通过在元数据数据库连接右键单击配置数据库,然后按照向导:Step 3

第4步:右键单击每个组件,然后选择行>首页>拖动到下一步流动。

第5步:打开您的tMap并将文件模式中的列映射到数据库模式。

第6步:运行该作业,如果您已遵循所有向导,如果有错误只是悬停在红色组件上,它通常会描述错误,它应该工作。你会看到作业运行了多少记录。

第7步:你已经远远作出后,创建具有相同的架构作为输入tfiledelimited输出,右键点击输入选择行>拒绝并拖动到新的分隔式输出,这是哪里并且将会发送被tmap拒绝的记录。