设为首页 加入收藏

TOP

数据仓库和OLAP技术回顾综述
2014-11-24 03:16:19 来源: 作者: 【 】 浏览:1
Tags:数据 仓库 OLAP 技术 回顾 综述

1. Introduction

宽泛的讲,数据仓库是一种数据库,它与单位的操作数据库分别维护。数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。

Data warehousing is acollection of decision support technologies, aimed at enabling the knowledgeworker(executive, manager, analyst) to make better and faster decisions.

A data warehouse is a “subject-oriented,integrated, time-varying, non-volatile collection of data that is usedprimarily in organizational decision making”(William H. Inmon, 1996)

注意区分data warehouse(数据仓库)和 datawarehousing(构建和使用数据仓库的过程)。

四个关键字,面向主题的,集成的,时变的,非易失的,将数据仓库与其他数据存储系统相区别。

面向主题:数据仓库关注决策者的数据建模与分析;集成的:构造数据仓库是将多个异构数据源继承在一起;时变的:数据存储从历史的角度(如过去的5到10年)提供信息;非易失的:数据仓库总是物理的分离存放数据(它只需要两种数据访问操作:数据的初始化装入和数据访问)

数据仓库支持联机分析处理(on-line analytical processing),这有别于操作数据库所支持的联机事务处理(on-line transaction processing)。

注意区分OLTP与OLAP:

联机操作数据库系统的主要任务是执行联机事务和查询处理。因此OLTP是面向顾客的(如学生查成绩),通常管理当前数据,采用ER模型和面向应用的数据库设计,访问源主要由短的原子事务组成。

OLAP则是面向知识工人的,用于进行数据分析,OLAP系统管理着大量历史数据,提供汇总和聚集机制,通常采用星形和雪花模型和面向主题的数据库设计,对OLAP系统的访问大部分是只读操作。因此,查询吞吐量和响应时间要比事务吞吐量更重要。

为了便于进行复杂的分析与可视化,数据仓库中的数据通常进行多维建模。并且维度是有层次关系的,如时间层次day-month-quarter-year,产品层次product-category-industry。

OLAP operations includerollup (increasing the level of aggregation) and drill-down (decreasing the levelof aggregation or increasing detail) along one or more dimension hierarchies,slice_and_dice (selection and projection), and pivot(re-orienting themultidimensional view of data).

数据仓库可以在标准或扩展的关系型数据库管理系统上进行实现,称为关系型OLAP(ROLAP)服务器。相比,多维OLAP(MOLAP)服务器则使用特殊的数据结构直接存储多维数据。

2.体系结构和端到端的处理

\

图1:数据仓库体系结构图

\

图2:一张更易读的数据仓库体系结构图

通常采用三层体系结构:前端工具(顶层)-OLAP服务器(中间层)-数据仓库服务器(底层)。

底层的数据仓库服务器通常是一个关系数据库系统。中间层OLAP服务器,典型实现为ROLAP模型或MOLAP模型。顶层为前端客户端,用于数据分析和挖掘等(如趋势分析、预测)。< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+IDwvcD4KPHA+PHN0cm9uZz4zLrrztsu5pL7fus3KtdPDs8zQ8jwvc3Ryb25nPjwvcD4KPHA+uvO2y7mkvt/Tw9PavfjQ0Mr9vt21xMzhyKGhosflwO2hotewyOvT68ui0MKho8r9vt3M4ciho6zNqLOj08m24Lj20uy5ubXEzeKyv8r9vt3UtMrVvK/K/b7do7vK/b7dx+XA7aOsvOyy4sr9vt3W0LXEtO3O86Osv8nE3MrH0N7V/cv8w8e1xNf3zu+ju8r9vt3XsMjro6zFxdDyoaK749fcoaK6z7KioaK8xsvjytPNvKGivOyy6c3q1fvQ1KGisqK9qMGiy/fS/brNu6631qO7y6LQwqOstKuypdPJyv2+3dS0tb3K/b7dsta/4rXEuPzQwqGjPC9wPgo8cD4gPC9wPgo8cD48c3Ryb25nPjQuuMXE7sSj0M26zcewtsu5pL7fPC9zdHJvbmc+PC9wPgo8cD5JbiBhIG11bHRpZGltZW5zaW9uYWwgZGF0YW1vZGVsLCB0aGVyZSBpcyBhIHNldCBvZiBudW1lcmljIG1lYXN1cmVzIHRoYXQgYXJlIHRoZSBvYmplY3RzIG9mIGFuYWx5c2lzLkV4YW1wbGVzIG9mIHN1Y2ggbWVhc3VyZXMgYXJlIHNhbGVzLCBidWRnZXQsIHJldmVudWUsIGludmVudG9yeSwgUk9JLiBFYWNoIG9mdGhlIG51bWVyaWMgbWVhc3VyZXMgZGVwZW5kcyBvbiBhIHNldCBvZiBkaW1lbnNpb25zLCB3aGljaCBwcm92aWRlIHRoZSBjb250ZXh0Zm9yCiB0aGUgbWVhc3VyZS4gRm9yIGV4YW1wbGUsIHRoZSBkaW1lbnNpb25zIGFzc29jaWF0ZWQgd2l0aCBhIHNhbGUgYW1vdW50IGNhbmJlIHRoZSBjaXR5LCBwcm9kdWN0IG5hbWUsIGFuZCB0aGUgZGF0ZSB3aGVuIHRoZSBzYWxlIHdhcyBtYWRlLiBFYWNoIGRpbWVuc2lvbmlzIGRlc2NyaWJlZCBieSBhIHNldCBvZiBhdHRyaWJ1dGVzLjwvcD4KPGltZyBzcmM9"https://www.cppentry.com/upload_files/article/57/1_tpmtg__.jpg" alt="\">

图3:多维数据模型

5.数据库设计方法

这里我们讨论影响数据多维试图的关系数据库模式的设计。大部分的数据仓库使用星形模式(star schema)来表示多维数据模型。数据库包括一张事实表(fact table),事实表包含着所有的维,每项使用指针指向各个维表。每个维表中不同的列表示着该维的不同属性。

\

图4:星形模式举例

雪花模式(snowflakeschema)是星形模式的变种,其中某些维表被规范化,因而把数据进一步分解到附加的表中。雪花模式的维表可能是规范化的形式,一遍减少冗余,这种表易于维护,并节省存储空间。

\

图5:雪花模式举例

复杂的应用可能需要多个事实表共享维表,这种模式可以看作星形模式的汇集,因此称为事实星座(fact constellation)。


6.索引技术

数据仓库可能包含着大量的数据,因此对查询响应的优化是必要的。首先,数据仓库使用冗余结构,如索引和物化视图(materialized views)。另外,可使用并行化进行查询响应时间的优化。可以使用位图索引和连接索引对OLAP数据进行索引。

索引结构

位图索引(bitmapindexing),位图索引时recordid(RID)列表的一种替代表示。连接索引(join indexing)方法的流行源于它在关系数据库查询处理方面的应用。


图6:位图索引举例

物化方法和构造OLAP索引结构的目的是加快数据立方体查询处理的速度。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库技术-数据库命名与设计规范 下一篇大数据和广告技术(BigDataandAd-..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)
·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)