将事实数据与重复数据删除的维度记录进行匹配

时间:2016-02-18 06:32:34

标签: sql-server ssis data-warehouse

我正在为具有多个物理位置的客户开始数据仓库项目的工作,每个位置都有相同LOB数据库的单独实例。有一点很常见的"常见的"站点之间的数据,但系统是孤立的,因此概念上指向同一事物的数据在源中具有不同的表示。

例如,考虑产品类别。每个位置的产品类别列表都相同,但自动生成的密钥会有所不同。当数据被提取,分阶段并加载到仓库中相应的产品类别维度表中时,这些类别被有效地复制,因为它们具有不同的源系统,或者#34; natural"密钥。

显然,数据需要重复数据删除,但是什么才能成为重复数据删除维度记录中持久存在的代理键?请记住,引用产品类别的数据将使用来自其原始位置的代理键。因此,如果我有三个不同的位置,我将为同一产品类别提供三个不同的自然键,并且对应于该产品类别的销售数据也会引用这三个自然键,但最终会引用相同的概念类别。我有几种方法可以解决这个问题:

  1. 如果我有三个位置,请将三个不同的代理键写入单维记录。这将使ETL过程中的匹配变得简单,但它不具有很大的可扩展性,因为可以并且可能会添加其他位置。对于每个联机的新位置,我需要在每个维度表中添加一个额外的自然关键字段,并使用重复数据删除的记录。

  2. 创建一个查找表,该表记录了相应维度表中每个自然键与其对应的代理键之间的映射。我不确定这种方法是否非常标准,也不确定其可维护性。

  3. 非常感谢任何有关如何处理上述情景的输入。

1 个答案:

答案 0 :(得分:0)

我们使用方法2.想象一下,有一天有数百个地点,你会发现方法1根本不可能。

方法2是可扩展的,并且非常易于维护,因为您的查找表只会垂直增长。