能否有人解释一下数据仓库和OLAP立方体之间的真正区别?
它们是针对相同事物的不同方法吗?
它们中的一个与其他方法相比是否已弃用?
它们中是否存在任何性能问题?
欢迎任何解释。
能否有人解释一下数据仓库和OLAP立方体之间的真正区别?
它们是针对相同事物的不同方法吗?
它们中的一个与其他方法相比是否已弃用?
它们中是否存在任何性能问题?
欢迎任何解释。
一个数据仓库是一个具有设计的数据库,使得从多个来源的数据更容易和更快地进行数据分析†。它通常具有一个维度模型,意味着事实表和维度表。
OLAP 是一组可对数据集执行的操作,例如旋转、切片、切块、钻取。例如,可以使用 Excel 的数据透视表执行 OLAP 操作。有一些 SQL 语句是“用于 OLAP”的,如PIVOT
、group 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 SSDs(固态硬盘)、分区以及预聚合部分数据来提高性能。
另请参见:https://dba.stackexchange.com/questions/45655/what-are-measures-and-dimensions-in-cubes
† 相对于使事务更容易/更完整。
数据仓库持有你希望运行报告和分析等操作所需的数据。
一个立方体将这些数据按照定义好的维度进行组合。你可以有多个维度(就像Excel中的超级透视表)。
例如,在你的数据仓库中,你拥有所有的销售数据,但是运行复杂的SQL查询可能会耗费很长时间。因此,你可以从数据仓库中创建一个立方体来索引和预先计算数据。在你的立方体中,你可以包含所有这些预先计算的维度:按月份、按周、按销售员、按客户、按地理区域、按产品颜色等销售额。然后,你可以在立方体上运行OLAP查询,以获得按(月份、销售员、区域)或按(颜色、区域)或按(销售员、月份)的总销售额、平均销售额和最大销售额。由于所有数据都是预先计算和索引的,所以查询非常快速。
它们是同一个事物的不同方法吗?
不,数据仓库是用于以易于分析的格式存储数据的地方,OLAP是一种分析数据的方法。
不,它们实际上做相同的事情!OLAP比DWH更加预先计算。OLAP就像DWH中的聚合。