如何从现有数据库实际构建数据仓库?

3
希望这个问题符合 Stack Overflow 的标准。
我清楚数据仓库的概念。但是在实际构建数据仓库方面,我感到困惑,因为我只是使用报告工具。
假设我在 Oracle 数据库中有 20 张表。据我所知,DW 构建的步骤是“执行 ETL”。
但我对以下事项感到困惑:
1.以表格结构方式定义维度和事实及其之间的关系。
2.如何选择或实现所需的模式,例如事实星座?
3.如何确定哪些是维度,哪些是事实?
4.如何使用代理键?
简而言之,我想从现有数据中在我的数据库中构建数据仓库。我应该怎么做?
欢迎您提供答案、想法和参考资料。

6
哎呀,这是一个非常广泛的问题。你可以尝试阅读一本好书,比如Ralph Kimball和Margy Ross的《数据仓库工具包》。我建议你查看一下这本书。 - Ian Nelson
1个回答

2
首先,按照Ian的建议去做。
数据仓库有许多不同的方法。这里是一个人的观点,不一定是最好或正确的,但我在类似于您的情况下工作了几年(有人说“嘿,让我们建立一个用于报告和其他东西的数据仓库)。
以下是步骤:
1] 维度表 - 具有可能随时间变化的信息的查找表 事实表 - 时间点值/状态(通常不会被维度化)。通常包含大量可聚合的数据字段和链接回维度表
产品,人员,组织是维度表的候选对象。 销售,组织图表关系,雇员计数是事实表的候选对象。
事实将包含链接回维度表的FK链接。维度表不应直接引用其他表的FK引用(如果必须使用桥接表,但如果您尝试将源系统重建为其自身的维度副本,则会遇到问题..)
2] 从您将要报告的内容开始,并从那里开始工作。通常答案是“我们需要报告所有内容”,但最终您将确定。(我不太确定您在问什么)
3] 高层次:考虑Excel中的交叉制表符。如果该字段是列或行标题,则可能是一个维度。如果它是图表内的数字,则可能是一个事实。
4] 总是在您的仓库中使用自己的代理键。 (代理键使您可以在维度化表中拥有唯一的主键)将它们保密不让任何人知道,它们仅适用于您的仓库/数据集市。[意见]即使它们适合组合PK,也要为FACT表使用它们自己的代理键[/意见]。
再次强烈建议您花更多时间研究DW概念。确立您的数据仓库目标以及如何/是否将其与数据集市分开的强大内部概念。
考虑花费精力修复源系统,使其能够产生您需要的输出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接