数据仓库注意事项:何时以及为何?

Aar*_*ght 48 database database-design data-warehouse

这里有一点背景:

我知道数据仓库是什么,或多或少.我已经阅读了数十个关于数据仓库的指南,我玩过SSAS,我知道什么是星型模式,维度表和事实表,我知道ETL是什么以及如何做. 这不是"如何"问题或教程请求.

我的问题是,我读过的关于数据仓库的所有材料似乎都掩盖了构建数据仓库的基本原理.它们都具有象征性,或者在某些情况下字面上以" 所以你决定建立一个数据仓库...... " 这句话开头.除了我还没有做出那个决定.

因此,我希望SO成员可以指出或帮助提出某种半客观测试.我可以适应特定系统并最终得到"是的,我们需要一个数据仓库"或"不,今天的收益太小了".我认为我应该能够回答的具体问题是:

  1. 在什么时候构建数据仓库是一个值得考虑的选择?换句话说,我应该注意哪些标志,指标或其他标准可能表明标准的交易环境不再足够?

  2. 全面数据仓库有哪些替代方案?事务数据库中的非规范化和沼泽标准复制的"报告服务器"是我想到的两个; 在进入DW之前,还有其他我应该探索的吗?

  3. 为什么数据仓库比上述备选方案更好?如果答案是"它取决于",那么它依赖于什么?

  4. 什么时候不应该尝试构建数据仓库?无论背景如何,我都对所谓的"最佳实践"持怀疑态度.肯定有一些情况下DW是错误的选择 - 它们是什么?

  5. 是否有任何实际的例子我可以看一下通过引入数据仓库而改进的系统?可以向我解释的东西,端到端,他们需要仓库的决策或分析,他们如何决定放入什么,以及仓库最终如何适应更大的环境?我不想要一个人为的"让我们从AdventureWorks数据库中创建一个多维数据集" - 实现与我无关,我对所涉及的规范和设计以及整体思考过程感兴趣.

我一般不会问多方,但我认为这些都是非常密切相关的.我愿意接受至少解决前4个问题的任何答案,尽管最后一个问题确实有助于在我的脑海中明白这一点.如果有人已经写过关于这一点的链接很好,只要它们相当简洁和具体(链接到Ralph Kimball的主页=无用).

希望我已经明确了问题 - 提前感谢你的答案!

Dat*_*onk 43

我会看看我是否可以尽力回答你的问题.

1.建立数据仓库的重点是什么?值得考虑的选择?换句话说,我应该注意哪些标志,指标或其他标准可能表明标准的交易环境不再足够?

一个.如果发现报告和监视会影响生产系统和/或脱机数据存储的性能.

湾 如果您发现获得业务问题的答案需要每次都构建大量复杂的SQL.

C.如果您发现每次对事务架构进行更改时,都必须返回并重新编写所有报告查询.

d.如果您想汇集来自多个来源的数据.

2.全面数据仓库的替代品是什么?事务数据库中的非规范化和沼泽标准复制的"报告服务器"是我想到的两个; 在进入DW之前,还有其他我应该探索的吗?

3.为什么数据仓库比上述备选方案更好?如果答案是"它取决于",那么它依赖于什么?

我会一起回答这些问题.我不认为数据仓库是一个全有或全无的冒险.它只是一个简洁的短语,意思是"以一种允许您更轻松快速地回答业务问题的方式存储您的数据."

事务数据库旨在有效地与应用程序进行交互.如果有意义的话,数据仓库,数据集市,运营数据存储和报告表可以有效地与人们进行交互.

4.我什么时候不应该尝试建立数据仓库?无论背景如何,我都对所谓的"最佳实践"持怀疑态度.肯定有一些情况下DW是错误的选择 - 它们是什么?

好问题.如果您的交易系统为您提供了足够的业务洞察力,那么您可能不需要仓储.

如果您只有一个数据源并且性能不是问题,那么您可以通过创建简单的报表来获得洞察力.

5.有什么实际例子我可以看一下通过引入数据仓库而改进的系统吗?可以向我解释的东西,端到端,他们需要仓库的决策或分析,他们如何决定放入什么,以及仓库最终如何适应更大的环境?我不希望一个人为的"让我们做一个立方体出AdventureWorks数据库的" - 实现是无关的,我很感兴趣的规格和设计,并参与这整个思考过程.

这是一个很大的问题,比我在这里分配的空间要多得多.

在这一点上,我可以指出一些可能提供您所寻求的洞察力的地方.

  • "实施数据仓库:一种有效的方法论"由布鲁斯·乌瑞(Bruce Ullrey)撰写,是一本记录一个人建立数据仓库之旅的书.它没有高度抛光,这使它更真实.它读起来就像一本有大量模型和其他视觉效果的期刊,很好地说明了他的努力.
  • Larissa Moss撰写的"商业智能路线图".标准票价.让您了解高层建立BI实践的过程.
  • Steve Williams撰写的"商业智能的利润影响"提供了大量案例研究,展示了构建数据仓库的价值.

  • 非常非常好...我将向问题5添加一个链接。请看MS Project Real(http://technet.microsoft.com/zh-cn/library/cc966416.aspx)。这是具有推理/批判性的相当大的DWH的实际实现(带有数据/ ETL) (2认同)

Dam*_*vic 6

  1. DW的主要目的是加快(简化)报告和分析。它使业务用户可以想到的任何方式对数据进行切片和切块。

  2. 对于第一步DW,您可以简单地实现Kimball星型架构并对其执行SQL查询。如果事实证明这样做仍然太慢,请开始考虑预先计算的聚合(多维数据集)。

  3. 与针对标准化DB相比,针对DW进行信息的切片和切分更为简单。复制的报表服务器将提高性能,但不会简化切片和切块。还请记住,DW属于业务用户,因此,他们可以随时提出各种分片/切分的想法-IT人员应该简单地提供可以进行类似操作的环境。

  4. 如果您不时在操作系统上运行少量报告并且对性能感到满意,则无需DW。

  5. 我的所有经验都是在系统中,业务用户无休止地抱怨报告速度慢和无法编写“复杂查询”,而生产人员抱怨数据库由于报告而陷入困境。在所有情况下,一个简单的Kimball星和一个具有缓存和快照的报表服务器就足够了。