数据聚集技术及其在开源项目Mondrian中的实现
数据聚集(Aggregation)是数据仓库技术的主要特征之一,也是能够显著提高数据仓库系统性能的最有效手段之一。无论是在数据仓库设计还是在联机分析处理中,数据聚集都是一个重要的概念,它提供了一种便于使用、快速而且响应时间一致的数据查询机制,在为用户提供最终查询结果的同时可以有效的减少资源耗费。
【IT专家网独家】
1 聚集的概念及其作用
聚集是指按照维粒度、指标与计算元的不同,依据实际分析需要对底层数据进行记录行压缩、表联接、属性合并等预处理,是对底层的详细数据进行相应的统计的数据加工形式,包括求和、求平均值等。
聚集计算的结果是根据用户可能的查询预先计算好的汇总数据。汇总的形式多种多样,可以沿着数据仓库中的多维数据的任何一维或多维进行。如果维分层次,聚集还可以在任何一个层次上进行。维的某种组合对应的聚集数据称为一个方体(Cuboid),给定维集合的所有方体形成的方体格称为该维集合的数据立方(Data Cube)。数据立方的建立就是通过聚集实现的。
数据聚集用于提升数据仓库系统进行联机分析处理时的性能,它通过在问题提出之前就准备好答案来缩短查询响应时间,是OLAP技术能够快速响应的基础,主要体现在以下几个方面:
(1) 聚集降低了直接访问基础数据对前端应用的影响
联机分析处理通常需要的是由细节数据导出的汇总数据,直接在海量基础数据上进行查询统计将极大的影响系统效率。通过聚集预先计算出需要的汇总数据,从而避免对基础数据的直接访问。
(2) 聚集减少了对基础数据的重复计算
不同的联机分析处理操作可能都需要对同一部分基础数据进行同样的处理。如“2000年第2季度A地区的销售额”是对该地区该时间段内所有销售记录的统计汇总,在进行“A地区2000年不同季度销售额对比”、“A地区不同年份第2季度的销售额对比”、“不同地区2000年第2季度销售额对比”等处理时,都需要使用该汇总数据。通过聚集预先计算出该汇总数据,从而避免对相关基础数据的重复计算。
(3) 使用聚集可以在一定程度上保证数据一致性
一方面,数据仓库中的基础数据是不可实时更新的,由这些相对稳定的基础数据导出的聚集反映的是一段时间内的汇总信息。另一方面,数据仓库中的数据又是时变的,新的数据将被定期的增加。通过聚集可以在一定程度上保证分析过程访问的数据的一致性,避免因直接使用基础数据而导致先后汇总的数据不一致。
2 聚集的存储组织
聚集数据通常以多维数据集的形式组织。多维数据集是包含维度和度量值的多维结构,其中维度定义多维数据集的结构,确定度量值的坐标,反映了可以向多维数据集提出的查询;度量值提供了用户感兴趣的数值。
2.1 三种聚集存储方式的比较
聚集数据按维所指定的坐标存储在多维结构单元中,存储位置依赖于多维数据集的存储方式。包括多维结构(MOLAP)方式和关系型结构(ROLAP)方式,两种方式有各自的优势。
(1) MOLAP方式:聚集数据和基础数据的副本一起存储在多维结构中。
该方式存储结构简洁、明了,聚集数据预综合较高,可以很大程度的提升查询性能。缺点是适应维数动态变化较差,增加一维,聚集规模迅速增长;适应数据变化较差,数据变化时,聚集重计算量相当大。
(2) ROLAP方式:聚集数据与基础数据一起保存在关系结构中。
该方式下聚集数据与基础数据存放在关系表中,适应维数动态变化较好,维数的增加对已有聚集的影响不大;适应数据变化的范围大,聚集数据预综合度灵活,各种粒度的聚集数据可以分开存储。缺点是存储结构和处理过程复杂,处理时间通常也较长。
- 本文关键词:

