基于某些条件加载水壶的 Pentaho 数据集成问题

Pentaho data integration issue with loading a kettle based on some condition

我有一个 Pentaho 数据集成作业,它包含以下步骤:

生成具有初始日期(例如 2010-01-01)和 10 年 10*366 = 3660 行的限制的行步骤。

下一步有一个增量器来增加天数。

下一步使用此信息即。初始日期、限制和增量器,使用 javascript 函数为从 2010 年 1 月 1 日开始的 10 年的每一天生成日期。

最后一步使用生成的日期加载 table。

一切正常。

现在,我有一个要求,我不希望这个 table 是静态的,日期只有 10 年。如果日期 table 中的最大日期是距今天 2 年,我想在 table 中加载 10 年以上的日期。

对于上面的例子,第一次加载加载日期是从 2010 年开始的 10 年,我应该能够在 2018 年再加载 10 年,接下来的 10 年在 2028 年等等。

实现此目标的最佳方法是什么?

我怎样才能:

1) 从我的日期 table 读取最大日期? - 我知道怎么做。

2) 使用阅读日期与今天进行比较。如果最大日期在从今天算起的 2 年内,我会用接下来的 10 年填充 table。

我不知道如何在 Pentaho 数据集成中执行上面的 2。非常感谢任何有关解决此问题的方法的指示。

您需要读取变量中的当前日期(今天)。例如,使用 Get system info 步骤。

然后您可以使用 Filter Rows 步骤比较这两个字段,最大日期和今天。

由于上一步可能给你多行,你需要使用 Unique Row(没有提供字段)或者 Group by(没有按字段分组)。

如果有任何一行通过,那么您将启动生成 10 年的过程。由于您不能从一步跳到第二步 Generate row,您必须使用 Transformation executor 来启动您当前存在的转换。

现在,如果您的要求比这稍微复杂一点,我强烈建议您使用 jobs 来协调您的转换。