OLAP(在线分析处理)技术
60年代,关系数据库之父E.F.Cdd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。1993年,E.F.Cdd提出了OLAP(联机分析处理)概念,认为OLTP已不能满足终端用户对数据库查询分析的需要,SQL对大型数据库进行的简单查询也不能满足终端用户分析的要求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,E.F.Cdd提出了多维数据库和多维分析的概念,即OLAP技术概念。
OLTP与OLAP的不同点:
OLTP数据 |
OLAP数据 |
原始数据 |
导出数据 |
细节性数据 |
综合性和提炼性数据 |
当前值数据 |
历史数据 |
可更新 |
不可更新,但周期性刷新 |
一次处理的数据量小 |
一次处理的数据量大 |
面向应用,事务驱动 |
面向分析,分析驱动 |
面向操作人员,支持日常操作 |
面向决策人员,支持管理需要 |
◆ 定义
OLAP(联机分析处理) :是使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术——OLAP委员会的定义(请特别注意,这是一类技术,而非特指某软件、或管理方法)。
OLAP的目标:是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,因此OLAP也可以说是多维数据分析工具的集合。
◆ OLAP相关基本概念:
1、维:是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。
2、维的层次:人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年)。
3、维的成员:维的一个取值。是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)
4、多维数组:维和变量的组合表示。一个多维数组可以表示为:(维1,维2,…,维n,变量)。(时间,地区,产品,销售额)
5、数据单元(单元格):多维数组的取值。(2000年1月,上海,笔记本电脑,$100000)
◆ OLAP的特性
1、快速性:用户对OLAP的快速反应能力有很高的要求,主要是指计算机的计算的反应速度,系统应能在5秒内对用户的大部分分析要求做出反应,但对业务数据的实时信息却很难反应。
2、可分析性:OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。
3、多维性:多维性是OLAP的关键属性。系统必须提供对数据的多维视图和分析,包括对层次维和多重层次维的完全支持。。
4、信息性:不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信息。
◆ OLAP多维数据结构
1、超立方结构(Hypercube) :超立方结构指用三维或更多的维数来描述一个对象,每个维彼此垂直。数据的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。(收缩超立方结构。这种结构的数据密度更大,数据的维数更少,并可加入额外的分析维)。
2、多立方结构(Multicube):即将超立方结构变为子立方结构。面向某一特定应用对维进行分割, 它具有很强的灵活性,提高了数据(特别是稀疏数据)的分析效率。
1、切片和切块(Slice and Dice):在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在“城市、产品、时间”三维立方体中进行切块和切片,可得到各城市、各产品的销售情况。OLAP分析示意图:
2、钻取(Drill) :钻取包含向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)操作, 钻取的深度与维所划分的层次相对应。
3、旋转(Rotate)/转轴(Pivot):通过旋转可以得到不同视角的数据。
1、OLAP分类
2、OLTP、ROLAP与MOLAP模式
3、ROLAP的星型模式(Star Schema)
事实表:用来存储事实的度量值和各个维的码值。
维 表:用来存放维的元数据(维的层次、成员类别等描述信息)。
4、MOLAP的多维立方体(Multicube)
5、数据组织形式
6、ROLAP与MOLAP的性能对比
|
ROLAP |
MOLAP |
优势 |
没有大小限制 现有的关系数据库的技术可以沿用 可以通过SQL 实现详细数据与概要数据的存储 现有关系型数据库已经对OLAP 做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL 的OLAP 扩展(cube,rollup) 等大大提高ROALP 的速度 |
性能好、响应速度快 专为OLAP所设计 支持高性能的决策支持计算 复杂的跨维计算 多用户的读写操作n 行级的计算 |
缺点 |
一般比MDD 响应速度慢 不支持有关预计算的读写操作 SQL 无法完成部分计算 无法完成多行的计算 无法完成维之间的计算 |
增加系统复杂度,增加系统培训与维护费用 受操作系统平台中文件大小的限制,难以达到TB 级(只能10~20G) 需要进行预计算,可能导致数据爆炸 无法支持维的动态变化 缺乏数据模型和数据访问的标准 |
五、OLAP体系结构
Ø OLAP模型必须提供多维概念模型
Ø 透明性准则
Ø 存取能力准则
Ø 稳定的报表性能
Ø 客户/服务器体系结构
Ø 维的等同性准则
Ø 动态稀疏矩阵处理准则
Ø 多用户支持能力准则
Ø 非受限的跨维操作
Ø 直观的数据处理
Ø 灵活的报表生成
Ø 非受限的维与维的层次
1、OLAP产品
Ø Hyperion Essbase
Ø Oracle Express
Ø IBM DB2 OLAP Server
Ø Sybase Power dimension
Ø Informix Metacube
Ø CA OLAP SERVER
Ø Microsoft analysis services
Ø Cognos
Ø MicroStrategy
Ø Brio
Ø Business Object
2、OLAP工具性能对比
Hyperion Essbase
–以服务器为中心的分布式体系结构–有超过100个的应用程序
–有300多个用Essbase作为平台的开发商
–具有几百个计算公式,支持多种计算
–用户可以自己构件复杂的查询
–快速的响应时间,支持多用户同时读写
–有30多个前端工具可供选择
–支持多种财务标准
–能与ERP或其他数据源集成
–全球用户超过1500家
Oracle 9i
–Oracle DW支持GB~TB数量级
–采用类似数组的结构,避免了连接操作,提高分析性能
–提供一组存储过程语言来支持对数据的抽取
–用户可通过Web和电子表格使用
–灵活的数据组织方式,数据可以存放在
–Express Server内,也可直接在RDB上使用
–有内建的分析函数和4GL用户自己定制查询
IBM DB2 OLAP Server
–把Hyperion Essbase的OLAP引擎和DB2的关系数据库集成在一起。
–与Essbase API完全兼容
–数据用星型模型存放在关系数据库DB2中
Informix Metacube
–采用metacube技术,通过OLE和ODBC对外开放
–采用中间表技术实现多维分析引擎,提高响应时间和分析能力
–开放的体系结构可以方便地与其他数据库及前台工具进行集成
Cognos
- 提供整套的数据仓库应用产品,包括ETL、多维立方存储、前端展示工具。
- 强大的专业化的OLAP 数据引擎(OLAP 服务器),它能产生多维数据分析的立方体(Cubes)
- 采用集中方式、基于LDAP的安全管理机制
- 企业级OLAP服务器,具有负载均衡、服务器容错,能支持大用户数和大数据量的访问
MicroStrategy
- 开发的API(包括COM、XML、Java)
- 智能立方体(Intelligent Cubes TM)
- 支持大量用户及大数据量访问,支持TB级数据
- ROLAP,提供OLAP Server,以及零客户端的web前端展现工具
- 适合二次开发以及大量复杂二次运算
Brio
- 优秀的OLAP前端工具
- ROLAP,可以接驳主流OLAP Server
- 支持负载平衡
应用领域
–市场和销售分析(Marketing and Sales analysis)
–电子商务分析(Clickstream analysis)
–基于历史数据的营销(Database marketing)
–预算(Budgeting)
–财务报告与整合(Financial reporting and consolidation)
–管理报告(Management reporting)
–利益率分析(Profitability analysis)
–质量分析(Quality analysis)
OLAP标准APB-1(AQT-Analytical Query Time作为统计指标)
–从联机分析处理到联机分析挖掘(OLAM/OLAP挖掘)
–将联机分析处理与数据挖掘以及在多维数据库中发现知识集成在一起。
–联机分析挖掘提供在不同的数据子集和不同的抽象层上进行数据挖掘的工具.
–联机分析挖掘为用户选择所期望的数据挖掘功能动态修改挖掘任务提供了灵活性 。
–超立方体计算与传统挖掘算法的结合
先进行立方体计算,后进行数据挖掘
先对多维数据作数据挖掘,然后再利用立方体计算算法对挖掘结果分析
立方体计算与数据挖掘同时进行
回溯特性
OLAP基于Web的应用
–静态方法 静态HTML报表
–动态方法 通过HTML模板及元数据动态生成报表
–改进方法 使用Java或ActiveX
面向对象的联机分析处理
–O3LAP(Object-Oriented OLAP)
对象关系的联机分析处理
–OROLAP (Object Relational OLAP)
分布式联机分析处理
–DOLAP (Distributed OLAP)
时态联机分析处理
–TOLAP (Temporal OLAP)