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-MOLAP
OLAP服务器:存储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。
时间: 2024-08-29 18:32:05

OLAP的一些知识——接下去的项目需要的背景的相关文章

Vue项目打包后背景图片路径错误

vue项目打包之后背景图片出错的解决方案如下: 1,找到 config->index.js里面,如下修改 默认配置: env: require('./prod.env'), index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', 修改为: env

知识付费蓝海项目轻松月入过万(新手也可快速盈利)

前言: 据说有人利用这个项目2个人2个月时间赚了十几万. 那OK,不废话,直接开始. 我会从这几个方面给大家分享 1,项目原理和未来市场的大概介绍 2,价值百万资源的获取方法 3,个人品牌的打造与包装 4,多个精准引流实战方法与成交 5,更多后端放大玩法: 比如利用裂变的方式让赚钱更轻松. 整个分享过程,会用简单易懂的大白话为大家讲解项目,不搞那些装逼的专业术语. 实战与思维,都会讲到. OK,先说下第一个:项目原理和未来市场的大概介绍. 项目原理其实很简单,牛逼点说: 知识付费共享.通俗点说就

百科知识 国内的创业项目如何众筹,能登录Kickstarter吗

一个国内的团队登陆Kickstarter到底有多难? 300万用户,4.8亿美元筹款,Kickstarter在2013年交出了一份惊艳的答卷.对于美英澳加新荷六国的创业团队来说,Kickstarter是一个创业的"助推器",只要产品够好,就能够筹到创业的第一笔金:对于用户来说,那里也许是个不错的"网店",能买到各种有创意或科技范十足的产品.但对于中国的创业团队来说,Kickstarter则更像是一个山巅的火炬,是梦想,是希望,但更意味着可能一路的荆棘. 一直以来,K

l零碎知识,以及简单项目的步骤

repeater的Command用法:1.ItemCommand事件 - Repeater中所有可以触发事件的控件,都会来执行这一个事件 2.CommandName - 随意的起名,在后台事件中按照这个名字来区分你按下的是哪一个功能按钮 3.CommandArgument - 事件数据,通常放置主键值,在后台使用 e.CommandArgument来获取主键数据 简单项目: 1.登陆界面,拥有用户名密码,记住密码xxx天 控件和cookies 2.主界面,有数据列表展示,对这个表的增删改操作,顶

My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包

是这样,我在我的android项目中想实现zxing也就是二维码的一些功能,但是需要的一个源码工程是androidstudio工程,想把这个工程转成eclipse工程并导成jar包在我的项目中使用. 我是直接新建一个eclipse工程,然后把androidstudio工程中src目录下,main目录下的java目录下的所有文件都直接复制粘贴到eclipse工程的src目录下,在把res中的布局文件都复制过去,就ok啦,然后再像平时那样把工程导成jar包,但是要注意,导jar包的时候,只选择src

【开源项目解析】背景有波浪效果的TextView——从Titanic项目学习BitmapShader的使用

Hello,好久没写文章了,有木有想我呀~ 正式工作已经过去一个月了,发现在青岛实习和在北京工作,感觉完全不一样呢~ 现在每天晚上回到住的地方,都累的想睡觉-所以也没心情写太多文章和大家分享了,不过我会尽快调整状态,重振雄风的!(哪里起来怪怪的-) 项目介绍 我的想法 实现思路 项目介绍 这篇文章,会介绍一个开源项目,叫做Titanic,是的,中文名就叫"泰坦尼克"- 下面是项目地址 https://github.com/RomainPiel/Titanic 要实现的效果是下面这样滴

vue项目中设置背景图片

在vue项目开发中,我们经常会碰到动态添加背景图片的问题,可是当我们在样式中添加了背景图片后,背景图片并不能正常的显示出来,如下css样式 这个时候就要考虑使用其它方式了,node中提供了一种有效的方式来解决这个问题就是require 通过行内样式引入就可以解决背景图片不显示的问题了

第六次作业 业务流程、知识管理、项目整体绩效评估

一.业务流程管理与重组1.流程管理的本质与核心是什么: 流程管理的本质就是构造卓越的业务流程,核心是流程. 2.流程管理与BPR的区别: 流程管理包含了BPR,但是比BPR概念更广泛,更适合现实的需要 3.业务流程改进的过程和方法中,分析问题用哪2个图:寻找原因用什么图. 矩阵图    寻找原因用鱼骨图 4.流程的分析与设计方法是哪六条(只答小标题): (1)价值链分析法 (2)ABC成本法 (3)流程建模和仿真 (4)基于UML流程分析和建模方法 (5)头脑风暴法和德尔菲法 (6)标杆瞄准法

互联网广告的个性化推荐平台设计--相关知识

人群分类模型 根据用户人群数据记录,建立人群属性分类模型,根绝用户特点,将用户标记为特定类别.据此进行精准定向服务,并进行效果评估.主要分类方法: 1.采用模糊数学综合判定理论,构建关系矩阵,判定类别属性的映射关系.采样真实数据,模拟真实数据分布,统计属性取值的概率分布,作为概率的估计值,另外,将广告类别的点击次数作为权重矩阵R.构建映射关系公式: R是关系矩阵,W是出现次数矩阵,C是计算结果的类别判定矩阵. 2. 采用分类器算法构建分类模型.根据数据特点,利用数据挖掘和机器学习 相关的分类器算