产生分析数据结构的自定义等级体系的系统和方法

文档序号:6131964阅读:132来源:国知局
专利名称:产生分析数据结构的自定义等级体系的系统和方法
技术领域
本发明涉及在线分析处理(OLAP)结构,更具体地,涉及一种在OLAP结构中产生自定义等级体系(hierarchy)的系统和方法,允许用户以不影响其它用户的实际结构定义的个性化方式来改变结构的定义。
背景技术
对于商业管理者关于策略、定价、部门结构等做出决定,与商业性能和运作相关联的数据成为基础。越来越多地以数据库格式存储该数据,该数据可通过输入某种查询来访问,这种查询对数据进行分类并且根据与查询标准相匹配的数据来返回答案。该数据库通常被称为OLAP立方体(cube),反映了被存储在数据库中的数据的多维性。
分析员采用多种工具来管理和查看存储在OLAP立方体中的数据。这些工具之一是查询引擎,其用作数据服务器,响应于来自商业分析员的请求来识别满足特定标准的OLAP立方体的组成。这种特征使分析员可以获得对与存储在OLAP立方体中的数据有关的特定问题的答案,以便根据数据来形成关于商业性能的结论。
查询特征在一定程度上受限于以下事实OLAP立方体的定义通常是静态的,这意味着分析员不能够改变立方体中各种数据等级体系的组织结构。结果,根据立方体的组织,用于分类并查看立方体中包含的数据的选项是有限的。响应于每个独立分析员希望以给定项目的特定方式来分类和查看数据、试图增加立方体中的定义是困难、费时且昂贵的。
在技术上需要一种系统和方法,用于从预定OLAP立方体中创建自定义数据定义或等级体系,以使各个分析员可以执行其商业目的所定制的数据处理和分析。

发明内容
本发明通过提交(N+Q)维自定义查询并且将该(N+Q)维自定义查询转换为N维查询,以便提交给N维原生OLAP立方体,使得可以在N维原生OLAP立方体中分析(N+Q)维数据。提供N维查询的N维结果,并且将其转换为(N+Q)维自定义查询的(N+Q)维结果。然后作为答案将(N+Q)维结果提供给(N+Q)维自定义查询。


图1是示出了根据本发明典型实施例、用于创建自定义等级体系的系统的通用结构和操作的图;图2-4是示出了采用本发明系统的典型场景的流程图。
具体实施例方式
图1是示出了根据本发明典型实施例、用于创建自定义等级体系的系统的通用结构和操作的图。该系统假设提供了OLAP立方体12,其中包括按照多个原生等级体系/维度(N维数据)存储的数据。原生(native)OLAP立方体12还包括数据库服务器,具有处理关于存储在立方体12中的数据而提交的查询的能力。系统10还包括应用软件14,用于使用户可以公式化查询以便提交到原生OLAP立方体12,并且使用户可以查看从原生OLAP立方体12返回的数据,所述数据经常是有助于用户分析数据的图形或其它直观格式。在现有系统中,应用软件14直接与原生OLAP立方体12相连以如上所述地进行工作。然而,系统10还包括逻辑地连接在应用软件14和原生OLAP立方体12之间的自定义等级体系软件16。自定义系统软件16使得新的功能被并入应用软件14,使用户能够提交查询并且查看在原生OLAP立方体12的结构中未定义的、与数据的自定义等级体系/维度相关联的结果。
操作中,如方框20所示,用户输入希望的查询。查询与原生OLAP立方体12未定义的数据维度相关联,并因此查询被称为(N+Q)维查询。如方框22所示,自定义等级体系软件16将(N+Q)维查询转换为N维查询,用于提交到原生OLAP立方体12。应该注意,如果Q是零(即如果用户仅提交了N维查询),则自定义等级体系软件16仅简单地将查询传送给原生OLAP立方体12。原生OLAP立方体12以其通常的方式来处理N维查询,并且将N维查询结果返回给自定义等级体系软件16。如方框24所示,自定义等级体系软件16将N维查询结果转换为(N+Q)维查询结果。该结果被传送给应用软件14,在此用户能够查看(N+Q)维查询结果,如方框26所示。由用户执行查询的输入和结果的查看,如同原生立方体实际上是(N+Q)维一样;(N+Q)维查询的转换和结果对于用户而言是无缝的。
系统10还包括自定义等级体系存储器28,用于存储可由每个用户访问以提交(N+Q)维查询的自定义等级体系/维度。自定义等级体系存储器28用作存储可供每个用户使用的自定义等级体系的定义的库。在一些实施例中,作为应用软件14和自定义等级体系软件16的一部分功能,可以由用户动态地增加且更新这些定义。此外,在一些实施例中,系统10可以包括识别各个用户的能力,例如通过用户注册或者其它机制,使得可以根据个人将适当的偏好和自定义等级体系组合(例如存储在自定义等级体系存储器28中)提供给用户。
系统10还具有响应应用软件14所提交的元数据请求的能力。例如,如果使用应用软件14来询问何种维度或数目可供分析使用,则自定义等级体系软件16能够回答这些问题,就像查询是(N+Q)维一样,使用从自定义(N+Q)维查询到N维原生查询的同样的转换原理。
图2-4是示出了采用本发明系统的典型场景的流程图。所有三个示例都被设置在具有如下定义的公共原生立方体的环境中。


