使用Pentaho应该如何控制计算版本的重复?
How should I control the duplication of calculation version using Pentaho?
我有一个 table result_slalom,其中数据是通过 Pentaho 的 ETL 作业填充的。
当 ETL 首次运行时,它会创建版本 1。
现在,如果在新计算后数据发生变化,它将变为版本 2。
我只需要在计算版本 -2 中进行更改,table result_slalom 中的版本不应超过 2 个。 (版本 1 和版本 2)
所以逻辑是:
检查 table
中是否存在数据
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)
dimension lookup/update
正是执行此操作的步骤。
此外,它还有有效期:在创建版本 2 时,版本 1 的结束日期为现在,版本 2 的开始日期为现在。使用 where date between start-date and end-date
可以轻松检索历史信息。另外,您有一个按钮可以为您编写 create/alter table
和 create index
。
另一个巧妙的解决方案是在表格上放置一个触发器。
忘记朝那个方向重新发明轮子。虽然我平时喜欢发明轮子,但有一种情况,重新开发逻辑会让你陷入无数的测试和错误中。
我有一个 table result_slalom,其中数据是通过 Pentaho 的 ETL 作业填充的。 当 ETL 首次运行时,它会创建版本 1。
现在,如果在新计算后数据发生变化,它将变为版本 2。
我只需要在计算版本 -2 中进行更改,table result_slalom 中的版本不应超过 2 个。 (版本 1 和版本 2)
所以逻辑是: 检查 table
中是否存在数据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)
dimension lookup/update
正是执行此操作的步骤。
此外,它还有有效期:在创建版本 2 时,版本 1 的结束日期为现在,版本 2 的开始日期为现在。使用 where date between start-date and end-date
可以轻松检索历史信息。另外,您有一个按钮可以为您编写 create/alter table
和 create index
。
另一个巧妙的解决方案是在表格上放置一个触发器。
忘记朝那个方向重新发明轮子。虽然我平时喜欢发明轮子,但有一种情况,重新开发逻辑会让你陷入无数的测试和错误中。