使用代理键(和SCD)导入DWH

时间:2014-02-17 11:03:22

标签: etl data-warehouse surrogate-key scd

我有一个数据仓库,它使用内部代理键和类型2缓慢变化的维度。 在清算中,我们只有erp系统的业务密钥,如下所示:

Image of Clearing, sorry don't have enough reputation to post it directly or more than two links

在数据仓库中,我们要使用代理键(注意:商品价格从500 $变为1000 $,文章尽可能使用代理键,此处仅供制造商使用)。

Image of Data Warehouse

如果我们只是使用业务键,那就没问题,只需比较,更新旧条目,插入新条目。 但是使用代理键的最佳方法是什么?

从清算中的数据仓库中获取现有ID(0还是-1还不存在),然后比较条目?

enter image description here

将业务键保存在数据仓库中,比较它们并在数据仓库中更新ID?

i.pictr.com/3kqn6wb9ou.png

1 个答案:

答案 0 :(得分:0)

能够在加载表时进行查找 - 就像在加载文章时引用制造商一样,您必须将自然/业务键存储在DWH中。根据我的经验,这总是完成的。

但是您应该仅将源实体的业务密钥存储在目标实体中。让我澄清一下,制造商的业务密钥应该只出现在DWH的制造商表中,而不是其他地方。当您需要在不同的表格中引用制造商时,例如Article,您可以使用制造商的代理密钥。

所以,你在第二个截图中做到了。

然后,当您加载Article表并且您需要知道制造商是否针对特定文章进行了更改时,您首先会根据其业务键查找制造商的代理键,并将代理键与Article表中的键进行比较。这就是通常的做法。