首页 / 专利库 / 企业组织 / 商业智能 / 构造用于针对多维数据结构执行的查询

构造用于针对多维数据结构执行的查询

阅读:210发布:2020-05-16

专利汇可以提供构造用于针对多维数据结构执行的查询专利检索,专利查询,专利分析的服务。并且描述了与构造用于针对立方执行的查询有关的各项技术。在显示屏幕上呈现表格数据,其中表格数据表示数据立方的至少一部分。接收与表格数据有关的输入,并且响应于接收到所述输入,基于所述输入来构造查询。针对所述数据立方执行查询,导致新表格的提供。,下面是构造用于针对多维数据结构执行的查询专利的具体信息内容。

1.一种计算系统,包括:
处理器;以及
存储器,所述存储器包括由所述处理器执行的商业智能BI应用,所述BI应用被配置成:
基于对查询的之前的版本的增量修改来构造所述查询,所述查询被表示为一系列查询步骤,所述一系列查询步骤中的每一个步骤对应于所述增量修改中的相应的增量修改;以及
基于所述查询从数据立方中检索表格数据,
其中所述BI应用包括查询构造器组件,所述查询构造器接收对所述查询的增量修改,对所述查询的增量修改是对展开所述立方中的维度或折叠所述立方中的维度之一的请求,所述查询构造器组件基于所述增量修改来构造所述查询,并且
所述查询包括第二增量修改,所述第二增量修改是对于计算维度的度量的请求,所述查询构造器组件构造所述查询使得所述度量在选择了所述维度的属性之后计算,其中所述对于计算维度的度量的请求是在对展开所述立方中的维度或折叠所述立方中的维度之一的请求之前被所述查询构造器组件接收的。
2.如权利要求1所述的计算系统,其特征在于,所述BI应用包括查询构造器组件,所述查询构造器接收增量修改并且基于所述增量修改和一系列之前接收的增量修改来构造所述查询,其中所述查询构造器组件将所述查询表达为多个关系运算符。
3.如权利要求1所述的计算系统,其特征在于,还包括呈现器组件,所述呈现器组件在显示器上呈现从所述数据立方检索到的表格数据,所述呈现器组件进一步将所述查询呈现在所述显示器上。
4.如权利要求3所述的计算系统,其特征在于,所述呈现器组件在所述显示器上呈现所述一系列查询步骤。
5.如权利要求4所述的计算系统,其特征在于,所述BI应用包括输入接收器组件,所述输入接收器组件接收对于所述查询步骤中的前一查询步骤的选择,其中响应于所述输入接收器组件接收到所述选择,所述呈现器组件在所述显示器上呈现来自所述数据立方的第二表格数据,所述第二表格数据是基于所述查询步骤中的所述之前步骤处的查询检索到的。
6.如权利要求5所述的计算系统,其特征在于,所述输入接收器组件在所述输入接收器组件接收到对于之前的查询步骤的选择之后接收中间增量修改,所述查询构造器组件构造所述查询以在所述之前的查询步骤之后并且在所述一系列查询步骤中的最后一个查询步骤之前添加另一查询步骤。
7.如权利要求1所述的计算系统,其特征在于,被包括在能通过web浏览器访问服务器计算设备中。
8.一种由计算机处理器执行的方法,其特征在于,所述方法包括:
在显示器上呈现表格数据,所述表格数据是基于之前作出的查询步骤从数据立方中检索的;
接收后续查询步骤;
基于所述之前作出的查询步骤和所述后续查询步骤来构造查询;
基于所述查询从所述数据立方中检索经更新的表格数据;以及
响应于检索到经更新的表格数据在所述显示器上呈现经更新的表格数据,其中所述之前作出的查询步骤导致针对维度的第一属性计算度量,并且所述后续查询步骤导致针对所述维度的第二属性计算度量,以及
响应于接收到所述后续查询步骤,构造所述查询使得在所述维度的第二属性在所述查询中被指定之后计算针对所述维度的所述第二属性的度量。
9.如权利要求8所述的方法,其特征在于,所述后续查询步骤是对折叠或展开至少一个维度的请求,所述方法包括基于所述对折叠或展开至少一个维度的请求来细化所述查询。
10.如权利要求8所述的方法,其特征在于,构造所述查询包括:
将所述之前的查询步骤和所述后续查询步骤转换成多个关系运算符;以及基于预定义的模式来标准化所述多个关系运算符。
11.一种包括指令的计算机可读存储介质,所述指令当由处理器执行时使得所述处理器执行动作,所述动作包括:
接收查询;
响应于接收所述查询,从数据立方中检索表格数据;
响应于从所述数据立方中检索到所述表格数据,将所述表格数据和一系列查询步骤呈现在显示器上,所述一系列查询步骤表示所述查询,所述表格数据包括针对所述数据立方中的维度的第一属性计算的度量;
接收对于所述查询的增量修改,所述增量修改是针对所述数据立方的维度的第二属性计算度量的请求;以及
响应于接收到对于所述查询的增量修改,基于对于所述查询的增量修改来检索第二表格数据,所述第二表格数据包括针对所述维度的第二属性计算的度量。

说明书全文

构造用于针对多维数据结构执行的查询

