qiqiwang
作者qiqiwang·2015-07-30 09:42
软件开发工程师·qiqiwang

数据仓库和OLAP技术回顾综述

字数 2209阅读 1836评论 0赞 0

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.体系结构和端到端的处理

A.jpg

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

B.jpg

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

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

底层的数据仓库服务器通常是一个关系数据库系统。中间层OLAP服务器,典型实现为ROLAP模型或MOLAP模型。顶层为前端客户端,用于数据分析和挖掘等(如趋势分析、预测)。

5.数据库设计方法

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

C.jpg

图4:星形模式举例

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

D.jpg

图5:雪花模式举例

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

6.索引技术

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

索引结构

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

E.jpg

图6:位图索引举例

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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广