专利名称:一种多维数据立方体增量聚合及查询优化方法
技术领域:
本发明涉及OLAP聚合技术及查询优化领域,具体涉及一种多维数据立方体增量聚合及查询优化方法。
背景技术:
联机分析处理(Online Analytical I^rocessing,0LAP)支持分析人员和决策者从多个角度对数据进行快速、一致、交互地访问,从而对数据更深入了解。然而随着数据量越来越大,用户对实时决策的需求越发迫切,OLAP聚合技术有效解决数据查询的效率问题。对定时进行增量更新的数据仓库,传统聚合算法需对全体数据进行聚合,然而数据仓库数据量庞大,这种方法效率低,系统负荷高,用户难以忍受。
发明内容
本发明为克服上述的不足之处,目的在于提供一种多维数据立方体增量聚合及查询优化方法,该方法通过对增量数据的小范围聚合,查询时汇总原聚合与增量聚合结果,可较快实现增量聚合,效率高,系统负荷小,维护方便,解决了现有技术中存在的问题。本发明通过以下技术方案达到上述目的一种多维数据立方体增量聚合及查询优化方法,包括以下步骤1)从数据仓库中获取增量数据,将其存放在与原数据仓库结构一致的临时数据库中;2)选择冰山立方体的算法,对临时数据库中的增量数据进行聚合,生成增量数据立方体表及增量聚合数据,并清空临时数据库的数据;3)将生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并;4) OLAP查询时解析各增量数据立方体表及增量聚合数据,将有用的结果汇总输出;5)适时对增量数据立方体表及增量聚合数据进行维护,在数量增量聚合数据较多或系统压力小的一段时间内,对整个数据仓库重新进行全聚合。作为优选,步骤1)所述的数据仓库中获取增量数据采用时间戳方式。作为优选,步骤2~)所述的冰山立方体算法包括BUC算法和Mar-Cubing算法。作为优选,步骤幻所述的生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并时,对原增量聚合数据进行备份。作为优选,步骤幻所述的生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并时,原增量聚合数据进行备份后,备份文件以合并时的时间作为备份名称。作为优选,步骤幻所述的生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并后的增量聚合表以合并时的时间后缀命名。
本发明的有益效果本发明是一种新的用于多维立方体中的聚合方法,与现有的聚合方法相比,其优点在于利用增量数据的特点,只对增量数据进行聚合,效率高,系统负荷小;查询时汇总原聚合与若干delta Cube聚合结果,效率并不会降低。
图1是本发明总体架构示意图。 具体实施例以下结合附图1对本发明做进一步的说明实施例1 一种多维数据立方体增量聚合及查询优化方法,在该方法中,重点在于选择算法对增量数据进行聚合及对OLAP查询命中多个结果进行汇总;接下来将按照发明内容所述依次说明各流程一、获取增量数据增量数据的获取可通过触发器、时间戳、全表对比及日志对比的方式。由于本方法需定期获取增量数据,故选用时间戳方式。时间戳是一种基于快照比较的变化数据捕获方式,在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。时间戳获取增量方式的性能较好,数据抽取相对清楚简单方便。获取后的增量数据放置在与原数据仓库结构一致的临时库中,当聚合成功结束后再将该临时库清空。二、对增量数据进行聚合由于增量数据具有同原数据仓库结构一致的结构,故可选择原数据仓库聚合算法进行聚合。但由于增量数据小,故可选择其他适合的算法。全立方体的计算,计算出增量立方体的每个可能的聚合。计算效率较高,但存储空间消耗较大。冰山立方体的计算,计算出聚合值不满足最低阈值的立方体,计算效率高,且阈值便于控制存储空间,常用算法有BUC、Mar-Cubing等。BUC算法采用了自顶向下和深度优先的计算方法。首先计算出整个数据立方体的度量值,然后对各个维度递归搜索,与此同时,对立方体检查冰山条件,对不满足冰山条件的分枝进行剪枝操作。其中一个重要原则是,如果一个单元不满足冰山条件,则其子孙也不满足冰山条件。Mar-Cubing算法结合了 BUC算法中的剪枝策略合多路聚集算法的多维聚集,利用星型树的数据结构来进行存储,他从星型树的数据结构操作,进行无损数据压缩,从而降低响应时间和内存需求量。在对全局计算次序时,它采用了自底向上的模型。其核心的部分是引入共享维的概念。若共享维的聚集值不满足冰山条件,则共享维向下的所有子集都不能够满足冰山条件,根据这一条件来进行剪枝处理。基本思想是首先构建基本的星型树,然后按照深度优先搜索遍历每个子树,并且根据冰山条件进行剪枝操作,直至产生最终的星型树。Mar-Cubing算法结合了自顶向下算法和自顶向上算法的优点,可以有效地降低搜索时间,并且降低了内存消耗。
增量聚合算法以热插拔的插件形式供用户选择,如某段时间某业务面临大量类似查询请求,则用户可选择根据这些查询生成相应聚合的增量聚合插件。三、上传聚合结果及元数据至服务器对增量数据进行增量聚合之后,将其插入原数据仓库,增量聚合表以时间后缀命名,以便查看、维护。增量聚上传至服务器配置目录。备份原khema文件,以时间作为备份名称,以便查看、恢复。合并khema文件与delta Schema文件将delta Schema 文件内容以delta Aggregate标签插入原khema文件。四、查询汇总聚合结果一般为累加、半累加和非累加三种类型的度量。如果在任何情况下都可以累计一个度量的值,则该度量是可累加型度量。如果只能在部分情况下累加它的值,则该度量是半累加型度量。还有一类计算比率、百分比及其他等度量是不可累加型度量。对于累加型度量,若查询命中多个聚合Cube,只需对各Cube相应度量求和;对于半累加型度量,通常包含计算计数、最大值、最小值、平均、第一个子成员、最后一个子成员、第一个非空子成员、最后一个非空子成员的度量。若查询命中多个结果计数分别计算各Cube相应度量的计数,再求和;最大值/最小值分别求各Cube的最大值和最小值,再比较出最大值/最小值;平均值首先获取各Cube的平均值,再获取各自的计数,计算出总的平均数;计算第一个子成员,直接读取第一个Cube中相应度量的值即可;最后一个子成员则计算按照时间顺序的最后一个Cube中的值;第一个非空子成员及最后一个非空子成员类似第一个子成员和最后一个子成员。非累加型度量包括Distinct Count和用户自定义函数等。对于Distinct Count 度量来说,若命中多个Cube,一次获取相关维度的所有事实数据,再求出这些数据的 Distinct Count ;对于用户自定义函数,先对自定义函数扫描一次,分析出须提前准备的数据,从各个Cube中获取这些数据,再对自定义函数扫描计算。汇总算法伪代码如表1所示。先判断在关键指标上命中多少个立方体,如果未命中(第1行),返回O ;如果命中1个立方体,通过调用Agg (Cube,Measure,Type)返回该立方体在指标Measure上的汇总(第2行);如果命中多个立方体,则分别对各种汇总类型进行计算。第一个子成员、第一个非空子成员则返回计算第一个Cube相应的值(第6,7行); 最后一个子成员、最后一个非空子成员则返回计算最后一个Cube相应的值(第9,10行); 计算Distinct Count先准备所有Cube相关维度数据,再计算结果(第12,13行);用户自定义函数先分析表达式预准备所有计算中所需数据,再计算结果(第15-17行);平均值先计算总SUM值及总COUNT值(第21,22行),最终返回时再计算平均值(第41行);求和则进行累加(第对行),最终返回(第42行);最大值先初始化为第一个命中Cube的最大值 (第27行),再以此比较更新(第四行),最终返回结果(第42行);最小值类似最大值; 计数则类似求和。
权利要求
1.一种多维数据立方体增量聚合及查询优化方法,其特征在于,包括以下步骤1)从数据仓库中获取增量数据,将其存放在与原数据仓库结构一致的临时数据库中;2)选择冰山立方体的算法,对临时数据库中的增量数据进行聚合,生成增量数据立方体表及增量聚合数据,并清空临时数据库的数据;3)将生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并;4)OLAP查询时解析各增量数据立方体表及增量聚合数据,将有用的结果汇总输出;5)适时对增量数据立方体表及增量聚合数据进行维护,在数量增量聚合数据较多或系统压力小的一段时间内,对整个数据仓库重新进行全聚合。
2.根据权利要求1所述的一种多维数据立方体增量聚合及查询优化方法,其特征在于,步骤1)所述的数据仓库中获取增量数据采用时间戳方式。
3.根据权利要求1所述的一种多维数据立方体增量聚合及查询优化方法,其特征在于,步骤2~)所述的冰山立方体算法包括BUC算法和Mar-Cubing算法。
4.根据权利要求1所述的一种多维数据立方体增量聚合及查询优化方法,其特征在于,步骤幻所述的生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并时,对原增量聚合数据进行备份。
5.根据权利要求4所述的一种多维数据立方体增量聚合及查询优化方法,其特征在于,步骤幻所述的生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并时,原增量聚合数据进行备份后,备份文件以合并时的时间作为备份名称。
6.根据权利要求1或2或3或4或5或6任一权利要求所述的一种多维数据立方体增量聚合及查询优化方法,其特征在于,步骤幻所述的生成的增量数据立方体表及增量聚合数据上传至服务器,与原增量聚合数据合并后的增量聚合表以合并时的时间后缀命名。
全文摘要
本发明涉及OLAP聚合技术及查询优化领域,具体涉及一种多维数据立方体增量聚合及查询优化方法,该方法通过对增量数据的小范围聚合,查询时汇总原聚合与增量聚合结果,可较快实现增量聚合,效率高,系统负荷小,维护方便,解决了现有技术中存在的问题。本发明的有益效果利用增量数据的特点,只对增量数据进行聚合,效率高,系统负荷小;查询时汇总原聚合与若干delta Cube聚合结果,效率并不会降低。
文档编号G06F17/30GK102360379SQ20111030828
公开日2012年2月22日 申请日期2011年10月10日 优先权日2011年10月10日
发明者周伟强, 徐精忠, 王璐华, 肖敏 申请人:浙江鸿程计算机系统有限公司