什么是提取维度/事实数据的建议顺序?

时间:2012-05-03 07:26:00

标签: data-warehouse etl

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

加载时,应使用相同的测序,原因同样明显。 因此。最终的顺序应该是这样的 -

提取维度 - >提取事实 - >负载尺寸 - >加载事实

在我阅读DAC文档的过程中,我遇到了一篇文章,其中说订单应该是这样=

提取事实 - >提取维度 - >负载尺寸 - >加载事实

思想/建议/意见..

2 个答案:

答案 0 :(得分:4)

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

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

因此,您在环境中处理数据的确切方式将在很大程度上取决于您自己的要求,而且我不会过多担心单个文档所说的内容。

答案 1 :(得分:0)

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

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

因此,建议的顺序

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

旨在确保保留引用完整性。

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

通过首先加载维度(假设使用Kimball建模方法),一旦加载了事实,便可以将它们与一致的维度合并,并成功获取维度代理键。