OLAP的多维数据分析
联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念,即OLAP。
一、OLAP的概念
根据OLAP产品的实际应用情况和用户对OLAP产品的需求,人们提出了一种对OLAP更简单明确的定义,即共享多维信息的快速分析。
(1)快速性
用户对OLAP的快速反应能力有很高的要求。系统应能在5秒内对用户的大部分分析要求做出反应。如果终端用户在30秒内没有得到系统响应就会变得不耐烦,因而可能失去分析主线索,影响分析质量。对于大量的数据分析要达到这个速度并不容,因此就更需要一些技术上的支持,如专门的数据存储格式、大量的事先运算、特别的硬件设计等。
(2)可分析性
OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。尽管系统需要事先编程 ,但并不意味着系统已定义好了所有的应用。用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户理想的方式给出报告。用户可以在OLAP平台上进行数据分析,也可以连接到其他外部分析工具上,如时间序列分析工具、成本分配工具、意外报警、数据开采等。
(3)多维性
多维性是OLAP的关键属性。系统必须提供对数据分析的多维视图和分析,包括对层次维和多重层次维的完全支持。事实上,多维分析是分析企业数据最有效的方法,是OLAP的灵魂。
(4)信息性
不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信息。这里有许多因素需要考虑,如数据的可复制性、可利用的磁盘空间、OLAP产品的性能及与数据仓库的结合度等。
二、OLAP的多维数据概念
多维结构是决策支持的支柱,也是OLAP的核心。OLAP展现在用户面前的是一幅幅多维视图。
1.维
假定某某是个百货零售商,有一些因素会影响他的销售业务,如商品、时间、商店或流通渠道,更具体一点,如品牌、月份、地区等。对某一给定的商品,也许他想知道该商品在哪个商店和哪段时间的销售情况。对某一商店,也许他想知道哪个商品在哪段时间的销售情况。在某一时间,也许他想知道哪个商店哪种产品的销售情况。因此,他需要决策支持来帮助制定销售政策。这里,商店、时间和产品都是维。各个商店的集合是一维,时间的集合是一维,商品的集合是一维。维就是相同类数据的集合,也可以理解为变量。而每个商店、每段时间、每种商品都是某一维的一个成员。每个销售事实由一个特定的商店、特定的时间和特定的商品组成。
维有自己固有的属性,如层次结构(对数据进行聚合分析时要用到)、排序(定义变量时要用到)、计算逻辑(是基于矩阵的算法,可有效地指定规则)。这些属性对进行决策支持是非常有用的。
2.多维性
人们很容易理解一个二维表(如通常的电子表格),对于三维立方体同样也容易理解。 OLAP通常将三维立方体的数据进行切片,显示三维的某一平面。如一个立方体有时间维、商品维、收入维,其图形很容易在屏幕上显示出来并进行切片。但是要加一维(如加入商店维),则图形很难想象,也不容易在屏幕上画出来。要突破三维的障碍,就必须理解逻辑维和物理维的差异。OLAP的多维分析视图就是冲破了物理的三维概念,采用了旋转、嵌套、切片、钻取和高维可视化技术,在屏幕上展示多维视图的结构,使用户直观地理解、分析数据,进行决策支持。
三、OLAP的多维数据结构
数据在多维空间中的分布总是稀疏的、不均匀的。在事件发生的位置,数据聚合在一起,其密度很大。因此,OLAP系统的开发者要设法解决多维数据空间的数据稀疏和数据聚合问题。事实上,有许多方法可以构造多维数据。
1.超立方结构
超立方结构(Hypercube)指用三维或更多的维数来描述一个对象,每个维彼此垂直。数据的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。这种结构可应用在多维数据库和面向关系数据库的OLAP系统中,其主要特点是简化终端用户的操作。
超立方结构有一种变形,即收缩超立方结构。这种结构的数据密度更大,数据的维数更少,并可加入额外的分析维。
2.多立方结构
在多立方结构(Multicube)中,将大的数据结构分成多个多维结构。这些多维结构是大数据维数的子集,面向某一特定应用对维进行分割,即将超立方结构变为子立方结构。它具有很强的灵活性,提高了数据(特别是稀疏数据)的分析效率。
一般来说,多立方结构灵活性较大,但超立方结构更易于理解。终端用户更容易接近超立方结构,它可以提供高水平的报告和多维视图。但具有多维分析经验的MIS专家更喜欢多立方结构,因为它具有良好的视图翻转性和灵活性。多立方结构是存储稀疏矩阵的一个更有效方法,并能减少计算量。因此,复杂的系统及预先建立的通用应用倾向于使用多立方结构,以使数据结构能更好地得到调整,满足常用的应用需求。许多产品结合了上述两种结构,它们的数据物理结构是多立方结构,但却利用超立方结构来进行计算,结合了超立方结构的简化性和多立方结构的旋转存储特性。
3. 活动数据的存储
用户对某个应用所提取的数据称为活动数据,它的存储有以下三种形式:
(1)关系数据库
如果数据来源于关系数据库,则活动数据被存储在关系数据库中。在大部分情况下, 数据以星型结构或雪花结构进行存储。
(2)多维数据库
在这种情况下,活动数据被存储在服务器上的多维数据库中,包括来自关系数据库和终端用户的数据。通常,数据库存储在硬盘上,但为了获得更高的性能,某些产品允许多维数据结构存储在RAM上。有些数据被提前计算,计算结果以数组形式进行存储。
(3)基于客户的文件
在这种情况下,可以提取相对少的数据放在客户机的文件上。这些数据可预先建立, 如Web文件。与服务器上的多维数据库一样,活动数据可放在磁盘或RAM上。这三种存储形式有不同的性能,其中关系数据库的处理速度大大低于其他两种。
4.OLAP数据的处理方式
OLAP有三种数据处理方法。事实上,多维数据计算不需要在数据存储位置上进行。
(1)关系数据库
即使活动的OLAP数据存储在关系数据库中,采用在关系数据库上完成复杂的多维计算也不是较好的选择。因为SQL的单语句并不具备完成多维计算的能力,要获得哪怕是最普通的多维计算功能也需要多重SQL。在许多情况下,一些OLAP工具用SQL做一些计算,然后将计算结果作为多维引擎输入。多维引擎在客户机或中层服务器上做大部分的计算工作 ,这样就可以利用RAM来存储数据,提高响应速度。
(2)多维服务引擎
大部分OLAP应用在多维服务引擎上完成多维计算,并且具有良好的性能。因为这种方式可以同时优化引擎和数据库,而服务器上充分的内存为有效地计算大量数组提供了保证。
(3)客户机
在客户机上进行计算,要求用户具备性能良好的PC机,以此完成部分或大部分的多维计算。对于日益增多的瘦型客户机,OLAP产品将把基于客户机的处理移到新的Web应用服务器上。
四、多维数据库
多维数据库(Multi-Dimesional Database,MDD)可以简单地理解为:将数据存放在一个n维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。目前有两种MDD 的OLAP产品:基于多维数据库的MOLAP和基于关系数据库的ROLAP。R OLAP建立了一种新的体系,即星型结构。 MDD并没有公认的多维模型,也没有像关系模型那样标准地取得数据的方法(如SQL、 API等)。基于MDD的OLAP产品,依据决策支持的内容使用范围也有很大的不同。在低端,用户使用基于单用户或小型LAN的工具来观察多维数据。这些工具的功能性和实用性可能相当不错,但由于受到规模的限制,它们不具备OLAP的所有特性。这些工具使用超立方结构,将模型限制在n维形态。当模型足够大且稀疏数据没有控制好时,这种模型将会不堪一击。这些工具使用数据库的大小是以MB来计量的,而不是以GB计量的,因此只能进行只读操作,且具备有限的复杂计算。在高端,OLAP工具用4GL提供了完善的开发环境、统计分析、时间序列分析、财政报告、用户接口、多层体系结构、图表等许多其他功能。尽管不同的OLAP工具都使用了它们自己的多维数据库,但它们在不同程度上也利用了关系数据库作为存储媒体。因为关系数据库和OLAP工具同时在高端服务器上处理,所以速度和效率仍然很快。纯多维数据库引擎也被开发出来。尽管这些工具缺乏4GL及充分的开发环境,但却有比高端MDD工具所使用的数据库更为复杂的数据库。这些工具也具有统计分析、财务分析和时间序列分析等功能,并有自己的API,允许其对前端的开发环境开放。
MDD能提供优良的查询性能。存储在MDD中的信息比在关系数据库中的信息具有更详细的索引,可以常驻在内存中。MDD的信息是以数组形式存放的,所以它可以在不影响索引的情况下更新数据。因此MDD非常适合于读写应用。
五、 OALP的多维数据分析
1. 切片和切块
在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在" 城市、产品、时间"三维立方体中进行切块和切片,可得到各城市、各产品的销售情况
2. 钻取
钻取包含向下钻取和向上钻取操作, 钻取的深度与维所划分的层次相对应。
3.旋转
通过旋转可以得到不同视角的数据。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
“最近复购率一直在下降,我们的营销力度不小啊,为什么用户还是走了?” “是不是广告投放的用户质量不高?还是我们的产品问题 ...
2025-02-21以下文章来源于数有道 ,作者数据星爷 SQL查询是数据分析工作的基础,也是CDA数据分析师一级的核心考点,人工智能时代,AI能为 ...
2025-02-19在当今这个数据驱动的时代,几乎每一个业务决策都离不开对数据的深入分析。而其中,指标波动归因分析更是至关重要的一环。无论是 ...
2025-02-18当数据开始说谎:那些年我们交过的学费 你有没有经历过这样的场景?熬了三个通宵做的数据分析报告,在会议上被老板一句"这数据靠 ...
2025-02-17数据分析作为一门跨学科领域,融合了统计学、编程、业务理解和可视化技术。无论是初学者还是有一定经验的从业者,系统化的学习路 ...
2025-02-17挖掘用户价值本质是让企业从‘赚今天的钱’升级为‘赚未来的钱’,同时让用户从‘被推销’变为‘被满足’。询问deepseek关于挖 ...
2025-02-17近来deepseek爆火,看看deepseek能否帮我们快速实现数据看板实时更新。 可以看出这对不知道怎么动手的小白来说是相当友好的, ...
2025-02-14一秒精通 Deepseek,不用找教程,不用买资料,更不用报一堆垃圾课程,所有这么去做的,都是舍近求远,因为你忽略了 deepseek 的 ...
2025-02-12自学 Python 的关键在于高效规划 + 实践驱动。以下是一份适合零基础快速入门的自学路径,结合资源推荐和实用技巧: 一、快速入 ...
2025-02-12“我们的利润率上升了,但销售额却没变,这是为什么?” “某个业务的市场份额在下滑,到底是什么原因?” “公司整体业绩 ...
2025-02-08活动介绍 为了助力大家在数据分析领域不断精进技能,我们特别举办本期打卡活动。在这里,你可以充分利用碎片化时间在线学习,让 ...
2025-02-071、闺女,醒醒,媒人把相亲的带来了。 我。。。。。。。 2、前年春节相亲相了40个, 去年春节相亲50个, 祖宗,今年你想相多少个 ...
2025-02-06在数据科学的广阔领域中,统计分析与数据挖掘占据了重要位置。尽管它们常常被视为有关联的领域,但两者在理论基础、目标、方法及 ...
2025-02-05在数据分析的世界里,“对比”是一种简单且有效的方法。这就像两个女孩子穿同一款式的衣服,效果不一样。 很多人都听过“货比三 ...
2025-02-05当我们只有非常少量的已标记数据,同时有大量未标记数据点时,可以使用半监督学习算法来处理。在sklearn中,基于图算法的半监督 ...
2025-02-05考虑一种棘手的情况:训练数据中大部分样本没有标签。此时,我们可以考虑使用半监督学习方法来处理。半监督学习能够利用这些额 ...
2025-02-04一、数学函数 1、取整 =INT(数字) 2、求余数 =MOD(除数,被除数) 3、四舍五入 =ROUND(数字,保留小数位数) 4、取绝对值 =AB ...
2025-02-03作者:CDA持证人 余治国 一般各平台出薪资报告,都会哀嚎遍野。举个例子,去年某招聘平台发布《中国女性职场现状调查报告》, ...
2025-02-02真正的数据分析大神是什么样的呢?有人认为他们能轻松驾驭各种分析工具,能够从海量数据中找到潜在关联,或者一眼识别报告中的数 ...
2025-02-01现今社会,“转行”似乎成无数职场人无法回避的话题。但行业就像座围城:外行人看光鲜,内行人看心酸。数据分析这个行业,近几年 ...
2025-01-31