我想在维度表中查看scd type two form中的历史记录,因为表中有一个被认为要更新为新值的营销区域的更新。你知道吗
我想在维度表中看到scd type two form中的历史记录,因为表中有一个被认为是更新到新的市场区域的更新我们的价值观主要目标是根据历史数据保存方法更新记录。你知道吗
在SCD-2中更新维度表(少则几百条记录)的算法如下:
FOR ALL ROWs in the SOURCE table query LOOP
IF ( a corresponding row exists in the DIM TABLE
THEN
IF data are different THEN
1. UPDATE the ""CURRENT"" row of the DIM TABLE
SET EFFECTIVE_TO = NOW
ACTIVE_FLAG = 0 (ZERO)
2. INSERT new version into DIM TABLE
SET EFFECTIVE_TO = NOW+1 day ahead
ACTIVE_FLAG = 1 (ONE)
END IF
ELSE
INSERT new row into DIM TABLE
END IF
所以我希望新值和旧值都被存储为标志0。你知道吗
下面是检查条件并制作SCD-2的方块。也让我知道你到底在找什么。你知道吗
所以你有你的SCD2表,这是一种看它的方法:
从一个或多个源表中,您可以确定当天的记录(增量)/或完整图像记录…我将使用别名source
在SCD2中,您必须筛选加载当天的活动记录(筛选有效起始日期和有效终止日期之间的日期)。我将使用别名target。你知道吗
来源 减 目标 是更改的/新的记录,需要在目标中关闭并从源中重新打开/打开。你知道吗
如果存在性能问题,您可能希望使用截断/插入机制创建2-3个具有相同结构的临时表:
1.有记录要关闭的。你知道吗
2.有新记录的人。你知道吗
3.有修改记录的人。
如果您有许多带有SCD2的表,那么您可能希望生成一个生成PL/SQL的包。。。随着时间的推移,表格结构会发生变化,会出现新的表格。
任何人都很难为您的表编写代码,我们不知道您的源表PKs、FKs(启用还是禁用?),列。你知道吗
相关问题 更多 >
编程相关推荐