Microsoft Azure 数据仓库:平面表或星型模式

Microsoft Azure Data Warehouse: Flat Tables or Star Schema

我正在许多 OLTP table 上创建数据仓库模型。 a) 我可以使用星型模式或 b) 平面 table 模型 table.

很多人认为维星图模型table不是必须的;因为大多数数据可以在单个 table 中报告自己。此外,星型模式 Kimball 是在性能和​​存储成为问题时创建的。一些声称随着技术的改进,数据可以在单个 table.

中呈现

我还是应该将数据分成 dimensions/facts tables 还是直接在数据仓库中使用扁平的 tables?

在 Microsoft Azure 中,推荐的是扁平 table 模式还是星型模式?

在这个问题中,我认为 AWS Redshift 员工更喜欢平面宽度 table。

我认为这个问题最好用 "It Depends on your business needs, your time and resources." 来回答,我认为有理由支持两者,具体取决于您的情况。但是,根据我的经验,如果您要构建这些 table 以供大量报告和其他分析使用,我会选择星型模式。

我猜你输入的 tables 仍然处于第三范式?在这两种情况下,您仍然在去规范化,但是假设这是您长期创建的 运行,我认为 Star 会更好地满足您的目的。 Kimball 不仅出于技术优化原因建议 dimension/fact 关系,还有商业原因。

  1. 示例:您有一个产品 table,您构建了一次,并且您有一个销售事实,您将其连接到。在接下来的 6 个月里,也许现在有人想要与库存或折扣相关的所有业务指标,很可能是两者。您已经拥有适合该产品的产品 table。如果您在包含产品的销售中有一个单一的 table,您最终会再次对产品的库存和折扣进行相同的工作。当产品被分离出来时,更容易将一个连接应用到这三个事实 table 中的每一个,而且将来肯定会出现更多。在长 运行 中花费在 Star 上的时间更少,因为您可以迭代添加新的可测量数字。

  2. 当您使用 table 时,维护该产品 table 或任何维度 table(可衡量数量的上下文)会容易得多。任何时候一个新的列来更好地分类产品,例如

  3. 当您有一个星型模式(例如 SSAS 和 PowerPivot)可以使用时,任何建模工具在大多数情况下都很容易使用,拖放报告也是如此(例如 pivot tables 连接到您的模型)