专利名称:一种基于olap的智能分析方法
技术领域:
本发明属于软件工程领域中商务智能软件开发方面,特别涉及一种基于OLAP的 智能分析方法,及该方法在商务智能系统开发中的应用。
背景技术:
随着信息技术的发展,每天都有海量的数据产生,各种数据之间的高度关联性使 得数据分析人员倾向于在多维数据库OLAP里面对他们进行分析。由于已经对原始数据进 行了压缩聚合等处理,使得多维数据库无论是在时间还是空间方面的数据存储处理分析能 力都比关系数据库优秀。尽管如此,现阶段分析人员对多维数据库的操作只限于简单的查 询分析,而且在分析的过程中往往要依赖于分析人员的主观判断,需要分析人员决定分析 哪些属性的哪些成员。现实中的一个问题是假定已知报表总额的某个度量值有所变化,任务是找出对该 度量值变化贡献率(贡献率在这里定义为关于该度量值的一个维度的一个成员占这一个 维度的所有成员的比重乘以该维度底下成员的数目)最高的几个维度成员。前面已经提 到,现阶段分析人员只能对多维数据库进行简单的查询分析且往往包含人为的主观分析。 为了完成上述任务,他们的可能做法是手动处理数据立方体的所有输入维度,对每个维度 进行查询分析并手动地选择结果并将其返回,这个过程是相当耗费人力和时间的。因此提 出一种新的方法自动处理上述问题成为迫切需要。
发明内容
本发明的目的是针对BI系统度量值变化贡献率判断问题,提出一种基于OLAP的 智能分析方法。为了实现发明目的,采用的技术方案原理如下如图1所示,以数据立方体作为输入。对数据立方体的所有维度进行遍历,每次处 理一个维度(假定有η个维度)。Di表示维度i,Viii表示在第i个维度的第i个层次的 第i个变量。在第i个维度上,先通过向下钻取提取维度下的第一层成员,然后选取贡献率 满足条件(这里的条件是设定的某个阈值)的成员Vili并存储这些结点,然后以这些成 员Vili为基础,向下钻取下一层成员Vi2i,再判断是否满足指定阈值,假设满足条件的话 则存储Vi2i并在Vi2i的基础上继续向下钻取。递归的终止条件是在某一层的所有成员的 贡献率低于指定阈值。该维度处理完毕,得到的结果是贡献率满足一定阈值的各个维度各 个层次各个成员的集合m。储存m。第二轮循环的执行过程如下将集合m中某一个维
度i的所有层次的所有成员与其他维度j (vi^ti)的所有层次的所有成员进行链接得到
集合N2,里面的成员为Vimn*Vjkl,v^ # 1,且其贡献率要大于给定的阈值。假设N2为空,则
算法终止并返回m的结果。假设N2不为空,先存储N2,再将N2里面的成员进行链接得到 N3,N3的形成规则跟N2类似。依此类推,得到一个关于Ni的集合。
图1是本发明的总体流程示意图;图2是本发明的处理原始数据立方体示意图;图3是本发明的处理和返回Ni-I示意图。
具体实施例方式本方法通过循环手段自动遍历数据立方体的各个维度,在每个维度递归上下钻取 以及维度之间的连接分析从而可以得出对当前报表总额或者某个度量贡献度最高的几个 维度成员及其组合。整个流程不需要人为的分析,只需要将数据立方体作为输入即可,其输 出是立方体中每个度量值以及对它们贡献度最高的N个维度成员的组合。如图2和图3所示,c具体实现处理一个维度的一个层次的MDX伪代码如下
WITH MEMBER Contribution_Degree as '[[Measures].[某度量]/([Measures].[某度量],Ancestor([当前维 度].CurrentMember,[当前维度].[上一层次]))]* [当前维度].[上一层次].Count’-Contribution_Degree为某一维度某一成员的贡献率 SELECT NON EMPTY { FILTER(.MEMBERS,
([当前维度].CURRENTMEMBERWgS 阈值)
)
} on axis(O) FROM [数据立方体]
WHERE [第i个维度]处理集合Ni的伪代码如下
Tackle_Ni(Ni) {
For(i-l;i<=Ni 中元组 Vi 的数目;i++){ For(j=i+l;j<=中元组 Vi 的数目;j++){ If(Vi*Vj>=指定阈值)。
权利要求
1.一种基于OLAP的智能分析方法,其特征在于采用了 MDX(Multi Dimensional Expressions,多维表达式)语言;
2.一种基于OLAP的智能分析方法,其特征在于使用MDX处理多维数据分析;
3.一种基于OLAP的智能分析方法,其特征在于利用MDX快速处理OLAP数据库的能 力实现基于属性度量值的自动报表分析并找出对报表总额贡献率最高的几个维度成员组 合;
4.根据权利要求3所述的基于OLAP的智能分析方法,其特征在于使用循环遍历多个维 度并利用递归技术实现单个维度的上下钻取分析以及维度间的连接分析。
全文摘要
本发明提供了一种基于OLAP的智能分析方法及其在BI系统开发中的应用,该方法通过循环手段自动遍历数据立方体的各个维度,在每个维度递归上下钻取以及维度之间的连接分析从而可以得出对当前报表总额或者某个度量贡献度最高的几个维度成员及其组合。整个流程不需要人为的分析,只需要将数据立方体作为输入即可,其输出是立方体中每个度量值以及对它们贡献度最高的N个维度成员的组合。
文档编号G06F17/30GK102135994SQ201110063959
公开日2011年7月27日 申请日期2011年3月17日 优先权日2011年3月17日
发明者丁保剑, 汤湛成, 黄举荣 申请人:新太科技股份有限公司