多维数据模型和OLAP的实用价值在哪?

Posted 卖山楂啦prss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多维数据模型和OLAP的实用价值在哪?相关的知识,希望对你有一定的参考价值。

感觉学完瞬间懂了,分享给大家

作者:Kyligence
链接:多维数据模型和OLAP的实用价值在哪?
来源:知乎


首先理解一下多维数据模型和OLAP的含义。OLAP区别与传统的交易型业务系统(做增删查改),也叫OLTP。OLAP的目的不是为了方便数据可以随时增删改,而是方便数据可以随时做统计分析,因此其存储数据的结构和模型设计上就会跟OLTP完全不一样。而多维数据模型就是一种非常适合OLAP的模型,通过将维度(分析角度)拆分出来形成维度表,然后跟基于事务交易的记录事实表进行关联,形成多维度的星型或者雪花模型。在进行数据分析时,想基于哪个维度来统计查询,就将该维度表与事实表简单关联即可。以下星型模型借用网上的一张图:

这样的模型结构优势是非常方便进行数据的统计分析,且结构清晰,关系简单。但是,当数据量大的情况下,对表关联后再进行实时的聚合,group by,sum, count等操作,基于不同数据库的性能瓶颈,会需要较长的响应时间,特别是在Hadoop架构之上进行表之间的join关联操作。所以还有一个OLAP Cube(数据立方体)的概念,对于OLAP是很有帮助的。见下图(也来自于网络)

我们通过把第一张图的星型模型做多维预计算处理,形成一个cube的数据存储结构。在需要统计数据时,直接查询其中一个小立方体,获取结果数据,返回给用户,可以达到秒级响应。因为cube是预计算存储的,所以在查询统计数据时,不需要再实时关联join维度表与事实表,以及进行实时的group by, sum, count等操作,所以数据分析的性能非常快。基于这种思想的工具有很多,除了基于大数据Hadoop架构的Apache Kylin,也有基于传统架构的微软SSAS,IBM Cognos,Oracle Essbase等。


kylin 通过一种cube的方式,提前把所有可能的结果计算起,存起来,当用户需要分析查询数据时,直接去“库房”拿提前计算好的数据,相当于用空间换时间。

Kylin Flink Cube 引擎的前世今生


以上是关于多维数据模型和OLAP的实用价值在哪?的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 商业智能中,为啥要从 OLAP 多维数据集创建报表模型?

数据仓库的多维数据模型定义

什么是商业智能中的“多维数据”? [关闭]

Olap 数据库处理选项和对象

IT 支持业务的 OLAP 多维数据集设计参考 [关闭]

如何使用或过滤器从 Excel 中的 OLAP 多维数据集数据透视表中获取数据