【问题标题】:Data Warehouse vs. OLAP Cube?数据仓库与 OLAP 多维数据集?
【发布时间】:2013-09-25 20:04:46
【问题描述】:

谁能解释一下数据仓库和 OLAP 多维数据集的真正区别是什么?

他们对同一件事有不同的方法吗?

与其他相比,其中一个是否已弃用?

其中一个是否存在性能问题?

欢迎任何解释

【问题讨论】:

标签: data-warehouse olap olap-cube


【解决方案1】:

数据仓库是一种数据库,其设计使分析数据更容易†而且更快,通常处理来自多个来源的数据。它通常有一个维度模型,意思是事实表和维度表

OLAP 是一组操作,可以在数据集上执行,例如旋转、切片、切块、钻孔。例如,可以使用 Excel 数据透视表进行 OLAP 操作。有一些“for OLAP”的SQL语句,如PIVOTgroup by CUBE()group by ROLLUP()group by GROUPING SETS(),以及各种窗口函数

OLAP 服务器是一种有助于 OLAP 操作的服务器软件,例如缓存和查询重写。 OLAP 操作通常以MDX 表示,您的 OLAP 服务器可能会将 MDX 转换为数据库的常规 SQL。或者它可能适用于自己的二进制文件格式。 OLAP 服务器内的维度模型称为 OLAP 立方体

您可以拥有一个数据仓库而根本不使用 OLAP(您只需运行报告)。

您还可以对数据仓库以外的对象执行 OLAP 操作,例如平面文件。

他们对同一件事有不同的方法吗?

不,数据仓库是以易于分析的格式存储数据的地方,而 OLAP 是一种分析数据的方法。

与其他相比,其中一个是否已弃用?

不,它们相互补充,因为数据仓库使使用 OLAP 分析数据变得容易,而 OLAP 可以使分析数据仓库更有用。

其中一个是否存在性能问题?

是的。数据仓库旨在存储大量数据,因此查询需要时间。可以通过使用索引或列式数据库、缓存、RAID 10 SSD、分区以及预聚合一些数据来提高性能。

另见:https://dba.stackexchange.com/questions/45655/what-are-measures-and-dimensions-in-cubes

† 而不是让交易更容易/更完整

【讨论】:

  • 数据仓库不是“具有维度设计的数据库”。 DW 是面向主题的、集成的、非易失的和时变的数据集合。数据仓库架构可能包括也可能不包括“维度”设计——通常仅用于 Marts,不一定作为 DW 的一部分。
  • @sqlvogel 我并没有试图给出数据仓库的明确定义,只是用简单的语言将它与 OLAP 进行对比。我已经更新了我的答案,以考虑不使用维度设计的 DW。
  • 在我看来,数据仓库是为OLAP操作做准备的。那正确吗? OLAP 操作也有dimensionfact 的概念。
  • @mingchau 有点。您可以对平面文件、excel 文件或二进制多维数据集执行 OLAP 操作。但是数据仓库通常是数据源。数据仓库和 OLAP 都有维度和事实的概念
【解决方案2】:

数据仓库保存您希望运行报告、分析等的数据。

多维数据集通过将数据分组到定义的维度来组织这些数据。您可以有多个维度(想想 Excel 中的超级数据透视表)。

例如,在您的数据仓库中,您拥有所有的销售额,但运行复杂的 SQL 查询可能会非常耗时。因此,您可以从您的数据仓库创建一个多维数据集,该多维数据集对数据进行索引和预计算。在您的多维数据集中,您可以拥有所有这些预先计算的维度:按月、按周、按销售员、按客户、按地理区域、按产品颜色等的销售额。然后您可以在您的多维数据集上运行 OLAP 查询以获得总计、平均和按(月、销售员、地区)或按(颜色、地区)或按(销售员、月)的最大销售额。由于所有数据都经过预先计算和索引,因此查询速度非常快。

【讨论】:

  • DW 不是已经在 Fact 表中有度量,在 Dimension 表中有维度吗?
  • 来自*:“数据的主要来源经过清理、转换、分类,并可供管理者和其他业务专业人员用于数据挖掘、在线分析处理”。事务数据库中的数据在 DW 中传输时会进行转换,但不像在多维数据集中那样索引。您在 DW 中有维度表和事实表,但无法像在多维数据集中那样快速轻松地向下钻取和汇总事实。
【解决方案3】:

他们对同一件事有不同的方法吗?

不,数据仓库是一个以易于分析的方式存储数据的地方 格式,OLAP是一种分析数据的方法。

不,他们真的做同样的事情! OLAP 比 DWH 更预先计算。 OLAP 就像 DWH 中的聚合

【讨论】: