Pentaho数据集成(DI)获取SFTP服务器目录中的最后一个文件

时间:2013-07-17 16:39:05

标签: etl pentaho kettle data-integration spoon

我正在对Pentaho数据集成进行转换,我在SFTP服务器的目录中有一个文件列表。这个文件以FILE_YYYYMMDDHHIISS.txt格式命名,我的目录看起来像这样:

  • mydirectory中
    • FILE_20130701090000.txt
    • FILE_20130701170000.txt
    • FILE_20130702090000.txt
    • FILE_20130702170000.txt
    • FILE_20130703090000.txt
    • FILE_20130703170000.txt

我的问题是我需要根据其创建日期获取此列表的最后一个文件,以将其传递给其他转换步骤...

如何在Pentaho数据集成中执行此操作?

1 个答案:

答案 0 :(得分:4)

实际上这很简单,因为您的文件名可以按文本排序,排序列表中的最大值将是您最近的文件。

由于文件列表可能很短,您可以使用Memory Group by步骤。分组步骤需要一个单独的列来进行聚合。如果您只有列,并且想要在整个集合中找到最大值,则可以添加具有Add Constants步骤的分组列,并将其配置为添加一个列,例如每行中的整数1。 / p>

将您的Memory Group by配置为1s列上的组,并使用文件名列作为主题。然后只需选择最大分组类型。这将生成包含分组列的单行,删除文件名字段以及包含最大文件名的聚合列。它看起来像这样:

enter image description here