Pentaho数据集成问题,根据某些情况加载水壶

时间:2018-09-17 11:07:15

标签: pentaho kettle spoon

我有一个Pentaho数据集成工作,该工作包括以下步骤:

生成具有初始日期(例如2010年1月1日)且限制为10 * 366 = 3660行的十年的行步骤。

下一步是增加天数的增量器。

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

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

所有这些都很好。

现在,我有一个要求,我不希望此表仅在10年内保持静态。如果日期表中的最大日期是从今天起2年,则我想在表中再加载10年的日期。

对于上面的示例,自2010年起第一个加载日期为10年,那么我应该能够在2018年再加载10年,在2028年再加载10年,依此类推。

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

我如何:

1)从日期表中读取最大日期? -我知道该怎么做。

2)使用读取日期与今天进行比较。如果最长日期是从今天起2年以内,那么我将在表中填充接下来的10年。

我不知道如何在Pentaho数据集成中执行上述2。非常感谢您提供解决此问题的方法。

1 个答案:

答案 0 :(得分:0)

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

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

由于上一步可能会为您提供多行,因此您需要使用Unique Row(无字段提供)或Group by(无字段分组)。

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

enter image description here 现在,如果您的要求比这稍微复杂一点,我强烈建议您使用职位来安排您的转换。