如何使用Pentaho控制计算版本的重复?

时间:2017-10-17 07:08:10

标签: pentaho etl kettle pentaho-spoon pentaho-data-integration

我有一个表result_slalom,其中数据通过Pentaho的ETL Jobs填充。 当ETL第一次运行时,它会创建版本-1。

现在,如果在新计算后更改数据,它将成为版本-2。

我只需要在计算版本-2中进行更改,并且表result_slalom中不应该有超过2个版本。 (版本1和版本-2)

所以逻辑是: 检查表

中是否存在数据

o

When data exists and existing version is 1, then set the version of new data=2
--> Insert new dataset
o   When data exists and existing version is 2, then set the version of new data=2
--> Update existing dataset
o   When no data exists, then set version = 1
--> Insert new dataset

如何为此逻辑制作Pentaho公式?

目前是:

if([VersionInDB]=1;[Calculationversion];[VersionInDB]+1)

1 个答案:

答案 0 :(得分:0)

dimension lookup/update是一个完全正确的步骤。

此外它还有有效日期:在创建版本2时,版本1接收现在的结束日期,版本2接收现在的开始日期。它可以使用date between start-date and end-date检索历史信息。另外,您只需一个按钮即可为您写create/alter tablecreate index

另一个简洁的解决方案是在表格上设置一个触发器。

忘记在那个方向重新发明轮子。虽然我通常喜欢发明轮子,但是重新开发逻辑会导致你进行无数次的测试和错误。