表1示例1(图2)在图2的流程图所示的本示例中,用户提交查询以查看与选定的市场(家具和杂货)相关联的时效性数据。具体地,查询规定了要在输出视图的行(前景轴)上查看的、按照在相同行(相同的前景轴)上查看的市场来分组的时效性数据。
如图32的步骤30所示,可以如下表达用户提交的自定义查询View[Market=Furniture,Grocery]on rows,[Timeliness=1..5]on rows。选定的原生公司等级体系的成员是家具和杂货,并且这些成员是叶级成员组(公司),而不是叶级成员本身。自定义等级体系是时效性,时效性是在最初定义的原生立方体中除等级体系之外的一种属性。自定义等级体系软件将该查询转换为原生查询,其中计算的成员被放置在原生等级体系中的行轴上(在行上)。此外,自定义时效性等级体系保留进一步被钻取的能力,与现有系统中响应于查询而提供的简单生成的计算成员不同。结果,提交查询的用户可以查看具有以下格式的立方体(尽管原生立方体定义本身保持不变),其中立方体的新维度以斜体字示出

表2
如图2的步骤32所示,为了回答用户所提交的查询,自定义等级体系软件使用多步骤处理来将自定义查询转换为原生查询。具体地,对于给出的示例,开始处理,在步骤33处,将成员序号设置为1,在步骤34处将市场设置为家具(选定的第一市场),并且在步骤36处将时效性设置为1(第一时效性值)。然后如步骤38所示,通过集合与作为选定市场的派生的公司交集的、具有选定时效性的公司,确定给定成员序号的计算成员。如判决步骤40和递增步骤42所示,对于所有时效性的值(1-5),继续该确定,其中对于每一个确定,递增成员序号。当考虑了选定市场的所有时效性值时,如判决步骤44和递增步骤46所示,递增市场选择,并且重复处理。在确定了所有计算的成员之后,如步骤48所示,原生查询将这些成员(1至N)返回到自定义等级体系软件,以便转换到自定义查询所要求的格式。
该示例中用户所提交的自定义查询的结果如下(其中空白单元指示没有与标准相对应的数据)

表3(ROI)示例2(图3)在图3的流程图所示的示例中,用户提交查询以查看与按照财力(A+、A++)分组的选定市场(生物技术和煤炭)相关联的时效性数据。具体地,查询定义了要在输出视图的行(前景轴)上查看的、在列(不同前景轴)上按照市场分组的、并且在行(相同的前景轴)上按照财力进一步分组的时效性数据。
如图3的步骤50所示,可以如下表达用户提交的自定义查询View[Market=Biotech,Coal]on Columns,[Timeliness=1..5]on rows,grouped by[Financial Strength=A++,A+]on rows。自定义等级体系软件将该查询转换为原生查询。在该场景中,针对每一行,创建计算的成员。每一个成员的公式包括财力选择和时效性选择的逻辑。因为自定义等级体系在与财力等级体系相同的轴上,所以按照财力等级体系来定义这些成员。结果,提交查询的用户可以查看具有以下格式的立方体(尽管原生立方体定义本身保持不变)

