DWH:当您已经拥有 DB 星型模式时,为什么要构建多维数据集?

DWH: Why build cubes, when you already have a DB star schema?

我的 etl 进程收集数据并将其转换为具有事实和维度的数据库。那么我为什么要用它来构建立方体呢?除了查询的速度优势和值的预聚合之外,还有其他优势吗?

感谢您的帮助

事实和维度 table 几乎可以在任何关系数据库中构建。为了提高性能,您可以在同一关系数据库中构建聚合事实 table。这些 table 是通用的,例如,您可以轻松地将这些 table 从 Oracle 移动到 SQL 服务器。

冒着过度简化的风险,多维数据集是一种聚合事实 table 但它是在多维数据库中构建的,通常特定于该数据库类型。因此,如果您在 SSAS 中构建多维数据集,则无法将其移至 Hyperion Essbase。

对于简单的查询,例如按日期求和交易金额,多维数据集不会给您 much/any 优于事实的好处。对于复杂查询,性能往往明显优于事实。

多维数据集通常支持它们自己的查询语言(例如 SSAS 和 DAX),允许比通常用 SQL 编写的查询复杂得多的查询(无需大量工作)

所以是否应该构建立方体取决于很多因素,例如:

  • 您是否运行很多复杂的查询在多维数据集中执行得更好?
  • 改进的性能值得 effort/cost 参与吗?
  • 是否有 cost/benefit 部署 MOLAP(多维数据集)数据库以及您的维度数据库的案例?多维数据集通常从 facts/dimensions 填充,因此它们是 facts/dimensions
  • 的补充,而不是替代