论文部分内容阅读
为了加速响应联机分析处理系统中的复杂多维查询,通常需要预先计算并保存数据立方。然而数据立方的巨大尺寸却给数据立方的计算和存储带来诸多难题。为了保存数据立方不得不消耗大量的存储空间;同时在计算数据立方所耗费的时间代价中,占支配地位的就是用于存储数据立方的结果集所带来的大量I/O操作。为了从根本上解决这些问题,需要探索有效的数据立方计算和组织方法。浓缩数据立方(Condensed Data Cube)是一种有效缩小数据立方尺寸的机制,其中基本单元组的浓缩(BST Condensing)是指把那些由同一条基表元组计算聚集得到的立方元组浓缩成一条,从而减小数据立方的体积,基本单元组的浓缩实质上又是一种特殊的前缀共享。小方内的前缀共享技术(Prefix Sharing)通过消除同一数据小方内元组之间的前缀冗余来进一步压缩数据立方。将这两种前缀共享技术结合,就得到了一种新的数据立方组织结构-前缀立方(PrefixCube)。PrefixCube把基本单元组浓缩数据立方中的立方元组按数据小方聚簇,然后消除数据小方内的前缀冗余,在减小数据立方存储开销的同时,通过减少数据立方计算过程中的I/O代价,加快数据立方的计算速度。在计算PrefixCube的过程中,为了识别元组间的共享前缀而不得不进行大量的元组间的比较,这对加快PrefixCube的计算是十分不利的。针对这一问题提出了两种优化策略,即消除单聚集维小方中元组的比较和以批处理模式消除同组生成的元组之间的比较,来进一步优化PrefixCube的计算。在实际的联机分析处理系统中,基于维层次的上卷、下钻操作是十分常见也是十分重要的,而维的层次性使得数据立方的计算变得更为复杂。通过扩展PrefixCube的计算方法和组织结构,实现了层次前缀立方(Hierarchical PrefixCube,HierPrefixCube)的有效计算和组织。