3

希望如此,这个问题符合 Stack Overflow 标准。

我对数据仓库的概念很清楚。但是我对实际构建数据仓库感到困惑,因为我只是在研究报告工具。

假设我的 Oracle 中有一个数据库,考虑 20 个表。据我所知,构建DW所涉及的步骤是“做ETL”

但我很困惑,

1]以表格结构的方式定义维度和事实以及它们之间的关系。

2]我如何选择或实现我想要的模式,比如 Fact Constellation ?

3]我应该如何确定这是维度,这是事实?

4]我应该如何使用代理键?

简而言之,我想从现有数据中在我的数据库中构建一个数据仓库。我该怎么办?

欢迎您的回答、想法和参考资料。

4

1 回答 1

2

首先,按照伊恩所说的去做。

数据仓库有许多不同的方法。这是一个人的观点,它不一定是最好的或正确的,但我有几年的工作经验,我想象的情况与你的情况相似(有人说'嘿,让我们建立一个数据仓库来报告和东西)

开始

1] 维度表 - 查找包含可能随时间变化的信息的表格 事实表 - 时间点值/状态(通常不标注)。通常将包含一堆可聚合的数据字段和返回维度表的链接

产品、人员、组织是维度表的候选对象。销售、组织结构图关系、员工人数是事实表的候选者

Fact 将包含返回到维度表的 FK 链接。维度表不应该对其他表有任何直接的 FK 引用(如果必须,请使用桥接表,但是如果您尝试将源系统重建为自身的维度副本,那么您将度过一段糟糕的时光......)

2] 从您将要报告的内容开始,然后从那里开始工作。通常答案是“我们需要报告所有事情”,但最终你会发现。(我不确定你在这里问什么)

3]高级:考虑excel中的交叉表。如果字段是列或行标题,则它可能是一个维度。如果它在图表中是一个数字,它可能是一个事实。

4] 始终在仓库中使用自己的代理键。(代理键使您能够在维度表中拥有唯一的主键)对所有人保密,它们仅适用于您的仓库/数据集市。[意见]即使您的 FACT 表适合复合 PK [/意见],也可以为您的 FACT 表提供自己的代理键。

再次,我强烈建议您花更多时间研究 DW 概念。提出一个强有力的内部概念,说明您的数据仓库目标是什么,以及如何/是否要将仓库与数据集市分开。

考虑花费精力修复您的源系统,以便它们能够产生您所追求的输出。

于 2013-12-12T04:44:09.130 回答