在pentaho etl工具中删除旧的备份文件

时间:2019-06-11 11:43:33

标签: database file etl

我想知道如何使用水壶作业基于创建日期删除文件。我有一个日志文件夹,其中包含最近四年的日志文件。但是我只想保留上周的日志文件。该作业应删除所有已存在一个月以上的所有日志文件。 pentaho作业中有一个删除文件选项。但是我们如何获取文件创建日期并相应地删除文件。

我用来创建水壶的分步过程:

  1. 获取文件名
  2. 获取系统信息
  3. 添加常量
  4. 数据库查找:在这里,我使用的是postgresql,它使用此数据库查找功能来查找数据库中的实体名称和属性名称以及日期插入数据库的字段。
  5. 选择值:
  6. 计算器
  7. 过滤行
  8. 在结果中设置文件
  9. 使用选项delete处理文件。

我想问一下我是否拥有例如:abcd_2018_06_05.backup的文件名。 我必须使用硬核正则表达式来定义上面的文件名。有人可以帮助我定义它,以便它可以使用正确的(file_name,len(file_name)-7)。

我知道如何在SQL查询中完成此操作,但是在pentaho中我不知道。

1 个答案:

答案 0 :(得分:1)

“获取文件名”步骤还返回上次修改的时间戳。您不能使用它吗?

类似的东西:

获取文件名->获取系统信息(获取当前日期)->计算器(从当前日期减去7天->过滤行(仅保留7天以上的文件)->处理文件:删除(删除旧文件)

或者,使用regex步骤,您可以解析文件名,然后过滤行。