表4如图3的步骤52所示,为了回答用户所提交的查询,自定义等级体系软件将自定义查询转换为原生查询。具体地,对于给定的示例,开始处理,在步骤53处将成员序号设置为1,在步骤55处将财力设置为A++(选定的第一值),并且在步骤56处将时效性设置为1(第一时效性值)。每一个成员序号识别要由原生OLAP服务器计算的一行。然后如步骤58所示,通过集合具有选定财力的、与具有选定时效性的公司交集的、与作为每一个选定市场的派生的公司交集的公司,确定给定成员序号的计算成员。如判决步骤60和递增步骤62所示,对于所有时效性值(1-5),继续该确定,其中对于每一个确定,递增成员序号。如判决步骤64和递增步骤66所示,当考虑了每一个选定市场中选定财力的所有时效性值时,递增财力选择,并且对于所有选定的时效性值,再次重复处理。最终,当针对每一个市场中所有选定财力值确定了计算成员时,原生查询将这些成员(1至N)返回到自定义等级体系软件,以便转换到自定义查询所要求的格式。因为执行用于评价计算成员的公式代表行首而不是表的每一个单元的数据,所以每一个计算成员包括所有数据行的单元信息。
本示例中用户所提交的自定义查询的结果如下(其中空白单元指示没有与标准相对应的数据)

表5(ROI)示例3(图4)在图4的流程图所示的示例中,用户提交查询以查看与选定市场(生物技术和煤炭)相关联的时效性数据。具体地,查询规定了要在输出视图的行(前景轴)上查看的、在列(不同的前景轴)上按照查看的市场来分类的时效性数据。因此自定义等级体系(时效性)单独在一个轴上。
如图4的步骤80所示,可以如下表达用户所提交的自定义查询View[Market=Biotech,Coal]on columns,[Timeiness=1..5]on rows。自定义等级体系软件将该查询转换为原生查询,使用户查看具有以下格式的立方体(尽管原生立方体定义本身保持不变)

表6在该场景中,针对每一行创建计算成员。然而,在与自定义等级体系相同的轴上不存在用于放置自定义等级体系的计算成员的原生等级体系。因此,如步骤82所示,必须确定在可以移到自定义等级体系前景轴的背景轴上是否存在原生等级体系。如果存在这种原生等级体系可用,则如步骤84所示,该原生等级体系从背景轴移到自定义等级体系所在的轴(在本示例中是行)上。例如,在给出的示例中,财力等级体系移到行上,其中具有选定的所有成员,仅仅为了提供放置自定义等级体系的计算成员的结构。在本示例中,因为在背景轴上选择了财力维度的所有成员(即,在自定义查询中没有规定财力标准),所以选择了所有的成员。一旦完成该移动,如图4的步骤86所示,用于创建原生查询的处理与上述参考图3所述的处理(开始于步骤52)相同。如果未进行特殊转换,则产生的自定义查询答案如下

表7(ROI)一旦获得上述结果,自定义等级体系软件执行附加步骤,以从行选择中去除财力等级体系的所有成员,从而有效地将财力等级体系移出前景轴(此处为行)并且移回到背景。这在图4的步骤88示出了。因此,自定义查询的最终结果如下

表8(ROI)如果不存在移到自定义等级体系轴上的其它原生等级体系(即,对于给出的示例,如果不存在财力等级体系),使用第二方法。在该备选方法中,如步骤90所示,将自定义等级体系和选定的原生等级体系(在本示例中是按照市场分组的公司)放置在与相交的选择相同的轴上(即,列出选定成员的所有组合)。因此原生查询比自定义查询少一个轴。当采取该步骤时,因为自定义等级体系(时效性)和原生等级体系(公司等级体系)处于相同的轴上,所以如以上参考图2所示的(开始于步骤32),进行从自定义查询到原生查询的转换。这在图4的步骤92中示出了。该查询产生以下结果

