2012-10-16 87 views
2

我了解事实表背后的逻辑以及它应该包含什么。我想知道的是如何创建这些事实表。创建事实表

这些事实表可以是一个视图或命名查询还是它必须是一个实际的表?做一个或其他方式的优点/缺点是什么?

+1

我真的不明白你的问题。如果您使用视图而不是表格,那么您会在视图中引用哪些表格?如果您可以在不需要任何数据转换且不影响性能的情况下运行报表,那么您不需要数据仓库。但是,如果您确实需要ETL和与OLTP系统物理分离的星型模式,则必须创建这些表。 – Pondlife

+0

现在的问题是运行关闭实时OLTP数据库的报告是性能问题。我是数据仓库的新手,所以我试图遵循创建一个最佳实践。从这个意义上说,我正在寻找维度模型,并且这样做我不明白事实表是否必须是实际的表,因为将视图用作事实表将意味着更容易维护我。 – m0g

回答

3

是的,在技术上,事实表可以是一个视图或命名查询。

优点

  • :-)
  • 零数据可用性延迟不需要附加的磁盘空间(数据一旦可作为它被插入到源)

缺点

  • 不规模
  • 慢查询响应速度(变化的基础上视图定义的复杂性)
  • 不结垢
  • 增加了维护的复杂性(这是巨大的BTW)
  • 不结垢
  • 降低灵活性
  • 没有代理键
  • 没有TYPE2的SCD
  • 索引问题
  • 没有规模

FWIW - 我用观点构建了一个小的星图(3个事实表,10个维度),但它仅仅是为了概念证明,我强烈反对这个用于生产使用。

+0

这很有道理,非常感谢。现在我只是原型设计,我想我只是使用视图来让自己更加熟悉并且便于迭代测试和开发。当我对实际需求是什么以及如何设置它有信心时,我会继续并正确创建事实表。 – m0g

+3

不客气。另外,如果你还没有,拿起一份数据仓库工具包......它是DW-(星型模式)模型的圣经。 –