我有一个表result_slalom,其中的数据是通过五旬节的ETL乔布斯填充。当ETL第一次运行时,它会创建版本-1。
现在,如果数据在新的计算之后被更改,它就变成了version-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我如何为这个逻辑建立我的五旬节公式?
目前的情况是:
if([VersionInDB]=1;[Calculationversion];[VersionInDB]+1)发布于 2017-10-17 07:42:58
dimension lookup/update正是这样做的一个步骤。
此外,它还具有有效日期:在创建version2时,version1接收结束日期为now,version2接收开始日期为now。它使使用where date between start-date and end-date检索历史信息变得很容易。另外,只有一个按钮可以为您编写create/alter table和create index。
另一个巧妙的解决方案是在表上设置一个触发器。
忘记在那个方向上重新发明轮子。虽然我通常喜欢发明轮子,但在这种情况下,重新开发逻辑将导致大量的测试和错误。
https://stackoverflow.com/questions/46784368
复制相似问题