事实表是如何处理的?
事实表包含一个复合主键,其中包括多个外键(每个维度表一个)以及使用这些维度来衡量的每一列。
每个数据分段过程都必须包含一个步骤,用于将传入事实表记录中的生产ID替换为每个维度的数据仓库代理键。也可能需要其他处理、计算和重组。
在仓库中,参照完整性 (RI) 定义了事实表中每个外键,在等效维度表中都会有一个条目。如果您在事实表中有一笔产品编号为 323442 的销售记录,则需要在产品维度表中具有相同编号的产品,否则您将不知道您销售了什么。您销售的产品似乎是不存在的。
对代理键的规范且一致的需求定义了您的提取逻辑始终执行两种类型的代理键查找。首先,每次遇到更改的维度记录并希望使用缓慢变化的维度技术类型 2 时,都必须创建一个新的代理键。
这是处理维度记录偶尔更改的主要工作方法。您必须为更改的项目创建新的维度记录并为其分配一个全新的代理键。此新记录中与原始记录不同的唯一属性是代理键以及触发更改描述的任何字段。
第二种代理键查找发生在处理事实表记录时。请记住,为了保持参照完整性,我们始终首先完成维度记录的更新。这样,维度表始终是主键的合法来源。在这种第二种代理键查找中,我们必须将事实表记录中的生产键替换为代理键的当前正确值。
当所有事实表生产键都被替换为代理键后,事实记录就可以加载了。事实表记录中的键已被选择为各个维度表的正确外键,并且事实表保证对维度表具有参照完整性。
但是,在这种情况下保持警惕是有价值的。我们在本节中描述的所有高级管理都在实际数据库加载之前设置了参照完整性。仍然有可能由于未能加载一个或多个维度表或由于其他管理错误(例如,当仍有事实记录依赖于维度键值时删除维度记录)而破坏参照完整性。
广告