[0001] 背景
[0002] 计算机实现的商业智能(BI)应用已被开发成促进可协助企业达成商业目的的知识(例如,商业真相)的发现。更具体的,商业智能应用的用户可编制一个要针对与特定商业有关的数据执行的查询。传统地,与商业有关的数据被结构化为至少一个包括至少一个二维表格的关系数据库
[0003] 虽然当与商业有关的数据被结构化为关系数据库时,传统BI应用提供足够的接口来协助用户获取商业知识,但是传统商业智能应用不太适用于从多维数据结构(例如,数据立方,有时被称为“超立方”)中发现商业知识。在一个示例中,当与商业有关的数据被结构化为数据立方时,希望通过查询数据立方来获得商业知识的用户必须具有对于该立方的内容的先验知识。此外,用户必须熟悉可被用来执行针对数据立方的查询的查询语言。此外,用户在编制查询时必须具有对于感兴趣的数据立方的切片和/或分的知识。因此,用户必须编制最终查询,该最终查询不会得到对于想要的商业知识的呈现。
[0004] 概述
[0005] 以下是在本文更详细描述的主题的简要概述。本概述不旨在成为关于权利要求的范围的限制。
[0006] 本文中描述了一种计算系统,其中该计算系统包括处理器和存储器。存储器包括由处理器执行的商业智能(BI)应用。BI应用被配置成基于对查询的之前版本的增量修改来构造查询。查询被表示为一系列查询步骤,该一系列查询步骤中的每一个步骤对应于各增量修改中的相应的增量修改。BI应用还被配置成基于该查询从数据立方中检索表格数据。
[0007] 附图简述
[0008] 图1是促进构造用于针对多维数据结构执行的查询的示例性系统的功能框图
[0009] 图2是例示出用于构造用于针对多维数据结构执行的查询的示例性方法的流程图
[0010] 图3是例示出基于对于多维数据结构中的至少一维的折叠或展开属性的请求来细化查询的示例性方法的流程图。
[0011] 图4是例示出用于合并至少两个多维数据结构以创建合并的数据结构的示例性方法的流程图。
[0012] 图5-16是促进构造能够针对多维数据结构执行的查询的示例性图形用户界面
[0013] 图17是示例性计算系统。
[0014] 详细描述
[0015] 现在结合附图描述与通过一系列阶段来构造查询有关的各项技术,其中查询被配置成针对多维数据结构执行,其中贯穿全文,相同的附图标记被用于指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对一个或多个方面的全面理解。然而,显然这(些)方面可以在没有这些具体细节的情况下实施。在其他实例中,以框图形式示出公知的结构和设备以便于描述一个或多个方面。此外,可以理解,被描述成由单个系统组件执行的功能可由多个组件来执行。类似地,例如,一组件可被配置成执行被描述为由多个组件实现的功能。
[0016] 此外,术语“或”意指包括性“或”而非排斥性“或”。即,除非另有指定或从上下文显而易见,否则短语“X采用A或B”意指任何自然的包括性排列。即,短语“X采用A或B”藉由以下实例中任何实例得到满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所使用的冠词“一”和“某”一般应当被解释成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。
[0017] 此外,如本文所使用的,术语“组件”和“系统”旨在包含用使得在被处理器执行时执行特定功能性的计算机可执行指令配置的计算机可读数据存储。计算机可执行指令可包括例程、功能等等。还要理解组件或系统可以位于单个设备上或跨若干设备分布。此外,如本文使用的,术语“示例性”旨在意味用作某些事情的说明或示例,而并非旨在指示优选。
[0018] 本文中描述了与构造被配置成针对多维数据结构(例如,立方,也可被称为超立方、数据立方等)执行的查询的各项技术。立方被例如使用星型或花模式来定义在一组相关的表格上,该模式包括至少一个事实表以及与事实表有关的一系列维度表(也被称为“维度”)。事实行(事实表中的行)可按照维度“属性”(例如维度表的列)来分组。“度量”是应用于一组事实行的各列的聚合功能(例如,对一组事实行中的值的求和功能)。
[0019] 更具体的,立方的事实表包括对商业过程的度量、量度、或事实,并且位于星型或雪花模式的中心并由各维度包围。维度为原先无序的数字度量提供结构化的标记信息。相应地,维度包括各个单独的、非重叠的数据元素。维度通常结合过滤、分组、以及标记数据一起使用。术语“切片”指的是对来自立方中的数据进行过滤,而术语“切丁”指的是将立方中的数据归组。通常,维度具有维度属性,维度属性是分层次地组织的。例如,维度可表示时间,以及若干个可能的分层次的属性。例如,维度可包括维度属性“天”、“星期”、“月”、以及“年”。属性“天”可被归组(折叠)成“月”,“月”可被折叠成“年”。类似的,天可被折叠成“星期”,“星期”可被折叠成“年”等等。最后,立方的度量是一种可对其执行计算的特性,其中该计算包括求和、计数、求平均、最小值、以及最大值。
[0020] 立方数据可以单个平面表形式来表示,该平面表包括属性和度量应用——这一平面表可被称为“事实表”。立方操作被“降低”为以关系运算符来表达的表示。“维度表”指的是包括针对该维度的每一个属性的列的表。每一个维度属性的成员可被枚举,产生维度的属性的成员的叉积。本文中描述了与立方有关的各个示例。
[0021] 现在参考图1,例示了促进构造可针对多维数据结构(本文中被称为立方)执行的查询的示例性系统100。此外,系统100可促进以分步方式构造查询,其中查询可在向用户(或计算设备)呈现了数据时被细化,使得基于对所呈现的数据的用户分析或所呈现的数据的计算机分析来细化查询。系统100包括数据存储102,数据存储102包括立方104。虽然立方104被示为包括在数据存储102中,但是应当理解,立方104可分布在多个数据存储中。此外,立方104可表示可能具有不同的各个结构的若干个立方的组合。
[0022] 系统100还可包括服务器计算设备106,服务器计算设备106被配置具有计算机可执行指令,该计算机可执行指令使得服务器计算设备106能够执行针对立方104的查询并响应于执行针对立方的查询而输出数据。
[0023] 系统100可进一步包括客户端计算设备108,客户端计算设备108可被配置成基于来自用户110或计算机程序的输入接收和/或构造供针对立方104执行的查询。客户端计算设备108与服务器计算设备106通信,并且可将查询传送给服务器计算设备106。客户端计算设备108可以是任何合适的计算设备,包括但不限于台式计算设备、膝上型计算设备、平板(板式)计算设备、移动电话、可变形计算设备、可佩戴计算设备(例如,手表、头饰等)、平板手机、视频游戏控制台等。
[0024] 客户端计算设备108包括处理器111和存储器112,其中处理器111可执行存储器112中的指令。如所示出的,存储器112包括由处理器111执行的商业智能(BI)应用114。BI应用114被配置成从立方104中提取商业知识并且将该商业知识呈现给用户110(例如,可视化该商业知识)。在一个示例性实施例中,BI应用114可以是电子表格应用或被包括在电子表格应用中。虽然BI应用114被示为在客户端计算设备108上执行,但是应当理解,BI应用114可在通过网络连接而可由客户端计算设备108访问的计算设备中执行。例如,客户端计算设备108可具有执行在其上的浏览器或其它合适的应用,其中例如浏览器可被引向执行BI应用114的位于远程的计算设备。换言之,BI应用114可以是基于web的应用或被作为web服务来供应。此外,应当理解,数据存储102、服务器计算设备106、和/或客户端计算设备108可位于单个计算设备上;因此系统100的架构实际上是示例性的,而不旨在是限制性的。
[0025] BI应用114包括从用户110(或计算机可执行程序)接收与数据立方104有关的输入的输入接收器组件115。例如,输入接收器组件115可接收指示将立方104的内容(立方104的至少一部分)加载到客户端计算设备108的存储器112的被分配给BI应用114的那部分中的期望。另外地或替代地,为了提高性能,响应于输入接收器组件115接收到期望访问立方104的指示,BI应用114可被配置成打开与服务器计算设备106的通信信道,使得不需要将整个立方104加载到客户端计算设备108的存储器112中。
[0026] BI应用114进一步包括查询构造器组件116,查询构造器组件116基于输入接收器组件115所接收的输入来构造查询。例如,响应于输入接收器组件115接收到将立方104加载到存储器112中的请求,查询构造器组件116可生成查询,在该查询由服务器计算设备106针对立方104执行时,该查询导致整个立方104被从数据存储102中检索出并被加载到客户端计算设备108的存储器112中(例如,在客户端计算设备108中立方104被表示为数据117)。如之前指出的,BI应用114可被配置成生成可针对多种不同类型的多维结构执行的查询。相应地,如将要更详细描述的,查询构造器组件116可初始地以相对高级的语言生成查询,该语言在BI应用114被配置成支持的所有类型的立方中通用。这一查询可被称为“高级”查询。查询构造器组件116可包括查询转换器组件118,查询转换器组件118可将高级查询转换成服务器计算设备106所支持的查询。因此,在一个示例中,当BI应用114被配置成支持针对三种类型的立方的查询时,用户110不需要学习三种不同的查询语言来针对这三种不同类型的立方进行查询。替代地,查询构造器组件116和查询转换器组件118被配置成处理对应于被访问的立方的查询语言的查询的构造。
[0027] BI应用114还包括被配置成呈现存储器112中的数据117(例如呈现在客户端计算设备108的显示器上)的呈现器组件120。根据一个示例,当查询构造器组件116基于输入接收器组件115所接收的输入来构造查询时,查询构造器组件116可被配置成将查询传送给服务器计算设备106。
[0028] 服务器计算设备106包括服务器处理器122和服务器存储器124,其中服务器存储器124包括可由服务器处理器122执行的组件。服务器存储器124包括查询执行器组件126,查询执行器组件126接收来自客户端计算设备108的查询并且针对数据存储102中的立方104执行该查询。服务器存储器124还包括数据提供器组件128,数据提供器组件128基于查询执行器组件126所执行的查询从立方104接收数据,并且数据提供器组件128将该数据117提供给客户端计算设备108,在客户端计算设备108,该数据117被放置在存储器112的可由BI应用114访问的那部分中。呈现器组件120从存储器112中检索数据117并将该数据呈现给用户110(例如,以表格形式)。
[0029] 一旦被呈现了该数据,用户110可提供与被呈现的数据有关的附加输入。例如,用户110可能希望被呈现与特定维度属性(例如,表示时间的维度的维度属性“天”)相对应的度量。在另一示例中,用户110可能希望基于特定维度属性来过滤度量(例如,用户110可能希望排除数据117中表示的某些日子)。在另一示例中,用户可能希望展开维度属性,使得更细的属性被示出在显示屏幕上(从而增加向用户110呈现的数据的行的数目)。此外,用户110可能希望折叠维度属性,使得更粗略的属性被示出在显示屏幕上(从而减少向用户110呈现的数据的行的数目)。输入接收器组件115可接收该输入,并且查询构造器组件116可基于该输入细化上述查询。该查询由客户端计算设备108传送给服务器计算设备106,并且服务器计算设备106的查询执行器组件126针对立方104执行经细化的查询。数据提供器组件
128将基于针对立方104执行查询而返回的数据提供给客户端计算设备108,在客户端计算设备108,该数据被存储在存储器112中作为数据117。呈现器组件120将数据117以表格形式呈现给用户110。用户110可随后任选地提供与被呈现的数据或该查询的之前阶段有关的附加输入来进一步细化该查询。
[0030] 因此可确定,用户110可致使查询以多个阶段(或步骤)来构造,其中可向用户110呈现通过查询立方而检索到的表格数据,并且用户110随后可选择要针对该表格数据执行的附加操作来细化该查询。因此,用户110可通过审阅数据并且随后指定要针对该数据执行的附加操作来构造或细化查询。这与传统方式形成对比,在传统方式中,用户110必须具有对于查询执行器组件126所支持的查询语言的知识,必须具有对于立方中的用户110感兴趣的那部分的知识,并且必须随后构造查询来检索立方中的感兴趣的那部分,其中该查询是用以上提到的查询语言编写的。在传统方式中,当构造的查询不能导致期望的数据被呈现给用户110时,用户110必须构造新的查询(例如,从头开始),而不是通过本文中提出的“根据示例查询”的方式。因此,采用本文中描述的各方面,用户110可容易地探索立方104的内容来获取商业知识。
[0031] 现在描述与系统100的操作有关的各示例。如之前指出的,立方104可被表示为平面表,该平面表包括维度属性和度量应用,其中该平面表可被称为“事实”表。要针对立方104执行的查询可被“降低”成以关系运算符表达的表示,从而使得用户110能够与立方104交互而无需被迫学习特定的查询语言。一般来说,关系运算符是测试或定义两个实体之间的关系的构造。示例性关系运算符包括但不限于行过滤器、列选择、排序等等。
[0032] 维度表是包括针对该维度的每一个属性的列的表。因此,例如,“时间”维度表可包括针对年、月、星期、日等等的分开的列。在一个维度表中,每一个维度属性的成员被枚举,从而产生维度的属性的各成员的叉积。例如,针对“顾客地理分布”维度的顾客表被给出在以下的表1中:
[0033] 表1
[0034]
[0035] 从概念上来说,事实表具有通过联接(“经展开的”维度)或嵌套式联接(“经折叠的”维度)而与其有关的各维度表。例如,表2中示出了其中“顾客地理分布”和“商品”作为经折叠的维度的事实表:
[0036] 表2
[0037]
[0038] 该表导致事实表与这些维度表中的每一个的嵌套式联接,例如:
[0039] Table.NestedJoin(factTable,{},#"顾客地理分布",{},"顾客地理分布")其中,依次引用参数,“factTable”是事实表,“{}”是左手边的各键,“#‘顾客地理分布’”是维度表,“{}”是右手边的各键,而“顾客地理分布”是要创建的将嵌套式表放置于其中的列的名称。该事实表中的每一行表示选择立方中的数据的某个子集的坐标。在这种情况下,采用未经过滤的并且未被展开的维度集,对于该事实表中的这一单个(且唯一的)行,立方104中的所有数据将被选择。BI应用114可工作以过滤要显示的内容,从而输出显示层。这一显示层可隐藏被折叠的维度(例如,以提供更好的并且较少困惑的用户体验)。应当理解,每一个单个维度不需要以此方式来呈现,而是已被用户110“触摸”的维度可在用户110工作于立方104时被呈现。
[0040] 如之前指出的,维度表可被展开以生成更精细粒度的坐标,并且查询构造器组件116可构造导致这一展开发生的查询。例如,展开“顾客地理分布”维度并且选择国家、省、以及城市属性导致这些被展开的属性和事实表的各行的叉积,如表3中所示:
[0041] 表3
[0042]
[0043] 在这一示例中,这可被建模为展开由以上所表示的嵌套式联接所得到的“顾客地理分布”列,例如:
[0044]
[0045] 此处,“顾客地理分布”参数标识要展开的列;还提供了要从表中提取的列的列表。这也等效于事实表和维度表之间的(平面)联接,例如:
[0046] Table.Join(factTable,{},#"顾客地理分布",{})
[0047] 其中,“factTable”标识事实表,“{}”表示左手侧键,“#‘顾客地理分布’”是维度表,而“{}”是右手侧键。可以注意到,“积”维度保持被折叠,并且可从视图中被隐藏。每一行可选择立方104中的对应于注意到的坐标的数据子集,例如行3可选择对于所有商品的来自澳大利亚新南威尔士州的Darlinghurst的所有数据。
[0048] 如之前指出的,度量可被建模为针对行的维度坐标来计算的列。该列是作为应用于表中的每一行的同一函数的结果的列。例如,应用“互联网销售量”度量导致经计算的列的添加,如表4中所示:
[0049] 表4
[0050]
[0051]
[0052] 响应于输入接收器组件115接收到计算以上提到的度量的请求,查询构造器组件116可构造诸如以下的导致度量被计算的查询:
[0053]
[0054] 以此示例,针对从可用的维度坐标构造的记录应用了度量“#‘互联网销售量’”。在以上给出的示例中,“顾客地理分布”维度的属性的各个成员(取决于行)可被传递给度量的每一次调用,而“商品”成员的整个折叠的集合可被传递给度量的每一次调用。以此方式,度量被应用于该行所描述的立方104的子集。例如,以上的表4中的行3对针对所有商品并且在澳大利亚新南威尔士州Darlinghurst地区中的立方104的子集应用互联网销售量度量。
[0055] 最终投影层可被放置在立方104的表之上,该最终投影层隐藏了折叠的维度列,因此它们不与用户110交互或者使用户110感到困惑。该投影可使用被配置成将列从表中移除的运算符(例如Table.RemoveColumns)来执行。
[0056] 此外,查询构造器组件116可构造导致在指示维度的展开或折叠被请求时导致度量被“浮动”(floated)的查询。例如,用户期望所选择的度量被应用于维度坐标的当前集合,并且期望在维度坐标变化时更新度量。例如,如果“互联网销售量”度量被应用于完全折叠的立方,则以下示例性表可被呈现:
[0057] 表5
[0058]  互联网销售量
1 29358677
[0059] 输入接收器组件115可接收请求展开“顾客地理分布”维度的“国家”属性的请求,并且查询构造器组件116可构造导致用户110期望看到的表被呈现的查询:
[0060] 表6
[0061]  互联网销售量 顾客地理分布.国家
1 9061000 澳大利亚
2 1977844 加拿大
3 2644017 法国
4 2894312 德国
5 3391712 英国
6 938789 美国
[0062] 这被称为“浮动”度量。如之前指出的,查询构造器组件116可标识计算度量的请求,并且可将所构造的查询中的计算放置到相关维度属性已被选择之后的某点。
[0063] 在另一示例中,列可以是经计算的列,其中经计算的列携带曾被用来构造该列的函数。例如,用户可审阅表6并且请求该函数被用于计算“互联网销售量”这列:
[0064] ComputedColumn(factTable,"互联网销售量"),
[0065] 得到以下表达式的返回:
[0066]
[0067] 如果用这一函数创建了新的列,则将提供该原始列的准确副本。
[0068] 计算出的列可被用于浮动度量。每当应用了改变立方的维度(例如,增加维度、展开维度、或折叠维度)的立方操作,所有度量可被浮动,使得度量被针对正确的维度坐标集重新计算。系统100可执行多步骤过程来恰当地浮动度量。更具体地,首先,查询构造器组件116可收集表示度量应用的表的计算出的列的表达式。之后,查询构造器组件116可从表中移除度量应用的计算出的列。表的维度可随后被更新,例如通过添加度量、展开维度、或者折叠维度。度量应用表达式被调整以纳入新的维度,并且新的度量应用表达式被应用于表。
以此方式,度量应用可被重新排序以看上去像是它们已在立方的维度被调整之后进行过一样。
[0069] 例如,如果用户119以仅将“互联网销售”度量应用于“国家”维度属性来开始,并且展开“顾客地理分布”维度以包括“城市”属性,则可发生以下的过程(参加表6)。首先,查询构造器组件116可提取计算出的列的表达式:
[0070]
[0071] 之后,查询构造器组件116可构造查询,使得计算出的列被移除:Table.RemoveColumns(factTable,{"互联网销售量"})
[0072] 表7例示出得到的表(其中表6中计算出的列已被移除)。
[0073] 表7
[0074]  顾客地理分布.国家
1 澳大利亚
2 加拿大
3 法国
4 德国
5 英国
6 美国
[0075] 维度变化可随后被应用,例如:
[0076] ExpandDimension(factTable,#"顾客地理分布",{"城市"})
[0077] 这一展开示出在表1中。
[0078] 查询构造器组件116调整度量的表达式以包括新的维度:
[0079]
[0080]
[0081] 因而,此处,度量的表达式设想了“顾客地理分布”维度的“城市”属性。
[0082] 最后,查询构造器组件116可重新应用新的度量:
[0083]
[0084] 例如,这可得到由查询执行器组件126生成的表8。
[0085] 表8
[0086]
[0087]
[0088] 度量列的这一“浮动”在功能和迭代构成下是有效的。换言之,改变立方表的维度(并因此浮动度量)的查询的更多步骤可继续被积累,而无需返回和调整步骤链中的之前步骤中的任何一个。
[0089] 系统100可进一步支持可被用来操纵立方数据的立方运算符。这种运算符可以是现有的关系基元周围的封装器,除了这些运算符添加了其它操作来浮动核心关系操作周围的度量。出于完整性,以下引入了FactRowsExist函数,其仅从所有维度的叉积中选择实际选择了底层立方104中的数据中的一些事实行的坐标组合。类似的过滤器可被用于在立方操作被降低为关系空间时保留立方操作的正确语义。
[0090] 首先,“AddDimension”运算符被描述,其添加一个维度到表中。这一运算符接收事实表的身份、维度表的列名的身份、以及维度表的身份作为输入。例如:AddDimension(factTable,dimensionColumnName,dimensionTable)可使用嵌套式联接将(可能经过滤的)维度表并入事实表中。如果维度表经过过滤,则这一运算符可改变立方维度。可注意到,维度表过滤可通过选择表中的行的运算符(例如,Table.SelectRows)来实现。示例性运算符的经降低的关系形式被给出如下:
[0091]
[0092] “ExpandDimension”运算符展开之前附连(例如通过AddDimension运算符)的维度表的属性,并且改变立方维度。这一示例性运算符获取事实表、维度列名的身份、以及至少一个属性名的身份作为输入,例如ExpandDimension(factTable,dimensionColumnName,{dimensionAttributeName1,…})。这个运算符的示例性经降低的关系形式被给出如下:
[0093]
[0094] “CollapseDimension”运算符折叠之前展开的维度的属性,并且改变立方维度。示例性CollapseDimension运算符获取事实表以及至少一个属性名的身份作为输入,例如CollapseDimension(factTable,{dimensionAttributeName1,…})。可注意到,在折叠维度之前通过选择行的运算符来添加对维度成员(和度量)的过滤器是可能的。例如,这可创建针对维度的切片,并且可被用于实施对维度和度量的交叉过滤(例如,在“或”语句中一次引用多个维度的过滤器)。CollapseDimension运算符的示例性经降低的关系形式被示出如下:
[0095]
[0096] “AddMeasure”运算符将度量应用于事实表,其中维度坐标记录可具有之前的示例中示出的形式。AddMeasure运算符将factTable、列名的身份、以及要被应用的度量函数的身份取作为输入,例如AddMeasure(factTable,columnName,measureFunction)。AddMeasure运算符的示例性经降低的关系形式被示出如下:
[0097]
[0098] 以以上提到的形式表达的查询可被转换并按任何次序(例如,由查询构造器组件116和/或查询执行器组件126)提供到可针对目标立方104执行的查询中。以下给出的描述假设对于抽象语法树(AST)和/或表达式树的熟悉,并且进一步假设对于将这类树标准化成标准形式的熟悉。从概念上,以下给出了查询转换的过程。首先,用户110(或程序)以立方和关系运算符形式表达操作。之后,立方操作被“降低”成关系运算法并浮动度量。随后,表达式被标准化以重新排序各运算符并沉淀为经标准化的表达式树模式。接着,经标准化的表达式树模式可被“提升”成“立方表达式”以匹配立方服务器的期望——例如使得查询执行器组件126能够执行该查询。立方表达式可随后被转换成因服务器而异的语法。
[0099] 现在给出可由查询构造器组件116应用的示例性查询标准化规则。例如,列选择和行过滤器可被尽可能远地向下深入推送到表达式树中。被展开的嵌套式联接可被转换成平面联接,例如ExpandTableColumn(NestedJoin(x,y),{all cols of y})->Join(x,y)。添加的列的移除就像该列从未被添加一样:例如RemoveColumn(AddColumn(x),x)->no-op。在某些情况下,平面联接之上的归组可被转换成嵌套式联接,例如Group(Join(x,y),{all cols of x},{table of y})->NestedJoin(x,y)。
[0100] 现在给出与转换成“立方表达式”有关的示例性动作,该示例性动作可由查询构造器组件116执行。可在经降低的查询表达式内检测到特定的经标准化的模式并且该经标准化的模式被转换成“立方表达式”,“立方表达式”是一种接近地匹配多维查询语言的语法的表达式树。在一个示例中,具有维度表的平面联接将维度的属性添加到立方表达式:例如Join(factTable,{},dimensionTable,{})转换成如下:
[0101]
[0102] 在另一示例中,具有经过滤的维度表的嵌套式联接将针对维度的属性的过滤器(例如,切片器)添加到立方表达式的子查询中。例如,
[0103] NestedJoin(factTable,{},SelectRows(dimensionTable,(r)=>r[City]="Seattle"))转换成如下:
[0104]
[0105] 在又一示例中,度量应用将度量引用添加到立方表达式中。例如,
[0106]
[0107] 转换成:
[0108]
[0109] 在又一示例中,行过滤器(例如,SelectRows)可被转换成针对度量和维度的过滤器表达式。因此,例如Table.SelectRows(factTable,each[Internet Sales Amount]>500)转换成如下:
[0110]
[0111] 在又一示例中,所有其它维度组成的组被转换成对剩余维度的“折叠”操作。折叠的维度可被推送到立方表达式中的子查询中,并且其它维度保持在外部的立方表达式中。因此,例如,Table.Group(factTable,{"dim2","dim3"},
[0112]
[0113] 查询构造器组件116可将立方表达式转换成目标立方服务器的期望的语言和语法。以下给出几个示例来阐明以上描述的各个动作。
[0114] 示例1——添加维度:
[0115] 以下查询可由用户或程序提出:
[0116] AddDimension(emptyFactTable,"顾客地理分布",#"顾客地理分布")
[0117] 查询构造器组件116可将该查询降低成以下:
[0118]
[0119] 对于这一示例性查询,不执行标准化,并且以上被转换成空的立方表达式(因为不存在要执行的立方操作)。此外,查询不需要被转换成立方服务器的语言,因为没有要针对立方104执行的查询。结果是空表的返回。
[0120] 示例2——展开维度:
[0121] 在以下的示例中,立方表达式的格式如下:“From”指的是输入立方;“Dimensions”指的是要被展开的维度;“Measures”是要应用的度量;并且各示例中提到的过滤器基于其预测对得到的行进行过滤。以下查询可由用户或程序提出:
[0122] ExpandDimension(
[0123] AddDimension(emptyFactTable,"顾客地理分布",#"顾客地理分布"),
[0124] {"国家","州-省","城市"})
[0125] 查询构造器组件116可将该查询降低为以下:
[0126]
[0127]
[0128] 查询构造器组件116可随后通过经由SelectRows推送ExpandTableColumn、并且随后将ExpandTableColumn(NestedJoin)模式转换成平面联接如下来标准化经降低的表达式:
[0129]
[0130] 查询构造器组件116可接着将经标准化的表达式转换成立方表达式:
[0131]
[0132]
[0133] 查询构造器组件116和/或查询执行器组件126可将立方表达式转换成所支持的语言以供查询立方104。数据提供器组件128可随后将表1提供给客户端计算设备108供显示。
[0134] 示例3——添加度量
[0135] 以下查询可由用户或程序提出:
[0136]
[0137] 查询构造器组件116可将该查询降低成以下:
[0138]
[0139]
[0140] 查询构造器组件116可随后转换该表达式以具有如之前的示例中的平面联接:
[0141]
[0142] 查询构造器组件116可接着将经标准化的表达式转换成立方表达式:
[0143]
[0144]
[0145] 查询构造器组件116和/或查询执行器组件126可将立方表达式转换成对应于立方104的语言和/或语法。由执行该查询得到的表示出在表4中。
[0146] 示例4:过滤器
[0147] 以下查询可由用户或程序提出:
[0148]
[0149] 查询构造器组件116可将该查询降低成以下:
[0150]
[0151] 查询构造器组件116可随后标准化以上的表达式以具有平面联接。查询构造器组件116还可将对于城市维度属性的“行”过滤器与“顾客地理分布”维度表一起推送到该联接之下,如此处示出的:
[0152]
[0153]
[0154] 查询构造器组件116可接着将经标准化的表达式转换成立方表达式:
[0155]
[0156]
[0157] 查询构造器组件116和/或查询执行器组件126可将以上表达式转换成可被用于针对立方104进行查询的语言和/或语法。执行这一查询可导致以下表的获得:
[0158] 表9
[0159]  顾客地理分布.国家 顾客地理分布.州-省 顾客地理分布.城市 互联网销售量
1 美国 华盛顿 Seattle 75164
[0160] 示例5:折叠
[0161] 以下查询可由用户或程序提出:
[0162]
[0163] 应当注意,为了简明,存在于本文中之前的示例中的度量过滤器已被省略。查询构造器组件116可将这一查询降低成以下:
[0164]
[0165]
[0166] 应注意添加用于“浮动”度量的操作,因为表的维度是变化的。此外,可注意到,度量应用已被调整以依赖于新的维度集合(国家)。还可注意到,使用了归组操作,该操作按照没有被折叠的剩余维度属性来归组。首先,ExpandTableColumn(NestedJoin)被替换为向之前的示例中的平面联接:
[0167]
[0168]
[0169] 针对城市维度的过滤器被向下推送到维度表:
[0170]
[0171]
[0172] RemoveColumns(AddColumn)配对也被消除,因为被移除的列不再是必需的。可以注意到,这是度量的“浮动”的关键部分,并且使得这一查询变得高效以在标准化之后进行评估:
[0173]
[0174]
[0175] 最后,查询构造器组件116可将Group(Join)组合标准化成NestedJoin:
[0176]
[0177]
[0178] 查询构造器组件116可接着将该表达式转换成立方表达式:
[0179]
[0180] 查询构造器组件116和/或查询执行器组件126可将该查询转换成可被用于针对立方104执行查询的语言和/或语法。以下表可基于该查询来检索:
[0181] 表10
[0182]
[0183] 图2-4例示出与构造用于针对立方执行的查询有关的示例性方法。尽管各方法被表示和描述为顺序地执行的一系列动作,但要理解,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,某一动作可以与另一动作并发地发生。此外,在一些实例中,实现本文描述的方法并不需要所有动作。
[0184] 此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。
[0185] 现在参考图2,例示了用于构造可针对立方执行的查询的示例性方法200的流程图。方法200开始于202,并且在204接收立方。在206,接收对立方中的至少一个维度属性和至少一个度量的选择。在一个示例中,立方可包括标识按照地点和时间区分的销量的数据。在这一示例中,销量是度量,而地点和时间是维度。地点维度的属性是城市、州、以及国家,而时间维度的属性可以是星期、月、以及年。
[0186] 在208,基于对至少一个维度属性和至少一个度量的选择来构造查询。在一个示例中,如果选择是对于地点维度属性“城市”,并且被选择的度量是“销量”,则构造的查询可被配置成从立方中检索按照城市区分的销量。
[0187] 在210,基于该查询接收数据。具体地,针对立方执行该查询,并且接收基于针对立方执行该查询所生成的数据。数据可以表格形式在计算设备的显示器上呈现给用户。在212,接收与所呈现的数据有关的输入。该输入可以是基于特定属性值、维度属性的折叠、维度属性的展开、添加维度属性、添加度量等对所呈现的数据进行过滤的请求。现在给出这一类型的用户输入的示例。继续该示例,在用户已获得了按照维度属性“城市”区分的销量数字的情况下,用户可能希望被提供来自以字母“A”开始的各城市的销量数字。因此,输入可以是基于输入字母“A”来过滤城市的请求。在另一示例中,为了折叠维度属性“地点”,用户可能希望被提供按照州区分的销量数字,而不是按照城市来区分。因此,在212接收的输入可以是将维度属性“地点”从“城市”折叠为“州”的请求。在又一示例中,为了展开维度属性“地点”,用户可能希望被提供按照选区来区分的销量数字,而不是按照城市来区分。在212接收的输入可因此是将维度属性“地点”从“城市”展开为“选区”的请求。在又一示例中,用户可能希望利润信息与销量数据一起被提供。用户可请求返回该利润,使得用户被提供按照城市区分的销量和按照城市区分的利润两者。这是添加度量的示例。另外地或替代地,用户可能希望移除度量。
[0188] 在214,基于212处接收的输入来更新查询。在216,基于214处更新的查询接收进一步数据。换言之,针对立方执行经更新的查询并且这一执行的结果被接收并在显示屏幕上呈现给用户。因此,用户通过查看数据并且标识要针对该数据执行的至少一个操作来构造查询。这一过程可持续,直到用户所需的数据被获取。在218,作出关于用户是否正提供附加输入的判断。如果用户提供附加输入,则方法返回212,否则方法在220处完成。
[0189] 现在参考图3,例示了促进构造用于针对立方执行的查询的示例性方法300。方法300开始于302,并且在304接收立方。在306,接收对至少一个维度属性(例如,维度“时间”的属性“天”)和至少一个度量的选择。在308,基于对至少一个维度属性和至少一个度量的选择来构造查询。在310,基于该查询接收数据。如以上所描述的,可针对立方体执行在308处构造的查询,从而导致提供可以表格形式呈现在显示器上的数据。在312,接收折叠或展开以表格数据呈现的至少一个维度的请求。折叠维度指的是生成较粗略属性的较粗略粒度的坐标,而展开维度指的是生成更精细属性的更精细粒度的坐标。在314,基于折叠或展开至少一个维度的请求来细化查询。
[0190] 另外,对于至少一个度量的计算在查询中“浮动”,例如使得直到检索到合适的维度属性的属性值之后才计算该度量。这自动发生,尽管事实上用户在查询构造的之前阶段中请求计算该度量(例如在请求展开或折叠维度属性之前)。度量计算的浮动可通过标识针对度量计算的请求、以及将查询中的度量计算命令移动到使得度量计算发生在标识出维度属性之后的位置处来进行。
[0191] 应当注意,这一动作不同于例如将命令添加到查询末尾。例如,初始示例性查询可具有以下形式:维度=时间;属性=天;度量=销量。基于这一查询检索到的数据可以是每天的销量。当该查询被重新编制时,该查询可具有以下形式:维度=时间;属性=天;属性=星期;度量=销量。因此,对属性的选择被放到度量计算命令之前——度量计算被“浮动”。再次,这与将属性选择附加到查询末尾形成对比,诸如:维度=时间;属性=天;度量=销量;属性=星期。方法300在316完成。
[0192] 现在参考附图4,例示出了促进合并立方的示例性方法400。方法400开始于402,并且在404接收将来自第一来源的(可选地具有第一格式的)第一立方与来自第二来源的(并且可选地具有第二格式的)第二立方合并的请求。在406,第一立方与第二立方合并以生成经合并的立方。在408,针对经合并的立方执行查询。因此,来自不同数据源的立方可被合并并且可针对经合并的立方执行单一查询。方法400在410完成。
[0193] 现在参考图5,例示了促进构造用于针对立方执行的查询的示例性图形用户界面500。图形用户界面500包括表示立方(例如,立方104)的图形图标502。响应于图形图标502被选择,多个图标504-512可被呈现,其中图标504-512表示图标502所表示的立方中的各个对象。在一个示例中,图形图标506可表示与企业的顾客有关的对象。对图形图标506的选择可导致图形图标514和516被呈现,其中图形图标514和516表示立方104中的各维度。对图形图标516的选择可导致多个图标518-524被呈现,其中这些图标518-524表示图标516所表示的维度的各个属性。对应于图形用户界面500中的图标而示出的数字可为用户指示该图标下的对象数目。例如,图标516所表示的维度具有四个属性,而数字(4)以与图标516的图形关系来标注。用户110可导航各对象并且选择立方104中用户110感兴趣的维度属性和度量。
[0194] 现在参考图6,例示出另一示例性图形用户界面,其中图形用户界面600描绘了用户110对特定维度属性和度量的选择。响应于接收到对图标512的选择,多个图标602和604被示出,它们标识两组度量(分别是与购买有关的度量和与商品有关的度量)。响应于图标602被选择,多个可选择的图标606-610被呈现,其中图标606-610分别表示各度量。图6中示出的“购买”分组下的示例性度量包括“订购数量”、“收到数量”、以及“成本”。此外,响应于图标508被选择,图标612和614被呈现,并且响应于图标614被选择,图标616被示出。图标
612和614表示与商品有关的维度(例如,“商品ID”和“类别名称”),并且图标616表示图标
614所表示的维度“类别名称”的属性“类别名称”)。
[0195] 如示例性图形用户界面600中示出的,图标606已被选择,因此标识物品的订购数量(例如,“订购数量”)的度量被选择。另外,维度“顾客姓名”的属性“城市”和“国家”已被选择,并且维度“类别名称”的属性“类别名称”已被选择。一旦用户110选择了想要的维度属性和度量,用户110就可选择“加载”按钮618。输入接收器组件115(图1)可接收对维度属性和度量的选择(例如,响应于“加载”按钮618被选择),并且查询构造器组件116基于输入接收器组件115所接收的输入来构造查询。服务器计算设备106接收该查询,并且查询执行器组件126针对立方104执行该查询。数据提供器组件128接收基于针对立方104执行该查询而返回的数据,并且将该数据传送给客户端计算设备108,在客户端计算设备108,数据被放置在存储器112中作为数据117。
[0196] 现在参考图7,示出了包括工作表的示例性图形用户界面700,其中呈现器组件120以表格形式呈现基于构造的查询检索到的数据117。图形用户界面700包括表格数据702,表格数据702包括所选择的各个列属性的列以及维度属性的值的度量的行。因此,继续以上结合图形用户界面600描述的示例用户选择,表格数据702包括表示维度“顾客姓名”的属性“城市”的第一列704、表示维度“顾客姓名”的属性“国家”的第二列706、以及表示维度“顾客姓名”的属性“类别名称”的第三列708。第四列710表示度量“订购数量”,而第四列710中的值表示具有列704、706、以及708中示出的各个属性的商品的订购数量。
[0197] 现在参考图8,例示了促进构造和编辑查询的查询编辑器工具的示例性图形用户界面800。例如,响应于被呈现图7中示出的工作表中的数据,用户110可能希望构造导致不同数据被呈现给用户110的查询。图形用户界面800包括列出已被执行的用于获得图形用户界面700中示出的数据的步骤列表的栏802。栏804描绘了基于栏802中示出的步骤从立方104中检索到的数据。例如,该栏中的“源”步骤表示对图标502表示的立方104的选择。栏802中示出的步骤“展开dim(维度)1”表示对维度“顾客姓名”的维度属性“城市”和“国家”的选择。步骤“展开dim2”表示对维度“类别名称”的维度属性“类别名称”的选择。如本文中将描述的,栏802中示出的步骤是可选择的,并且栏804中呈现的数据随不同步骤被选择而改变。
[0198] 现在参考图9,示出了查询编辑器工具的另一示例性图形用户界面900。在这一示例中,用户110已选择了栏802中描绘的步骤列表中的步骤“展开dim1”。响应于步骤“展开dim1”被选择,BI应用可更新栏804中示出的内容,使得维度“顾客姓名”中的维度属性“城市”和“国家”的属性值被示出,而维度属性“类别名称”的属性值和度量不被描绘在栏804中。
[0199] 现在参考图10,示出了查询编辑器工具的另一示例性图形用户界面1000。此处,用户110已从栏802中选择了用于构造查询的第三步骤(“展开dim2”),并且栏804的内容被更新以呈现基于前三个步骤(而不是“添加measure(度量)1”步骤)构造查询时的数据。换言之,查询构造器组件116基于前三个步骤构造查询,并且查询执行器组件126针对立方104执行该查询。由于第三个步骤涉及展开类别名称,因此第三列708被呈现。图9和10已被呈现以例示用户110在通过本文中描述的按步骤的方法来构造和/或编辑查询时可返回过去插入新的查询步骤、修改之前执行的查询步骤等。
[0200] 现在参考图11,呈现了查询编辑器工具的另一示例性图形用户界面1100,其中用户110已选择了查询构造步骤“添加measure1”,该步骤表示对度量“订购数量”的选择。栏804的内容响应于之前提到的步骤被选择而更新以呈现维度属性的属性值的度量值。再次,用户可在栏802中示出的各步骤之间插入查询构造步骤,可从栏802中示出的各步骤中删除查询构造步骤,可将查询构造步骤添加到栏802中示出的最后一个查询构造步骤之后等等。
[0201] 现在参考图12,显示了可被用于列出通过查询编辑器工具构造的查询的基于文本的版本的示例性图形用户界面1200。通过编辑图12中示出的文本,用户110可选择通过插入文本、移除文本等来修改构造的查询。基于文本的编辑器可能对于熟悉商业智能应用114所采用的查询语言的用户而言特别适合。
[0202] 现在参考图13,描绘了促进维度属性的折叠的示例性图形用户界面1300。如图11中所示,对于维度“顾客姓名”针对维度属性“城市”和“国家”来计算度量“订购数量”,其中维度属性“城市”比维度属性“国家”更精细。返回图13,将维度从“城市”折叠成“国家”导致度量“订购数量”的值被累积到维度属性“国家”。这由栏802中的“折叠dim1”步骤来表示。
[0203] 当折叠或展开维度属性时,使用本文中描述的逐步骤方法来构造查询是一种有意义的过程,因为折叠或展开维度属性的功能不能被按顺序应用于之前的查询构造步骤。如以上所述的,查询构造器组件116通过将度量的计算“浮动”到查询表达式后部来构造查询。在关系数据库设置中,不存在与该方法的任何类似方法。换言之,在关系数据库设置中从表中移除列不会导致行被移除。
[0204] 继续这一示例,查询构造器组件116通过(在“折叠dim1”步骤之前)首先定义检索经标识的维度属性的第一表达式、以及随后定义计算经标识的维度属性的属性值的经标识的度量来构造查询。如果查询构造器组件116尝试了定义折叠属性维度的第三表达式(其中该第三功能在第一和第二功能之后执行(例如,映射到栏802中的步骤的顺序)),则该度量将仍然针对更精细的维度属性(“城市”)来计算,而不是针对期望的(较粗略的)维度属性“国家”来计算。在折叠和展开的情况下,替代线性地添加表达式,用于计算度量的表达式被浮动到查询外部,使得该表达式在期望的属性维度已被标识之后执行。栏804中示出的得到的表1302包括两列:对应于维度“顾客姓名”的维度属性“国家”的第一列1304,以及标识针对第一列1304中示出的属性值计算的度量值的第二列1306。
[0205] 参考图14,呈现了另一示例性图形用户界面1400。可以确定用户110已选择了栏802中的之前的查询构造步骤(即“添加measure1”步骤)。因此,例如,用户110可能希望在查询导致维度属性“城市”被折叠成维度属性“国家”之前修改该查询。例如,用户110可选择具有第一列704中的第一值的特定单元格1402,这可导致弹出窗口1404被呈现给用户110。弹出窗口1404可包括可选择的用于过滤来自表格数据702的结果的选项。例如,用户110可指示她希望过滤表格数据702中具有来自表格数据702中的第一值的任何行。在另一示例中,用户110可指示她希望仅被提供表格数据702中具有第一值的行(或者其它过滤选项)。用户
110从弹出窗口1404中选择的过滤器选项可随后被添加作为栏802中的查询构造过程中的一个步骤,并且可在所选择的步骤之后立即呈现(例如,在“添加measure1”步骤之后,但是在“折叠dim1”步骤之前)。查询构造器组件116可响应于输入接受器组件115接收到用户110已选择了过滤器的指示而更新经构造的查询。
[0206] 参考图15,用户110可随后选择栏802中示出的查询步骤中的最后一个步骤(例如,“折叠dim1”步骤),这可导致查询构造器组件116将经细化的查询传送给查询执行器组件126,查询执行器组件126针对立方104执行经细化的查询。数据提供器组件128返回数据
117,数据117被保存在客户端计算设备108的存储器112中。呈现器组件120以表格形式将数据117呈现在栏804中,其中表格数据1502例示出通过执行查询而返回的数据。例如,单元格
1504中的值已因为被包括在查询中的过滤步骤的缘故而被更新(当与图13中示出的单元格中的对应值相比)。
[0207] 参考图16,示出了基于文本的查询编辑器工具的另一示例性图形用户界面1600。图形用户界面1600描绘了以上文提出的方式构造的查询的文本表示。
[0208] 现在给出各示例。
[0209] 示例1:一种计算系统,包括:存储器;以及存储器,所述存储器包括由所述处理器执行的商业智能(BI)应用,所述BI应用被配置成:基于对查询的之前的版本的增量修改来构造查询,所述查询被表示为一系列查询步骤,所述一系列查询步骤中的每一个步骤对应于所述增量修改中的相应的增量修改;以及基于所述查询从数据立方中检索表格数据。
[0210] 示例2:根据示例1所述的计算系统,所述BI应用包括查询构造器组件,所述查询构造器接收增量修改并且基于所述增量修改和一系列之前接收的增量修改来构造所述查询,其中所述查询构造器组件将所述查询表达为多个关系运算符。
[0211] 示例3:根据示例2所述的计算系统,所述查询构造器组件将多个运算符标准化成预定义的表达式树模式。
[0212] 示例4:根据示例1所述的计算系统,所述BI应用包括查询构造器组件,所述查询构造器接收对所述查询的增量修改,对所述查询的增量修改是对展开所述立方中的维度或折叠所述立方中的维度之一的请求,所述查询构造器组件基于所述增量修改来构造所述查询。
[0213] 示例5:根据示例4所述的计算系统,所述查询包括第二增量修改,所述第二增量修改是对于计算维度的度量的请求,所述查询构造器组件构造所述查询使得所述度量在选择了所述维度的属性之后计算。
[0214] 示例6:根据示例5所述的计算系统,所述第二增量修改发生在所述增量修改之前。
[0215] 示例7:如示例1-6中的任意一个所述的计算系统,还包括呈现器组件,所述呈现器组件在显示器上呈现从所述数据立方检索到的表格数据,所述呈现器组件进一步将所述查询呈现在所述显示器上。
[0216] 示例8:根据示例7所述的计算系统,所述呈现器组件在所述显示器上呈现所述一系列查询步骤。
[0217] 示例9:根据示例8所述的计算系统,所述BI应用包括输入接收器组件,所述输入接收器组件接收对于所述查询步骤中的前一查询步骤的选择,其中响应于所述输入接收器组件接收到所述选择,所述呈现器组件在所述显示器上呈现来自所述数据立方的第二表格数据,所述第二表格数据是基于所述查询步骤中的所述之前步骤处的查询检索到的。
[0218] 示例10:根据示例9所述的计算系统,所述输入接收器组件在所述输入接收器组件接收到对于之前的查询步骤的选择之后接收中间增量修改,所述查询构造器组件构造查询以在所述之前的查询步骤之后并且在所述一系列查询步骤中的最后一个查询步骤之前添加另一查询步骤。
[0219] 示例11:根据示例1-10中的任意一个所述的计算设备,被包括在可通过web浏览器访问的服务器计算设备中。
[0220] 示例12:一种由计算机处理器执行的方法,所述方法包括:在显示器上呈现表格数据,所述表格数据是基于之前作出的查询步骤从数据立方中检索的;接收后续查询步骤;基于所述之前作出的查询步骤和所述后续查询步骤来构造查询;基于所述查询从所述数据立方中检索经更新的表格数据;以及响应于检索到经更新的表格数据在所述显示器上呈现经更新的表格数据。
[0221] 示例13:根据示例12所述的方法,所述之前作出的查询步骤导致针对维度的第一属性计算度量,并且所述后续查询步骤导致针对所述维度的第二属性计算度量。
[0222] 示例14:根据示例13所述的方法,响应于接收到所述后续查询步骤,构造所述查询使得在所述维度的第二属性在所述查询中被指定之后计算针对所述维度的第二属性的度量。
[0223] 示例15:根据示例12-14中的任意一个所述的方法,还包括将一系列查询步骤呈现在显示器上,所述一系列步骤包括之前作出的查询步骤和后续查询步骤,所述一系列查询步骤中的每一个查询步骤是可选择的。
[0224] 示例16:根据示例15所述的方法,进一步包括:接收对一系列查询步骤中的一个查询步骤的选择;基于对一系列查询步骤中的一个查询步骤的选择来构造查询;以及呈现对应于直到被选择的查询步骤的查询的表格数据。
[0225] 示例17:根据示例12-16中的任意一个所述的方法,所述后续查询步骤是对折叠或展开至少一个维度的请求,所述方法包括基于所述对折叠或展开至少一个维度的请求来细化所述查询。
[0226] 示例18:根据示例12-17中的任意一个所述的方法,构造所述查询包括:将所述之前的查询步骤和所述后续查询步骤转换成多个关系运算符;以及基于预定义的模式来标准化所述多个关系运算法。
[0227] 示例19:根据权利要求12-18中的任意一个所述的方法,进一步包括:接收对于查询的多个增量修改;以及对于每一个增量修改:构造查询;以及基于相应的增量修改来检索表格数据。
[0228] 示例20:一种包括指令的计算机可读存储介质,所述指令当由处理器执行时使得所述处理器执行动作,所述动作包括:接收查询;响应于接收所述查询,从数据立方中检索表格数据;响应于从所述数据立方中检索到所述表格数据,将所述表格数据和一系列查询步骤呈现在显示器上,所述一系列查询步骤表示所述查询,所述表格数据包括针对所述数据立方中的维度的第一属性计算的度量;接收对于所述查询的增量修改,所述增量修改是针对所述数据立方中的维度的第二属性计算度量的请求;以及响应于接收到对于所述查询的增量修改,基于对于所述查询的增量修改来检索第二表格数据,所述第二表格数据包括针对所述维度的第二属性计算的度量。
[0229] 示例21:一种计算机实现的系统,包括:用于在显示器上呈现表格数据的装置,所述表格数据是基于之前作出的查询步骤从数据立方中检索的;用于接收后续查询步骤的装置;用于基于所述之前作出的查询步骤和所述后续查询步骤来构造查询的装置;用于基于所述查询从所述数据立方中检索经更新的表格数据的装置;以及用于响应于检索到经更新的表格数据在所述显示器上呈现经更新的表格数据的装置。
[0230] 现在参考图17,示出了可以根据本文公开的系统和方法使用的示例性计算设备1700的高级图示。例如,计算设备1700可被用于支持构造和细化用于针对数据立方执行的查询的系统。作为另一示例,计算设备1700可被用于支持呈现从立方中提取的数据的系统中。计算设备1700包括执行存储在存储器1702中的指令的至少一个处理器1704。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器1702可以通过系统总线1704访问存储器1706。除了存储可执行指令,存储器1704还可存储事实表、维度表、分层信息等。
[0231] 此外,计算设备1700还包括可由处理器1708通过系统总线1702访问的数据存储1706。数据存储1708可包括可执行指令、立方、立方的切片等。计算设备1700还包括输入接口1710,输入接口1710允许外部设备与计算设备1700通信。例如,输入接口1710可被用于从外部计算机设备、从用户等处接收指令。计算设备1700也可包括使计算设备1700和一个或多个外部设备相对接的输出接口1712。例如,计算设备1700可以通过输出接口1712显示文本、图像等。
[0232] 考虑了通过输入接口1700和输出接口1710与计算设备1712通信的外部设备可被包括在提供实质上任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘鼠标、遥控器等之类的(诸)输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然语言界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与计算设备1700交互。相反,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和语音、视觉、触摸、手势、以及机器智能等。
[0233] 此外,尽管被示为单个系统,但可以理解,计算设备1700可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备1700执行的任务。
[0234] 本文中描述的各功能可在硬件软件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是能被计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来承载或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟(BD),其中盘通常以磁的方式再现数据,而碟通常用激光以光学方式再现数据。另外,所传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,该通信介质包括促成将计算机程序从一地转移到另一地的任何介质。连接例如可以是通信介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外线、无线电、以及微波之类的无线技术来从web网站、服务器、或其它远程源传输,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外线、无线电、以及微波之类的无线技术被包括在通信介质的定义中。上述的组合应当也被包括在计算机可读介质的范围内。
[0235] 替换地或另选地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。
[0236] 以上所描述的包括一个或多个实施例的示例。当然,出于描绘前述各方面的目的而描述上述设备或方法的每个可以想到修改和改变是不可能的,但本领域内的普通技术人员可以认识到,各方面的许多另外的组合和置换都是可能的。因此,所描述的各方面旨在包括所有这些属于所附权利要求书的精神和范围内的改变、修改和变型。此外,就在详细描述或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