【发布时间】:2019-04-09 17:24:32
【问题描述】:
我正在开发一个新的数据仓库,我的员工维度的源表每天都会被截断,并重新加载所有历史记录和更新、删除和新插入。
跟踪这些更改的列是生效日期和生效顺序。我们还有一个审核表,通过比较今天和前一天的表格,帮助我们确定每天更新、插入和删除的记录。
我的问题是如何在暂存层中的表上进行增量加载,以便作为标识列的代理键保持不变。如果我对最终维度进行截断,那么我每次都会得到新的代理键我截断了,因此它弄乱了我的事实表。
【问题讨论】:
-
请帮助!!!。我找到了一种方法来跟踪身份列 DBCC CHECKIDENT ('.dimEmployee' , RESEED, 1) 。这种方法是否有任何漏洞或场景不捕获。我还将截断并重新加载将使用员工密钥的事实表。
-
始终将标识列作为 PK 不应该是一种通用方法,在设计阶段我们必须考虑清楚。这些是会导致问题的问题类型。当您希望重新加载能力时,这是一个普遍的问题。您应该保留源的 PK,或者如果它是一个问题或滚动维度,您可以将其设为多部分键
标签: sql data-warehouse sql-data-warehouse