CN106933893B - 多维度数据的查询方法及装置 - Google Patents
多维度数据的查询方法及装置 Download PDFInfo
- Publication number
- CN106933893B CN106933893B CN201511031235.8A CN201511031235A CN106933893B CN 106933893 B CN106933893 B CN 106933893B CN 201511031235 A CN201511031235 A CN 201511031235A CN 106933893 B CN106933893 B CN 106933893B
- Authority
- CN
- China
- Prior art keywords
- query
- data
- minimum
- fact data
- fact
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种多维度数据的查询方法及装置。其中,该方法包括:获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询。通过本申请,解决了相关技术中多维度数据查询的执行效率较低的技术问题。
Description
技术领域
本申请涉及数据库领域,具体而言,涉及一种多维度数据的查询方法及装置。
背景技术
在联机分析处理(On-LineAnalytical Processing,简称OLAP)的环境下,目前常用的查询引擎有Hive、Impala等结构化的带元数据的数据库。在这些数据库中,通常,将各类事件的数据记录在各个事实数据表中。例如,在“教学管理系统”中,教学管理数据库包含以下几个事实数据表:“教师”表、“课程”表、“成绩”表、“学生”表、“班级”表和“授课”表等,通过以上事实数据表可管理教学过程中学生、教师、课程等信息。再例如,在对互联网的会话进行监测时,一般有会话表(Session)、页面浏览表(PageView)、站内搜索表(SiteSearch)、订单表(Ecommerce)和自定义事件表(Event)等多种代表各种业务场景的事实数据表,这些数据表可通过客户的会话标识(SessionID)进行关联,以形成整个会话的所有实体。当用户需要从多个角度、跨越多个事实数据表将数据关联以查看指标数据和维度数据时,在相关技术中,通常根据用户查询需求专门编写相应代码,进而实现在数据库中查询相关的指标数据和维度数据。由于相关技术中缺乏统一将用户查询需求迅速转化为查询语言的技术方案,导致多维度数据查询的执行效率较低。
针对相关技术中多维度数据查询的执行效率较低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种多维度数据的查询方法及装置,以至少解决相关技术中多维度数据查询的执行效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种多维度数据的查询方法,包括:获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询。
进一步地,至少一个查询维度包括第一查询维度,根据查询条件从多个事实数据表中获取最少表集合包括:判断第一查询维度是否仅包含于一个事实数据表;如果判断出第一查询维度仅包含于一个事实数据表,则将包含第一查询维度的事实数据表添加至最少表集合;以及如果判断出第一查询维度包含于至少两个事实数据表,则获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合。
进一步地,如果判断出第一查询维度仅包含于一个事实数据表,将包含第一查询维度的事实数据表添加至最少表集合包括:检测包含第一查询维度的事实数据表是否存在于最少表集合中;以及如果检测出包含第一查询维度的事实数据表不存在于最少表集合,则将包含第一查询维度的事实数据表添加至最少表集合。
进一步地,如果判断出第一查询维度包含于至少两个事实数据表,获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合包括:判断至少两个事实数据表中是否存在包含于最少表集合的事实数据表;如果判断出至少两个事实数据表中不存在包含于最少表集合的事实数据表,则获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合。
进一步地,如果判断出至少两个事实数据表中存在包含于最少表集合的事实数据表,该方法还包括:对其它查询维度执行根据查询条件从多个事实数据表中获取最少表集合的操作,其中,其它查询维度为至少一个查询维度中除第一查询维度之外的查询维度。
进一步地,在判断第一查询维度是否仅包含于一个事实数据表之前,该方法还包括:将指标表添加至最少表集合,其中,指标表包括查询指标。
进一步地,在根据查询条件从多个事实数据表中获取最少表集合之后,在根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构之前,该方法还包括:获取最少表集合中各事实数据表对应的连接键值;以及根据连接键值将最少表集合中的各个事实数据表进行连接。
进一步地,根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构包括:确定最少表集合中各个事实数据表之间连接的顺序关系;按照预设条件调整各个事实数据表之间连接的顺序关系;以及根据调整后的各个事实数据表之间连接的顺序关系生成用于反映数据流过程的数据结构。
根据本申请实施例的另一方面,还提供了一种多维度数据的查询装置,包括:第一获取单元,用于获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;第二获取单元,用于根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;生成单元,用于根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及执行单元,用于根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询。
进一步地,至少一个查询维度包括第一查询维度,第二获取单元包括:判断模块,用于判断第一查询维度是否仅包含于一个事实数据表;添加模块,用于在判断出第一查询维度仅包含于一个事实数据表时,将包含第一查询维度的事实数据表添加至最少表集合;以及获取模块,用于在判断出第一查询维度包含于至少两个事实数据表时,获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合。
在本申请实施例中,通过获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询,解决了相关技术中多维度数据查询的执行效率较低的技术问题,进而根据最少表集合建立用于反映数据流过程的数据结构,并根据该数据结构生成相应的数据查询语言,从而可快速实现对多维度数据的查询。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的多维度数据的查询方法的流程图;以及
图2是根据本申请实施例的多维度数据的查询装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面,首先对本申请实施例中涉及的相关技术术语进行解释,以方便对本申请的理解。
指标(查询指标):是指可以进行聚合运算的值,例如,综合浏览量是一个指标,使用求和进行聚合;平均停留时间也是一个指标,使用平均进行聚合,其中,聚合运算包括求和、平均、计数等。
维度(查询维度):是指查看指标的角度,例如,浏览器是一个维度,可以从浏览器这个维度查询页面浏览(Page View,简称为PV),从而可以知道用户使用哪些浏览器查看页面,以及使用这些浏览器查看页面的次数;操作系统为另一个维度,也可以从操作系统这个维度查询PV,从而可以知道用户使用哪些操作系统查看页面,以及使用这些操作系统查看页面的次数。
多维剖析(多维度数据查询):是指可以从多个维度剖析多个指标的值,例如,从操作系统维度查看会话量值后,选择其中几个成员后,继续从浏览器维度查看会话值,即从两个维度剖析会话值。依次类推,可以从多个维度进行自由的剖析。其中,成员是指维度具体对应的对象,例如,浏览器是一个维度,而IE浏览器、Chrome浏览器即为该维度的一个成员。
维度表:维度表可以看作是用户来分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。例如,包含产品信息的维度表通常包含将产品分为食品、饮料、非消费品等若干类的层次结构,这些产品中的每一类进一步多次细分,直到各产品达到最低级别。在维度表中,每个表都包含独立于其他维度表的事实特性,例如,客户维度表包含有关客户的数据。维度表中的列字段可以将信息分为不同层次的结构级。
事实数据表:数据仓库架构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(如银行事务或产品销售)内特定事件的数据。一般来说,一个事实数据表都要和一个或多个维度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。
关联键:是关系型数据库的重要组成部分,是一个表中的一个或者几个属性,用于标识该表的每一行或者与另一个表产生联系。
根据本申请实施例,提供了一种多维度数据的查询方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的多维度数据的查询方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度。
在该步骤中,查询条件(查询维度链和查询指标)可以通过读取用户输入的查询指令获取,用户查询指令为用户从多个角度、跨越多个事实数据表将数据关联以查看指标数据和维度数据的指令。其中,查询维度链用于对多个事实数据表进行过滤,其中,查询维度链包括至少一个查询维度。例如,查询维度链包括以下各个维度节点:操作系统版本(window7)>>浏览器(chrome)>>是否新访问者(是)>>页面查看量(1)>>访问时长;查询指标为访问量。
可选地,在获取查询条件之前,可配置查询维度和查询指标的元数据信息,确定查询维度和查询指标的相关属性。
例如,可通过以下方式进行查询维度的配置:
"Dimensions":[
{
"name":"SourceType",//名称,类型
"column":"sourcetype",//列,类型
"Tables":["session","pageview","ecommerce","sitesearch","mouseclick","event"]
},//表:会话表,页面游览表,订单表,网站搜索表,点击表,自定义事件表
{
"name":"ChannelName",//名称,来源渠道名称
"column":"channelname",//列
"Tables":["session","pageview","ecommerce","sitesearch","mouseclick","event"]
}//表:会话表,页面游览表,订单表,网站搜索表,点击表,自定义事件表
]
可以通过以下方式进行查询指标的配置:
"Measures":[
{
"Name":"Visits",//名称,访问量
"Table":"session",//表,会话表
"Column":null,
"AggregateType":"COUNT"
},
{
"Name":"BouncesVisits",//名称,访问量
"Table":"session",//表,会话表
"Column":"isbouce",//列,isbouce列
"AggregateType":"SUM"
}
]
步骤S104,根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合。
由于一个维度可能在多个表上出现,且表示同样的过滤意义,因此在进行多维度数据查询时,判断选取哪些事实数据表参与计算显得尤为重要。其中,选取的参与计算的事实数据表的数量越少,查询效率就越高,内存开销也越少,更有利于优化整个系统的查询性能。
例如,多个事实数据表为多个销售数据表,多个销售数据表包括北方地区销售数据表、南方地区销售数据表、以及各个省份的销售数据表。其中,在查询维度为河北省(比如指标为年平均销售量)时,在北方地区销售数据表和河北省销售数据表中均存在该维度。因此,在选择参与计算(查询)的事实数据表时,可以只选择上述两个事实数据表之一,以减少不必要的计算开销,提高查询效率。
该步骤中的最少表集合,即为数据库中存储的多个事实数据表中需要参与计算的事实数据表的集合。其中,最少表集合中的事实数据表是至少包含一个查询维度和一个查询指标。最少表集合中的每个事实数据表可以包括查询维度链上的多个查询维度。
通过上述步骤,获取到与查询条件相关联的最少表集合,即获取到后续查询数据的元数据信息。
为了提高获取最少表集合的效率,可选地,至少一个查询维度包括第一查询维度,根据查询条件从多个事实数据表中获取最少表集合包括:判断第一查询维度是否仅包含于一个事实数据表;如果判断出第一查询维度仅包含于一个事实数据表,则将包含第一查询维度的事实数据表添加至最少表集合;以及如果判断出第一查询维度包含于至少两个事实数据表,则获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合。
为了保证最少表集合中保存需要参与计算的数量尽可能少的事实数据表,以提高后续的查询效率,可选地,如果判断出第一查询维度仅包含于一个事实数据表,将包含第一查询维度的事实数据表添加至最少表集合包括:检测包含第一查询维度的事实数据表是否存在于最少表集合中;以及如果检测出包含第一查询维度的事实数据表不存在于最少表集合,则将包含第一查询维度的事实数据表添加至最少表集合。
为了提高后续多维度数据的查询效率,如果检测出包含第一查询维度的事实数据表存在于最少表集合,则可以不对最少表集合执行事实数据表的添加处理。
为了保证最少表集合中保存需要参与计算的数量尽可能少、并且数据量尽可能小的事实数据表,以提高后续的查询效率,可选地,如果判断出第一查询维度包含于至少两个事实数据表,获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合包括:判断至少两个事实数据表中是否存在包含于最少表集合的事实数据表;如果判断出至少两个事实数据表中不存在包含于最少表集合的事实数据表,则获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合。
为了提高后续多维度数据的查询效率,如果判断出至少两个事实数据表中存在包含于最少表集合的事实数据表,则可以不对最少表集合执行事实数据表的添加处理。然后,可对查询维度链中的其它查询维度执行“根据查询条件从多个事实数据表中获取最少表集合”的操作,其中,其它查询维度为查询维度链中的中除第一查询维度之外的查询维度。对其它查询维度依次执行与第一查询维度相似的操作步骤,并判断维度链中的维度是否均执行了相应操作步骤。当判断出对维度链中所有的维度均执行了相应的操作步骤,则此时得到的事实数据表的集合即为最终的最少表集合。
可选地,在判断第一查询维度是否仅包含于一个事实数据表之前,该方法还包括:将指标表添加至最少表集合,其中,指标表包括查询指标。
步骤S106,根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构。
在该步骤中,用于反映数据流过程的数据结构可以理解为一种解析树的数据结构。该解析树是由查询条件和连接关系生成并用于反应数据流的过程的数据结构。该结构记录了生成结构化查询语言所需要的所有条件和样式,根据查询需求的维度链,剖析维度和指标(即上述的查询条件),计算出所需要的表结点以及过滤信息,并将所有表结点通过相关的关联关系连接起来。其中,解析树中的每一个节点,相当于定义了一个临时表数据结构。整个解析树反映了如何从原始的数据表中通过相应的过滤、选取、变化,逐步得到最终结果的过程,解析树中记录了所有的数据表结点。
可选地,根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构包括:确定最少表集合中各个事实数据表之间连接的顺序关系;按照预设条件调整各个事实数据表之间连接的顺序关系;以及根据调整后的各个事实数据表之间连接的顺序关系生成用于反映数据流过程的数据结构。
具体地,针对查询维度链计算出的所有表节点(最少表集合中的各个事实数据表),需要进行表连接,而表连接顺序的设定对整个查询系统的性能的影响较大。在本申请中,不对各个事实数据表之间连接的顺序关系进行具体的限定。由于各引擎的查询的实现方式不同,因此可以采用不同的表连接顺序。例如,可以采用大表连小表的策略(数据量大的表连接数据量小的表),该方法的性能通常优于小表连大表的性能。
可选地,在根据查询条件从多个事实数据表中获取最少表集合之后,在根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构之前,该方法还包括:获取最少表集合中各事实数据表对应的连接键值;以及根据连接键值将最少表集合中的各个事实数据表进行连接。
具体地,事实数据表之间通常采用关联键进行关联。采用关联键将最少表集合中的各个事实数据表进行关联。例如,关联键为会话标识(SessionID)。最少表集合中各事实数据表对应的连接键值为相应的ID等共有维度字段,基于ID等共有维度字段将最少表集合中的各个事实数据表进行连接。
对于数据仓库,各事实数据表都可能有相应的关系,并且通过相应的ID等共有维度字段会进行关联。优选地,可以将上述的多个事实数据表处理为展平的事实数据表。例如,会话等字段会派生到其子实体,如页面浏览,电商订单等事实数据表上,这样在仅剖析会话类的维度时,如浏览器等,就不需要进行会话表的关联,从而达到性能提升的目的。
步骤S108,根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询。
上述的数据查询语言可以为结构化查询语言(Structured Query Language,简称SQL)。
例如,查询维度链为:IsBounce=0AND PageDuration>10AND SessionPageVie ws>10;剖析维度为:OSBrief;查询指标为:Visits,AvgSessionDuration,SessionpageViews。获取到与查询维度链、剖析维度和查询指标相关联的最少表集合,根据最少表集合中各个事实数据表的连接关系生成用于反映数据流过程的数据结构(解析树),根据该数据结构可生成相应的数据查询语言,如下所示:
with s as(select serversessionid,osbrief,pvcount,sessionduration fromsession where isbounce=0and PVCount>10)
pv as(select serversessionid from pageview group by serversessionidhaving max(pageduration)>10)
select osbrief,sum(pvcount)as sessionpageviews,count(*)as visits,avg(sessionduration)as avgsessionduration
from s inner join pv on s.serversessionid=pv.serversessionid
group by osbrief
order by count(*)desc
limit 10
通过上述生成的数据查询语言执行可实现相应的多维度数据查询。
又例如,查询维度链为:IsBounce=0AND PageDuration>10AND SessionPageView>10;剖析维度:OSBrief;查询指标为:Visits,AvgSessionDuratuon,SessionpageViews。获取到与查询维度链、剖析维度和查询指标相关联的最少表集合,根据最少表集合中各个事实数据表的连接关系生成用于反映数据流过程的数据结构(解析树),根据该数据结构可生成相应的数据查询语言,如下所示:
PV_Jion_Session(SelectColumns:osbrief,Measures GroupBy:OSBriefOrderBy:Visits descpaging:1,10)
通过上述生成的数据查询语言可实现相应的多维度数据查询。
本申请通过查询条件获取参与多维度数据查询的最少表集合,避免了大量事实数据表参与计算造成的查询开销大、查询效率低下的问题,进而通过对涵盖了查询维度链上的所有查询维度、并且数量最少的事实数据表进行连接,很大程度上减小了查询的开销,可以实现对多维度数据的快速查询。
根据该实施例,通过获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询,解决了相关技术中多维度数据查询的执行效率较低的技术问题,进而根据最少表集合建立用于反映数据流过程的数据结构,并根据该数据结构生成相应的数据查询语言,从而可快速实现对多维度数据的查询。
根据本申请实施例,提供了一种多维度数据的查询装置的装置实施例,需要说明的是。根据本发明实施例的多维度数据的查询装置可以用于执行本发明实施例的多维度数据的查询方法,根据本发明实施例的多维度数据的查询方法也可以通过本发明实施例的多维度数据的查询装置来执行。
图2是根据本申请实施例的多维度数据的查询装置的示意图。如图2所示,该装置包括:第一获取单元20、第二获取单元22、生成单元24和执行单元26。
第一获取单元20,用于获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度。
第二获取单元22,用于根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合。
生成单元24,用于根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构。
执行单元26,用于根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询。
根据该实施例,通过第一获取单元20获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;第二获取单元22根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;生成单元24根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及执行单元26根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询,解决了相关技术中多维度数据查询的执行效率较低的技术问题,进而根据最少表集合建立用于反映数据流过程的数据结构,并根据该数据结构生成相应的数据查询语言,从而可快速实现对多维度数据的查询。
可选地,至少一个查询维度包括第一查询维度,第二获取单元包括:判断模块,用于判断第一查询维度是否仅包含于一个事实数据表;添加模块,用于在判断出第一查询维度仅包含于一个事实数据表时,将包含第一查询维度的事实数据表添加至最少表集合;以及获取模块,用于在判断出第一查询维度包含于至少两个事实数据表时,获取至少两个事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至最少表集合。
所述多维度数据的查询装置包括处理器和存储器,上述第一获取单元20、第二获取单元22、生成单元24和执行单元26等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取查询条件,其中,查询条件包括查询维度链和查询指标,查询维度链包括至少一个查询维度;根据查询条件从多个事实数据表中获取最少表集合,其中,最少表集合为多个事实数据表中至少包含一个查询维度和一个查询指标的、数量最少的事实数据表的集合;根据最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及根据数据结构生成相应的数据查询语言并通过数据查询语言执行数据查询。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种多维度数据的查询方法,其特征在于,包括:
获取查询条件,其中,所述查询条件包括查询维度链和查询指标,所述查询维度链包括至少一个查询维度;
根据所述查询条件从多个事实数据表中获取最少表集合,其中,所述最少表集合为所述多个事实数据表中至少包含一个所述查询维度和一个所述查询指标的、数量最少的事实数据表的集合;
根据所述最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及
根据所述数据结构生成相应的数据查询语言并通过所述数据查询语言执行数据查询;
其中,所述查询指标是指能进行聚合运算的值,所述查询维度是指查询指标所对应的查看角度。
2.根据权利要求1所述的方法,其特征在于,所述至少一个查询维度包括第一查询维度,根据所述查询条件从多个事实数据表中获取最少表集合包括:
判断所述第一查询维度是否仅包含于一个所述事实数据表;
如果判断出所述第一查询维度仅包含于一个所述事实数据表,则将包含所述第一查询维度的事实数据表添加至所述最少表集合;以及
如果判断出所述第一查询维度包含于至少两个所述事实数据表,则获取所述至少两个所述事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至所述最少表集合。
3.根据权利要求2所述的方法,其特征在于,如果判断出所述第一查询维度仅包含于一个所述事实数据表,将包含所述第一查询维度的事实数据表添加至所述最少表集合包括:
检测所述包含所述第一查询维度的事实数据表是否存在于所述最少表集合中;以及
如果检测出所述包含所述第一查询维度的事实数据表不存在于所述最少表集合,则将包含所述第一查询维度的事实数据表添加至所述最少表集合。
4.根据权利要求2所述的方法,其特征在于,如果判断出所述第一查询维度包含于至少两个所述事实数据表,获取所述至少两个所述事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至所述最少表集合包括:
判断所述至少两个所述事实数据表中是否存在包含于所述最少表集合的事实数据表;
如果判断出所述至少两个所述事实数据表中不存在包含于所述最少表集合的事实数据表,则获取所述至少两个所述事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至所述最少表集合。
5.根据权利要求4所述的方法,其特征在于,如果判断出所述至少两个所述事实数据表中存在包含于所述最少表集合的事实数据表,所述方法还包括:
对其它查询维度执行所述根据所述查询条件从多个事实数据表中获取最少表集合的操作,其中,所述其它查询维度为所述至少一个查询维度中除所述第一查询维度之外的查询维度。
6.根据权利要求2至5中任一项所述的方法,其特征在于,在判断所述第一查询维度是否仅包含于一个所述事实数据表之前,所述方法还包括:
将指标表添加至所述最少表集合,其中,所述指标表包括所述查询指标。
7.根据权利要求1所述的方法,其特征在于,在根据所述查询条件从多个事实数据表中获取最少表集合之后,在根据所述最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构之前,所述方法还包括:
获取所述最少表集合中各事实数据表对应的连接键值;以及
根据所述连接键值将所述最少表集合中的各个事实数据表进行连接。
8.根据权利要求7所述的方法,其特征在于,根据所述最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构包括:
确定所述最少表集合中各个事实数据表之间连接的顺序关系;
按照预设条件调整各个事实数据表之间连接的顺序关系;以及
根据调整后的各个事实数据表之间连接的顺序关系生成用于反映数据流过程的数据结构。
9.一种多维度数据的查询装置,其特征在于,包括:
第一获取单元,用于获取查询条件,其中,所述查询条件包括查询维度链和查询指标,所述查询维度链包括至少一个查询维度;
第二获取单元,用于根据所述查询条件从多个事实数据表中获取最少表集合,其中,所述最少表集合为所述多个事实数据表中至少包含一个所述查询维度和一个所述查询指标的、数量最少的事实数据表的集合;
生成单元,用于根据所述最少表集合中的事实数据表之间的连接关系生成用于反映数据流过程的数据结构;以及
执行单元,用于根据所述数据结构生成相应的数据查询语言并通过所述数据查询语言执行数据查询;
其中,所述查询指标是指能进行聚合运算的值,所述查询维度是指查询指标所对应的查看角度。
10.根据权利要求9所述的装置,其特征在于,所述至少一个查询维度包括第一查询维度,所述第二获取单元包括:
判断模块,用于判断所述第一查询维度是否仅包含于一个所述事实数据表;
添加模块,用于在判断出所述第一查询维度仅包含于一个所述事实数据表时,将包含所述第一查询维度的事实数据表添加至所述最少表集合;以及
获取模块,用于在判断出所述第一查询维度包含于至少两个所述事实数据表时,获取所述至少两个所述事实数据表中数据量最小的事实数据表,并将该数据量最小的事实数据表添加至所述最少表集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031235.8A CN106933893B (zh) | 2015-12-31 | 2015-12-31 | 多维度数据的查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031235.8A CN106933893B (zh) | 2015-12-31 | 2015-12-31 | 多维度数据的查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933893A CN106933893A (zh) | 2017-07-07 |
CN106933893B true CN106933893B (zh) | 2019-12-10 |
Family
ID=59443896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511031235.8A Active CN106933893B (zh) | 2015-12-31 | 2015-12-31 | 多维度数据的查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933893B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933902B (zh) * | 2015-12-31 | 2020-02-07 | 北京国双科技有限公司 | 数据多维度自由剖析的查询方法及装置 |
CN110019357B (zh) * | 2017-09-29 | 2021-06-29 | 北京国双科技有限公司 | 数据库查询脚本生成方法及装置 |
CN108108498A (zh) * | 2018-02-01 | 2018-06-01 | 广东聚晨知识产权代理有限公司 | 一种基于互联网的大数据查询系统 |
CN109582697A (zh) * | 2018-12-24 | 2019-04-05 | 上海银赛计算机科技有限公司 | 多表动态关联查询方法、装置、服务器及存储介质 |
CN110619000A (zh) * | 2019-09-25 | 2019-12-27 | 网易(杭州)网络有限公司 | 时序数据的查询方法、装置、存储介质及电子设备 |
CN111125264B (zh) * | 2019-12-12 | 2021-05-28 | 跬云(上海)信息科技有限公司 | 基于扩展olap模型的超大集合分析方法及装置 |
CN112199390B (zh) * | 2020-09-30 | 2023-05-30 | 上海达梦数据库有限公司 | 一种数据库中数据查询方法、装置、设备及存储介质 |
CN113313435A (zh) * | 2021-07-28 | 2021-08-27 | 浙江口碑网络技术有限公司 | 交易履约数据统计方法、电子设备、介质及程序产品 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588358A (zh) * | 2004-08-26 | 2005-03-02 | 陈红 | 对mdx多维数据查询语句的处理方法和系统 |
CN101093493A (zh) * | 2006-06-23 | 2007-12-26 | 国际商业机器公司 | 数据库查询语言转换方法、转换装置、数据库查询系统 |
CN101145162A (zh) * | 2007-10-31 | 2008-03-19 | 金蝶软件(中国)有限公司 | 一种数据库动态查询的方法和系统 |
CN101350028A (zh) * | 2008-07-10 | 2009-01-21 | 西安中电商务信息技术有限公司 | 一种基于SQL结构化查询语言的XML数据XPath查询方法 |
CN101464862A (zh) * | 2007-12-21 | 2009-06-24 | 英业达股份有限公司 | 结构化查询语言生成系统及方法 |
CN101504660A (zh) * | 2009-03-06 | 2009-08-12 | 清华大学 | 一种纯扩展标记语言数据库的查询管理方法及其系统 |
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
CN101609473A (zh) * | 2009-07-30 | 2009-12-23 | 金蝶软件(中国)有限公司 | 一种重构报表查询的结构化查询语言的方法及装置 |
CN102576363A (zh) * | 2009-09-29 | 2012-07-11 | 渣普控股有限公司 | 扩展商业智能系统的形式和功能的基于内容的方法 |
CN102789488A (zh) * | 2012-06-29 | 2012-11-21 | 用友软件股份有限公司 | 数据查询处理系统和数据查询处理方法 |
CN103577590A (zh) * | 2013-11-12 | 2014-02-12 | 北京润乾信息系统技术有限公司 | 一种数据查询方法和系统 |
CN104657439A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 用于自然语言精准检索的结构化查询语句生成系统及方法 |
CN106933909A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | 多维度数据的查询方法及装置 |
-
2015
- 2015-12-31 CN CN201511031235.8A patent/CN106933893B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588358A (zh) * | 2004-08-26 | 2005-03-02 | 陈红 | 对mdx多维数据查询语句的处理方法和系统 |
CN101093493A (zh) * | 2006-06-23 | 2007-12-26 | 国际商业机器公司 | 数据库查询语言转换方法、转换装置、数据库查询系统 |
CN101145162A (zh) * | 2007-10-31 | 2008-03-19 | 金蝶软件(中国)有限公司 | 一种数据库动态查询的方法和系统 |
CN101464862A (zh) * | 2007-12-21 | 2009-06-24 | 英业达股份有限公司 | 结构化查询语言生成系统及方法 |
CN101350028A (zh) * | 2008-07-10 | 2009-01-21 | 西安中电商务信息技术有限公司 | 一种基于SQL结构化查询语言的XML数据XPath查询方法 |
CN101504660A (zh) * | 2009-03-06 | 2009-08-12 | 清华大学 | 一种纯扩展标记语言数据库的查询管理方法及其系统 |
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
CN101609473A (zh) * | 2009-07-30 | 2009-12-23 | 金蝶软件(中国)有限公司 | 一种重构报表查询的结构化查询语言的方法及装置 |
CN102576363A (zh) * | 2009-09-29 | 2012-07-11 | 渣普控股有限公司 | 扩展商业智能系统的形式和功能的基于内容的方法 |
CN102789488A (zh) * | 2012-06-29 | 2012-11-21 | 用友软件股份有限公司 | 数据查询处理系统和数据查询处理方法 |
CN103577590A (zh) * | 2013-11-12 | 2014-02-12 | 北京润乾信息系统技术有限公司 | 一种数据查询方法和系统 |
CN104657439A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 用于自然语言精准检索的结构化查询语句生成系统及方法 |
CN106933909A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | 多维度数据的查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106933893A (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933893B (zh) | 多维度数据的查询方法及装置 | |
US11977541B2 (en) | Systems and methods for rapid data analysis | |
CN106933906B (zh) | 数据多维度的查询方法及装置 | |
US9858326B2 (en) | Distributed data warehouse | |
US9582553B2 (en) | Systems and methods for analyzing existing data models | |
US7698314B2 (en) | Computer-implemented systems and methods for providing a counting measure | |
WO2008106668A1 (en) | User query mining for advertising matching | |
US9135296B2 (en) | System, method, and data structure for automatically generating database queries which are data model independent and cardinality independent | |
WO2011044286A2 (en) | Data analysis expressions | |
US20140074851A1 (en) | Dynamic data acquisition method and system | |
CN106933897B (zh) | 数据查询方法和装置 | |
CN106933919B (zh) | 数据表的连接方法及装置 | |
CN106933902B (zh) | 数据多维度自由剖析的查询方法及装置 | |
US10248620B2 (en) | Database table column annotation | |
CN106933909B (zh) | 多维度数据的查询方法及装置 | |
CN106933894A (zh) | 多维度数据的查询方法及装置 | |
Tsai et al. | Database optimization for novelty mining of business blogs | |
AU2012334801A1 (en) | A method of analysing data | |
US20180341709A1 (en) | Unstructured search query generation from a set of structured data terms | |
CN112634004A (zh) | 征信数据的血缘图谱分析方法与系统 | |
CN106708880B (zh) | 话题关联词的获取方法和装置 | |
CN111768213B (zh) | 一种用户标签权重评估方法 | |
TWI515676B (zh) | Recommended methods and systems for product information | |
US9646094B2 (en) | System and method for performing a multiple pass search | |
CN106933929B (zh) | 调整数据表连接的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |