OLAP的一些知识——接下去的项目需要的背景
1.维是人们观察主题的特定角度,每一个维分别用一个表来描述,称为“维表”(Dimension Table),它是对维的详细描述。
2.事实表示所关注的主题,亦由表来描述,称为“事实表”(Fact Table),其主要特点是包含数值数据(事实),而这些数值数据可以进行汇总以提供有关操作历史的信息。
3.每个事实表包括一个由多个字段组成的索引,该索引由相关维表的主键组成,维表的主键也可称为维标识符。事实表一般不包含描述性的信息,维表包含描述事实表事实记录的信息。多个维表之间形成的多维数据结构,体现了数据在空间上的多维性,也可称为“多维立方体”。
DW的多维数据模型,又分为三种:星形模式、雪花模式和事实星座模式。下面分别介绍。
1. 星形模式(Star Schema)
大多数的DW都采用星形模式。星形模式的结构主要有以下三点:
●一个含大量而无冗余数据的事实表;
●若干相对含有较少数据的维表;
●每个维度自主组成一个维表,每个维表有一个维标识符与事实表发生联系,其图形描述呈星形。
2. 雪花模式(Snowflake Schema)
“维”一般是层次结构或格结构。在例2中,商品的层次结构为商品→类→大类,商品表中每个元组表示商品所属的类及大类;商店的层次为商店→市→省→国→洲,商店表中每个元组表示商店所在的市、省、国、洲;日期的层次为日→月→年,日期表中每个元组表示“日”所属的月、年。用星形模式表示,数据冗余较大,应改用雪花模式。
雪花模式是对星形模式的扩展,实际上是对星形模式的规范化。雪花模式对星形模式的维表进一步层次化,原来的各维表可能被扩展为小的事实表,形成一些局部的“层次”区域。它的优点是最大限度地减少数据存储量,以及把较小的维表联合在一起改善查询性能
雪花模式增加了用户必须处理的表的数量,增加了某些查询的复杂性。但这可以使系统更进一步专业化和实用化,同时降低了系统的通用程度。
3. 事实星座模式(Fact Constellation Schema)
事实星座模式是指存在多个事实表,而这些事实表共享某些维表。实际上,事实星座模式是星形模式和雪花模式的组合。
OLAP概念具有下列五个特征:
(1)快速性:用户对OLAP的快速反应有很高的要求。系统应能在5秒内对用户的大部分分析要求做出反应。
(2)可分析性:OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。
(3)共享性:在大量用户间实现潜在地共享秘密数据所必需的安全性需求。
(4)多维性:多维性是OLAP的关键特征。系统必须提供对数据的多维视图和分析。
(5)信息性:不论数据量有多大,或数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信息。
OLAP是独立于DW的一种技术概念,其基本思想是公司的决策者应能灵活地操纵公司的数据,以多维的形式从诸方面和诸角度来观察公司的状态并了解公司的变化。
3. OLAP的基本概念
在OLAP中有如下几个基本概念
(1)对象(Object)
在分析型处理中我们所关注与聚焦的分析客体,称为“对象”。一般在一个应用中有一个或若干个对象,它们构成了分析应用中的焦点。如在连锁商店的分析型应用中,其中一个对象为销售金额,它是本应用分析的聚集点。
(2)变量(Variant)
变量是数据的实际意义,即描述数据“是什么”。一般情况下,变量总是一个数值度量指标,例如“人数”、“单价”、“销售量”等都是变量,而“100”、“200”则是变量的一个值。
(3)维(Dimension)
在分析型应用中,对象可以从不同角度分析与观察,并可得到不同的结果。用“维”来反映对象的观察角度,如在连锁商店例中对销售金额可以有以下三个维:、
●时间维:可按时间段分析、统计其销售金额。
●商品维:可按不同商品分类分析、统计其销售金额。
●地域维:可按连锁店不同地域分析、统计其销售金额。
维有自己固有的特征,如层次结构(对数据进行聚合分析时要用到)、排序(定义变量时要用到)和计算逻辑(基于矩阵的算法),这些特征对进行决策是非常有用的。
(5)维成员
维的一个取值称为该维的一个维成员。如果一个维是多层次的,那么该维的维成员是由各个不同维层次的取值组合而成。例如时间维有日、月、年三个层次,分别在日、月、年上各取一个值组合起来,就得到了时间维的一个成员“某年某月某日”。
(6)多维数组
一个多维数组可以表示为如下形式:(维1,维2,…,维n,变量)。例如,若商品销售数据是按时间、地区和销售渠道组织起来的三维立方体,加上变量“销售额”,就组成了一个三维数组:(时间,地区,销售渠道,销售额)。
如果在此基础上再扩展一个商品维,就得到一个四维数组:(商品,时间,地区,销售渠道,销售额)。
(7)数据单元(单元格)
多维数组的取值称为数据单元。
当多维数组的各个维都选中一个维成员,这些维成员的组合就惟一确定了一个变量的值,此时数据单元就可以表示为:(维1维成员,维2维成员,…,维n维成员,变量的值)。
例如商品、地区、时间和销售渠道上各取维成员“牙膏”、“2004年1月”、“上海”和“批发”,就惟一确定了变量“销售额”的一个值(假设为100000),则该数据单元可以表示为:(牙膏,2004年1月,上海,批发,100000)。
4. OLAP与OLTP之间的比较
ROLAP
ROLAP将分析用的多维数据存储在关系数据库中,并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。
ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(Virtual OLAP)。
尽管数据按关系型格式存储,但对用户来说,数据却是按多维方式给出。为了隐藏存储格式,应创建元数据的语义层,此层将映射到关系表。为改善响应时间,还应为概括数据或聚集数据生成元数据。所有元数据存放于可被维护和管理的关系数据库中。
设计基本步骤:
(1)利用星型模式、雪花模式、混合模式等技术来构造维模型。
(2)添加适当的聚集和概括数据。
(3)把大的数据库分解成可管理的部分来提高效率。
(4)添加生成的索引或位模式索引来增强功能。
(5)生成并存储元数据。元数据包括对维的定义、维到关系表格的映射、维间的层次关系、概括和聚集的定义和描述、公式和计算及其他数据等。
执行查询的步骤:
(1)利用数据的应用视图或维视图来构造客户工具。
(2)从客户工具查询OLAP并实时检查元数据。
(3)创建多种SELECT语句和/或相关子查询,并把它们提交给关系数据库。
(4)在数据库查询结果上完成多维功能,例如公式和计算,从字节到应用描述的转换。
(5)将结果返回给客户工具以便进一步处理和显示,或者立即进行显示。
提供给用户和管理员的主要功能有:
(1)关系数据库的商业视图。
(2)维层次支持。
(3)计算、统计和财会功能,它们都可由用户扩充。
(4)细剖细节层次。
(5)选择前后端工具。
(6)数据库管理员可以增强已有的备份和恢复功能,并可提供数据库的子集来进行个例分析。
(7)利用元数据导航。
(8)具有使用权限的多级安全性控制。
可能会遇到的问题:
(1)此方法允许使用星型和雪花模式分解数据并进行特殊处理。这增强了功能,但代价却为关系数据库的灵活性和可扩充性带来了负面影响。这使得修改数据库会产生更多困难,而且可能需要批量修改。
(2)除非是批量装载,所用的星型模式及其变形,以及所用的聚集和概括数据都假定数据是静态的。
(3)进行行一级的计算,例如,当利润等于收入减成本时,需要置换行和列。即使采用多个SELECT语句,此种计算仍会受到限制。
(4)管理并维护元数据是一个长期的问题,并且长期消耗成本。
ROLAP的实现
1 将数据的多维结构划分为两类表:
事实表(用来存储事实的度量值及各个维的码值)
维度表(维的描述信息,包括维的层次及成员类别等)
2 按照两种结构设计:
星型模型
雪花模型
注:在ROLAP中,多维数据立方体并没有真正存在,通常需要在接受客户OLAP请求后,ROLAP服务器需要将SQL语句转化为多维存取语句,并利用连接运算拼合出多维数据立方体,因此ROLAP的响应时间较长。
基于多维数据库(MDDB)的OLAP-MOLAPOLAP服务器:存储OLAP服务软件和多维数据库
MDDB存储:采用“超立方体”形式
MDDB存取:多维操作
设计基本步骤:
(1)选择功能,例如,销售收入分析和财经分析报表。
(2)指明数字信息,例如存储类似销售收入和顾客的度量信息。
(3)确定维(时间,地区和产品等)以及每一维的粒度,例如,时间是按月和季度,地区按市、县或地区等。
(4)定义逻辑模型并装载多维数据存储,这可以直接从数据源中获得,也可以过滤并匹配数据仓库所选内容。
提供给用户的主要功能:
(1)对内涵查询的快速响应,只有快速响应才能保证分析和思考的过程。
(2)与多位数据库进行交互,使其支持预测、预先计划、进行预算等应用。
(3)发掘各维元素或信息间丰富的联系,以便发现微妙的关系。
(4)强大的计算引擎和比较分析,包括分级、比较、按百分比分类、最大值、最小值、平均值、平均转手率、按时期比较等。
(5)交叉维计算,或对基于电子表格的应用按行计算。
(6)综合统计和财务功能,如现金转账、趋势分析、时间序列分析等。
(7)灵巧计时,日期中的年、当前时刻、财务或内部的日历等。
(8)具有查询数据仓库底层细节数据的能力。
(9)沿单维或多维处理的基准点、表格、细剖和统览以及其他强有力的导航功能。
可能会遇到的问题:
(1)所支持的多维数据库的尺寸小于关系数据库的尺寸。这时可利用稀疏矩阵技术来节省空间,其副作用是增加操作、因为,存储的是概括和聚集信息,所以存储的需求要比原来的小。
(2)按粒度的级别(概括的、聚集的、预计算和派生的数据)来存储数据会带来副作用,如细剖无法达到细节数据级。
(3)高层次级别的数据具有访问和安全性控制,但没有基于使用的权限和子集级的访问控制。
(4)维结构的改变需要重组多维数据库,常用的备份和恢复功能会受限。
(5)因需要特定的前后端,会限制选择。但在扩充多维数据库的前后端后,又会导致它不能移植至另一多维数据库。
MOLAP首先对事实表中的所有外键进行排序,并将排序后的具体指标数值一一写进虚拟的多维立方体中。当然,虚拟的多维立方体只是为了便于理解而构想的,MOLAP实际的数据存储放在数据文件(Data File)中,其数据放置的顺序与虚拟的多维立方体按x,y,z坐标展开的顺序是一致的(如上图)。同时,为了数据查找的方便,MOLAP需要预先建立维度的索引,这个索引被放置在MOLAP的概要文件(Outline)中。
图中左边是ROLAP方式,右边是MOLAP方式,两者对应的是同一个三维模型。
HOLAP:混合型联机分析处理
迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。
- 对于常用的维度和维层次,在HOLAP中使用多维数据表来记录。
- 对于不常用的维度和数据,采用类似于ROLAP星型结构来存储。
- 允许将大量详细数据存放在关系数据库中,而聚集保持在分离的MOLAP存储中。
- HOLAP在主要性能上都介于 MOLAP和 ROLAP之间,其技术复杂度高于MOLAP和 ROLAP。
- HOLAP得益于ROLAP的可伸缩性,和MOLAP的快速计算。(如MS SQL SERVER)
- 在HOLAP的多维数据表中的数据维度少于MOLAP中的维度表,数据存储容量也少于MOLAP方式。
- HOLAP在数据存取速度上又低于MOLAP。
OLAP的一些知识——接下去的项目需要的背景的更多相关文章
- PMP(第六版)十大知识领域、五大项目管理过程组、49个过程矩阵
今天整理了PMP(第六版)十大知识领域.五大项目管理过程组.49个过程矩阵,分享出来,希望对要考PMP的童鞋有帮助. PS.红字是与第五版的差异 转走请标明出处 https://www.cnblog ...
- vue+webpack项目打包后背景图片加载不出来问题解决
在做VUE +的WebPack脚手架项目打包完成后,在IIS服务器上运行发现项目中的背景图片加载不出来检查项目代码发现是因为CSS文件中,背景图片引用的路径问题;后来通过修改配置文件,问题终于解决了, ...
- Vue项目打包后背景图片路径错误
vue项目打包之后背景图片出错的解决方案如下: 1,找到 config->index.js里面,如下修改 默认配置: env: require('./prod.env'), index: pat ...
- My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
是这样,我在我的android项目中想实现zxing也就是二维码的一些功能,但是需要的一个源码工程是androidstudio工程,想把这个工程转成eclipse工程并导成jar包在我的项目中使用. ...
- 【知识碎片】Net项目经验积累
后台传JSON到js报错 MVC控制器传json到前端JS"变为" 导致JS报错 重点是一定要在@ViewBag.typeJson两边加双引号,并且后台用 编码前台解码 ViewB ...
- 百科知识 国内的创业项目如何众筹,能登录Kickstarter吗
一个国内的团队登陆Kickstarter到底有多难? 300万用户,4.8亿美元筹款,Kickstarter在2013年交出了一份惊艳的答卷.对于美英澳加新荷六国的创业团队来说,Kickstarter ...
- vue cli 打包项目造成css背景图路径错误
vue cli做项目的时候难免会碰到,css引用背景图或者css,js之间的相互引用!!!这时候打包后可能会出现一个错误!!如下图: 写法: 错误: 会无端多出一个“/css/static/” 这样就 ...
- android 项目中设置背景图片
xml文件设置背景图片中:任意一个控件,button imageView 或layout,在其的xml属性设置中,添加 [XML] view plaincopy android:background= ...
- 解决vue项目打包后背景图片找不到的问题
在build->webpack.base.conf.js里添加一句代码: 具体位置在module->rules下 publicPath:"../../",
随机推荐
- 5月21日 CSS样式表加阴影
HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- 3D旋转动画
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- Maven(1)-安装和配置
Maven(1)-安装和配置 一.本机必须安装好Jdk 二 .maven下载 http://maven.apache.org/download.cgi ,下载后把maven-bin解压到自己的目录即可 ...
- [python学习]结合开源库学习python
代码碎片1 #!/usr/bin/python # please add your code here! import matplotlib matplotlib.use('Agg') import ...
- 简单管理用户SESSION小记(个人观点,欢迎斧正)
做了几年码农,记录下一般涉及到用户session管理的方法. 问题说明: a.用户如果点击退出时,可以获取用户动作,这样可以销毁session. b.用户直接关闭浏览器或者直接意外关机情况,无法获取用 ...
- 利用电话管理器TelephonyManager获取网络和SIM卡信息
import java.util.ArrayList;import java.util.HashMap;import java.util.Map; import android.os.Bundle;i ...
- NSDateFormatter 根据时间戳求出时间
NSDateFormatter 根据时间戳求出时间 - (void)detailWithStyle:(NSString*)style time:(NSInteger)time { // NSStrin ...
- u-boot 之配置分析 (2)
Makefile简要分析所有这些目录的编译连接都是由顶层目录的makefile来确定的. 1.在makefile中有: unconfig: @rm -f $(obj)include/config.h ...
- Rhel6-集群管理(luci&&ricci)配置文档
理论基础: User → HA → Lb → web → sql → 分布式filesystem ->磁盘I/O 用户 高可用 负载均衡 应用 数据库 mf ...
- PC客户端测试总结
1.1界面显示内容的检查l 完整性(1显示时应考虑数据显示宽度的自适应或自动换行(数据长度较长).(2所数据展现的界面(如查询等),必须使测试数据的记录数超过一页,以验证满页时其窗体是否有横向.纵向滚 ...