【问题标题】:Data warehouse - Star Schema Explained数据仓库 - 星型模式解释
【发布时间】:2013-12-29 15:21:03
【问题描述】:

我从一开始就在映射星型模式,但我有一个找不到答案的问题。

我有一个涉及 Client, Store , Address, Time (Dimensions) and Sale (fact) 的模型。好的,这很容易建模,但我遇到了一个“概念”问题。我必须给星星添加一个 Newsletter 维度,而这个 newsletter 可以将 customer 引导到 @ 987654325@ 的东西。

所以,在我的报告/立方体中,我需要知道(在一段时间内):

  1. 有多少 Newsletter 导致 Sale

  2. 已生成多少 Newsletter

Newsletter 的 generate_date 应该放在哪里?如果我将它放在 FACT 表中,但如果这个 Newsletter 没有导致 Sale,那么 FACT 表中将没有日期。

如果我把它放在 Newsletter 并加入到 Time,我会破坏星型模式吗?

我该如何解决这个问题:S

我还有很多其他情况是相同的问题,例如客户端 join_date。

【问题讨论】:

  • 这听起来对某人来说很明显,但对我来说仍然不清楚。任何制作了启动模式的人都可以轻松回答(我猜)。

标签: schema data-warehouse


【解决方案1】:

据我所知!为什么您将销售作为维度并将商店作为事实?通常事实表包含事务性数据,我认为 Sale 是事务性的。但这是我的假设,因为您没有描述它包含什么类型的数据。

时事通讯而言!是的,您可以像添加的其他尺寸一样添加,但要获得所需的结果!您还必须添加 Customer 维度。

generate_date 放在 Date 维度中,并将 Date ID 放在 Fact 表中。

您不能使用 Time 加入 Newsletter,因为这会违反 Start Schema 规则。

这个link 可能对你有帮助。

【讨论】:

  • 我的意思是将销售作为事实表:) ... 为这个事实放置一个可能或可能不存在的维度是一个好主意吗?这会以某种方式影响查询吗?
  • 这取决于您的场景和要求。
  • 我的意思是,我需要分析多种形式的视图、导致销售的时事通讯、按月计算的销售量、按月计算的新客户等。什么时候创建新的 Star Schema?应该怎么做?
猜你喜欢
  • 2017-11-14
  • 1970-01-01
  • 2012-09-18
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多