表9(ROI)当完成查询的执行时,如步骤94所示,由自定义等级体系软件来变换结果,以包括额外的轴(在该示例中是行),使得结果看起来如以上表8所示。因为原生查询结果的每个单元与自定义查询的单元具有1对1的映射关系,所以该转换不是特别难。两个查询都返回与单元数目相同的结果,唯一的不同在于单元的组织,而单元的组织可由自定义等级体系软件操作。
上述示例演示了本发明按照自定义等级体系来评价在原生OLAP立方体中未按照等级体系定义的数据新维度的能力。自定义等级体系可以基于存储在原生OLAP立方体中的任意数据,例如包括原生等级体系的成员属性、原生等级体系中的成员组或者与原生等级体系的成员相关联的度量。自定义等级体系的成员也可以基于使用原生OLAP立方体的元数据的任意公式。由于自定义等级体系软件具有将与自定义等级体系相关联的所有查询转换为由原生OLAP服务器执行的原生查询的能力,所以利用要进一步钻取(drilled)的能力来创建自定义等级体系。可以保存并存储一个或多个自定义等级体系定义以用于以后使用。结果,分析员具有在不增加整个立方体维护系统和具有修改原生OLAP立方体定义任务的人员的负担的情况下,为了与其分析相关联的目的而产生定制视图和数据结构的能力。
尽管参考优选实施例描述了本发明,本领域的技术人员可以认识到,在不脱离本发明的精神和范围的情况下,可以对形式和细节做出改变。
权利要求
1.一种分析N维原生OLAP立方体中的数据的方法,包括提交(N+Q)维自定义查询;将(N+Q)维自定义查询转换为N维查询,以便提交到N维原生OLAP立方体;提供N维查询的N维结果;将N维查询的N维结果转换为(N+Q)维自定义查询的(N+Q)维结果;以及提供(N+Q)维查询的(N+Q)维结果。
2.根据权利要求1所述的方法,其中,将(N+Q)维自定义查询转换为N维查询以及将N维查询的N维结果转换为(N+Q)维自定义查询的(N+Q)维结果包括定义与在N维原生OLAP立方体中未定义的、在(N+Q)维自定义查询中规定的维度相对应的至少一个自定义等级等级体系,所述自定义等级体系具有在(N+Q)维自定义查询中规定的轴;识别用于执行N维查询的公共查询轴,所述公共查询轴包括原生等级体系和自定义等级体系;与(N+Q)维自定义查询的标准和公共查询轴上的原生等级体系相对应地,在代表自定义等级体系的N维查询中定义计算成员;以及根据(N+Q)维自定义查询,组织计算成员。
3.根据权利要求2所述的方法,其中,识别用于执行N维查询的公共查询轴包括确定(N+Q)维自定义查询是否规定了与自定义等级体系的规定轴具有公共轴的原生等级体系,用于识别为公共查询轴;如果(N+Q)维自定义查询未规定与自定义等级体系的规定轴具有公共轴的原生等级体系,则当确定了存在可以被移到自定义等级体系的规定轴的原生等级体系时,将原生等级体系移到自定义等级体系的规定轴,以使公共查询轴被识别为自定义等级体系的规定轴;以及如果不存在可以被移到自定义等级体系的规定轴的原生等级体系,则将自定义等级体系放置在由与自定义等级体系的规定轴不具有公共轴的(N+Q)维自定义查询所规定的原生等级体系的轴上,选择相交的原生等级体系和自定义等级体系,使得公共查询轴被识别为由(N+Q)维自定义查询所规定的原生等级体系的轴。
4.根据权利要求3所述的方法,其中,将公共查询轴识别为与自定义等级体系的规定轴具有公共轴的(N+Q)维自定义查询所规定的原生等级体系的轴,导致在根据(N+Q)维自定义查询来组织计算成员的步骤中包括步骤转换与(N+Q)维自定义查询的标准以及公共查询轴上的原生等级体系相对应的计算成员,以包括自定义等级体系的规定轴。
5.根据权利要求2所述的方法,还包括将所述至少一个自定义等级体系的定义存储在与原生OLAP立方体分离的存储器中。
6.根据权利要求5所述的方法,还包括识别各个用户;以及根据用户的身份,提供存储在存储器中的所述至少一个自定义等级体系的至少一个选定定义。
7.根据权利要求2所述的方法,其中,(N+Q)维查询的标准包括规定原生等级体系的成员组。
8.根据权利要求7所述的方法,其中,通过具有公共属性,来规定原生等级体系的规定成员组。
9.根据权利要求7所述的方法,其中,通过具有满足规定要求的度量,来规定原生等级体系的规定成员组。
10.根据权利要求2所述的方法,其中,(N+Q)维查询的标准包括根据自定义等级体系的成员必须满足的原生OLAP立方体的元数据来规定至少一个公式。
11.一种在N维原生OLAP立方体中分析数据的系统,包括应用软件,用于规定自定义查询并且查看自定义查询的结果,所述自定义查询和自定义查询的结果具有(N+Q)维;以及自定义等级体系软件,逻辑地连接在应用软件和N维原生OLAP立方体之间,所述自定义等级体系软件操作用于将自定义查询转换为N维查询,以便提交到N维原生OLAP立方体;提供N维查询的N维结果;以及将N维查询的N维结果转换为自定义查询的(N+Q)维结果。
12.根据权利要求11所述的系统,其中,自定义等级体系软件通过定义与在N维原生OLAP立方体中未定义的、在(N+Q)维自定义查询中规定的维度相对应的至少一个自定义等级体系,将自定义查询转换为N维查询,并且将N维查询的N维结果转换为自定义查询的(N+Q)维结果。
13.根据权利要求12所述的系统,其中,所述至少一个自定义等级体系包括通过与(N+Q)维自定义查询中规定的标准相对应地识别原生OLAP立方体的原生等级体系的至少一个成员而确定的至少一个计算成员。
14.根据权利要求13所述的系统,其中,能够进一步钻取所述至少一个自定义等级体系的所述至少一个计算成员。
15.根据权利要求12所述的系统,其中,从由具有公共属性的原生等级体系的选定成员组成的组中选择在(N+Q)维自定义查询中规定的标准,原生等级体系的选定成员具有满足规定要求的度量,并且在自定义查询中通过名称来识别原生等级体系的选定成员。
16.根据权利要求12所述的系统,其中,在(N+Q)维自定义查询中规定的标准包括根据自定义等级体系成员必须满足的原生OLAP立方体的元数据来规定至少一个公式。
17.根据权利要求12所述的系统,还包括与OLAP立方体分离的存储器,用于存储所述至少一个自定义等级体系的定义。
18.根据权利要求17所述的系统,其中,应用软件操作用于根据用户的标识,来提供存储在存储器中的所述至少一个自定义等级体系的至少一个选定定义。
19.一种将(N+Q)维自定义查询转换为N维查询以便N维原生OLAP立方体执行的方法,包括定义与在N维原生OLAP立方体中未定义的、在(N+Q)维自定义查询中规定的维度相对应的至少一个自定义等级体系,所述自定义等级体系具有在(N+Q)维自定义查询中规定的轴;识别N维查询所执行的公共查询轴,所述公共查询轴包括原生等级体系和自定义等级体系;与(N+Q)维自定义查询的标准以及公共查询轴上的原生等级体系相对应地,在代表自定义等级体系的N维查询中定义计算成员;以及根据(N+Q)维自定义查询,组织计算成员。
20.根据权利要求19所述的方法,其中,识别与自定义等级体系具有公共轴的原生等级体系包括确定(N+Q)维自定义查询是否规定了与自定义等级体系的规定轴具有公共轴的原生等级体系,以便识别为公共查询轴;如果(N+Q)维自定义查询未规定与自定义等级体系的规定轴具有公共轴的原生等级体系,当确定了存在可以被移到自定义等级体系的规定轴的原生等级体系时,则将原生等级体系移到自定义等级体系的规定轴,以使公共查询轴被识别为自定义等级体系的规定轴;以及如果不存在可以被移到自定义等级体系的规定轴的原生等级体系,则将自定义等级体系放置在与自定义等级体系的规定轴不具有公共轴的(N+Q)维自定义查询所规定的原生等级体系的轴上,选择相交的原生等级体系和自定义等级体系,使得公共查询轴被识别为(N+Q)维自定义查询所规定的原生等级体系的轴。
21.根据权利要求20所述的方法,其中,将公共查询轴识别为与自定义等级体系的规定轴具有公共轴的(N+Q)维自定义查询所规定的原生等级体系的轴,导致在根据(N+Q)维自定义查询来组织计算成员的步骤中包括步骤转换与(N+Q)维自定义查询的标准以及公共查询轴上的原生等级体系相对应的计算成员,以便包括自定义等级体系的规定轴。
22.根据权利要求19所述的方法,还包括将所述至少一个自定义等级体系的定义存储在与原生OLAP立方体分离的存储器中。
23.根据权利要求22所述的方法,还包括识别各个用户;以及根据用户的身份,提供存储在存储器中的所述至少一个自定义等级体系的至少一个选定定义。
全文摘要
可以通过提交(N+Q)维自定义查询、并且将(N+Q)维自定义查询转换为N维查询以用于提交给N维原生OLAP立方体(12),在N维原生OLAP立方体(12)中分析(N+Q)维数据。提供N维查询的N维结果并将其转换为(N+Q)维自定义查询的(N+Q)维结果。然后提供(N+Q)维结果作为(N+Q)维自定义查询的答案。
文档编号G01NGK101036140SQ200480041222
公开日2007年9月12日 申请日期2004年12月2日 优先权日2003年12月2日
发明者威廉·拉塞尔·惠特尼四世 申请人:普科有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1