Pentaho Job - 根据条件执行工作

时间:2015-09-29 14:50:24

标签: automation pentaho jobs

我有一个pentaho作业,计划每周运行一次,从一个表中获取数据并填充另一个表。

现在,无论源表是否更新,作业每周都会执行一次。

我想在作业运行之前设置一个条件以查看源是否在上周更新并且仅在源更新时运行作业否则不运行作业。

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。假设您的数据库中有一个存储作业运行日期的表,您可以执行以下操作。

创建一个Job并在其中配置一个参数(我称之为RunJob)。创建一个获取最大运行日期或行数的转换,然后查找上一次运行的运行日期或行计数并进行比较。然后根据比较结果设置作业变量的值。我看起来像这样。

Get Last Run Date

请注意,转换的最后一步是来自作业分支的Set Variables步骤。

然后在你的工作中使用Simple Evaluation步骤来测试变量。我看起来像这样:

enter image description here

请注意,只有在需要运行作业时,我的变换才会设置变量的值,否则它将为NULL。

另请注意,确保在执行表加载后更新上次运行日期或行计数。这就是SQL步骤在工作结束时的作用。

如果你在那里使用了一些JavaScript,你可以用更少的步骤来处理这个问题,但如果我可以避免它,我宁愿不编写脚本。