1

我的理解是先提取维度,再提取事实。这样,外键仍将在暂存区得到尊重。

加载时,出于同样明显的原因,应该使用相同的顺序。所以。最终的订单应该是这样的 -

提取维度 -> 提取事实 -> 加载维度 -> 加载事实

当我浏览 DAC 文档时,我遇到了一篇文章,上面说顺序应该是这样的 =

提取事实 -> 提取维度 -> 加载维度 -> 加载事实

想法/建议/意见..

4

2 回答 2

4

我怀疑作者的想法可能是:当你加载新数据时,首先确定你感兴趣的事实,以确保你处理和加载的数据量最少。然后从这些事实中导出您的维度,因此您只填充您实际需要的维度值。

我不知道这种解释是否正确,但我可以想象有人提出这个论点。另一方面,知道哪些维度值没有对应的事实通常非常有趣,例如哪些客户还没有购买新产品。

因此,您在环境中处理数据的方式在很大程度上取决于您自己的要求,我不会太担心单个文档的内容。

于 2012-05-03T10:02:44.177 回答
0

可能为时已晚,但以防万一有人遇到这个问题,这里有一些澄清。

数据仓库通常建立在不强制引用完整性的存储系统上,或者因为它是它的固有特征(Redshift、Hive 等),或者因为如果系统允许它(如经典 RDBMS),它们会导致额外的开销/性能影响。

因此,建议的顺序

extract fact -> extract dimension -> load dimension -> load fact

旨在保证参照完整性。

如果我们首先提取事实,我们将确保一旦我们提取维度,所有事实将指向仓库中的有效维度/现有维度。

通过首先加载维度(假设采用 Kimball 建模方法),加载事实后,您将能够将它们与一致的维度连接起来并成功检索维度代理键。

于 2018-08-04T17:20:32.993 回答