对数据进行分析处理的要求使得传统的数据库技术不能满足要求,为了解决这个问题,Inmon[Inm02]提出了数据仓库的概念。他对于数据仓库是这样定义的:数据仓库就是一个用以更好地支持企业或组织的决策分析处理、面向主题的、集成的、不可更新的、随时间不断变化的数据集合。数据仓库有以下特点:
● 面向主题(Subject-oriented):数据仓库中的数据是面向主题进行组织的。
● 集成(Integrated):数据仓库中通常集成了多个异质数据源的数据。在集成过程中,需要对数据进行清洗、转换以保证数据的一致性。
● 稳定(Nonvolatile):数据仓库中的数据是反映一段相对长时间内历史数据的内容,是不同时间数据库快照的集合,以及基于这种快照进行统计、综合和重组的导出数据。所设计的操作主要是数据查询,一般不会进行修改操作。
● 随时间变化(Time-variant):数据仓库随时间变化不断增加新的内容,删去旧的内容。
数据仓库技术在过去的一段时间内发展迅速,已经成功地应用到电信、银行、保险等行业。随着企业信息化的不断深入,这种发展还会持续。
2.1.1 联机分析处理与数据立方体为了让决策支持人员更好地去分析处理数据仓库中的海量数据,E. Codd于1993年提出了联机分析处理(OLAP: On-Line Analytical Processing)的概念[CCS93a, CCS93b]。OLAP工具通过对信息的多个角度(维)进行快速、一致、稳定的交互访问,决策支持人员可以深入地进行观察。OLAP工具是为了满足更高效地进行多维分析的需求而产生的,其主要功能是根据用户所选择的分析角度,事先计算好一些辅助结构,以便在查询对能够抽取到所需要的记录。
OLAP系统中的数据通常会以一个多维的结构模型表现出来。表2.1是一个简单的销售数据仓库的基表(base table),基表中的一条记录称为元组(tuple),该基表中一条元组有三个属性:时间、产品名称和地点,在这里被称为维度(dimension),这些维用来表示和区分开不同的数据。销量属性是一个数值类型的度量值(measure),是人们想要去分析的数据。维度通常也会分层次(hierarchy),例如时间维度可能会分为年、月、日、季度等层次。
地点
产品名称
时间
销量
广州(GZ)
篮球(B)
2007.5(M1)
20
广州(GZ)
足球(F)
2007.6(M2)
15
深圳(SZ)
篮球(B)
2007.5(M1)
25
表2.1销售数据仓库的基表
数据立方体(Data Cube)是由Gray等人提出[GCB+97]。它是对所有维度的所有可能结合,根据不同聚集粒度进行group-by操作而产生的一个概括化数据集合。每一个group-by操作都与一个单元(cells)的集合相关联,数据立方体关于表2.1的所有单元都在表2.2中列出,在表中,“*”表示在这一维度中,它可以匹配到这个维度值域中的任何一个值。
上卷(roll-up)和下钻(drill-down)是数据立方体中的两种基本语义关系。一个较高聚集层次的单元可以下钻到一个较低聚集层次的单元,如:(GZ, *, M1)下钻到(GZ, B, M1)。一个较低聚集层次的单元可以上卷到一个较高聚集层次的单元,如:(SZ, B, M1)上卷到(*, B, *)。一个立方体中的所有单元间的上卷/下钻关系构成了一个网格结构。图2.1中表现出了表2.2中的立方体网格。
地点
产品名称
时间
总和(销量)
GZ
B
M1
20
GZ
F
M2
15
SZ
B
M1
25
GZ
B
*
20
GZ
*
M1
20
*
B
M1
45
…
…
…
…
SZ
*
*
25
*
F
*
15
*
*
M1
45
*
*
*
60
表2.2 数据立方体中的单元
SHAPE \* MERGEFORMAT
图2.1 数据立方体网格
2.2 并行计算大规模科学与工程计算应用使得人们对计算机性能要求不断提高。例如天气预报、空间模拟、石油勘探等科学计算对计算机的性能要求可以说是无穷无尽的。单台作业的计算机是根本无法满足这种计算需求的,因此人们便开始尝试应用新技术使得多台单独作业的计算机可以协调地共同进行工作,并行计算机便开始逐步走入人们的视野。
并行计算是伴随着并行计算机的出现,在近三十年来迅速发展的一门交叉学科,是指在并行计算机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加快求解速度,或者