买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】聚合表维度的选择方法和装置_北京国双科技有限公司_201611263719.X 

申请/专利权人:北京国双科技有限公司

申请日:2016-12-30

公开(公告)日:2020-07-31

公开(公告)号:CN108268515B

主分类号:G06F16/22(20190101)

分类号:G06F16/22(20190101)

优先权:

专利状态码:有效-授权

法律状态:2020.07.31#授权;2018.08.03#实质审查的生效;2018.07.10#公开

摘要:本发明公开了一种聚合表维度的选择方法和装置。其中,该方法包括:获取查询记录中的维度,得到第一维度集合,其中,查询记录中记载了所有历史查询所用到的维度;统计查询记录中每个维度的查询次数;建立第二维度集合,其中,第二维度集合初始为空集;根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中,直到第二维度集合中的维度数量达到目标数量,其中,在第二维度集合中的维度数量等于目标数量时,聚合表的膨胀率可控,在第二维度集合中的维度数量超过目标数量时,聚合表的膨胀率不可控,聚合表根据第二维度集合中的维度生成。本发明解决了聚合表维度选择不够精准的技术问题。

主权项:1.一种聚合表维度的选择方法,其特征在于,包括:获取查询记录中的维度,得到第一维度集合,其中,所述查询记录中记载了所有历史查询所用到的维度;统计所述查询记录中每个所述维度的查询次数;建立第二维度集合,其中,所述第二维度集合初始为空集;根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中,直到所述第二维度集合中的维度数量达到目标数量,其中,在所述第二维度集合中的维度数量等于所述目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在所述第二维度集合中的维度数量超过所述目标数量时,所述聚合表的行数占所述事实数据表行数的百分比大于第一阈值,所述聚合表根据所述第二维度集合中的维度生成。

全文数据:聚合表维度的选择方法和装置技术领域[0001]本发明涉及大数据领域,具体而言,涉及一种聚合表维度的选择方法和装置。背景技术[0002]聚合表是包含事实数据表的汇总信息的表,是事实数据表在一系列维度的基础之上聚合而生成的。使用聚合表是一个提高查询响应时间的比较流行的技术。该技术将结果事前运算,并将结果存储在表中,减少了运算的运行时间,以更快的速度将结果传递给用户。聚合表通常比事实数据表拥有更少的行,因此处理速度会更加快。现有技术中,聚合表的创建都是通过人为的经验判断来进行,维度选择不够精准。[0003]针对上述的问题,目前尚未提出有效的解决方案。发明内容[0004]本发明实施例提供了一种聚合表维度的选择方法和装置,以至少解决聚合表维度选择不够精准的技术问题。[0005]根据本发明实施例的一个方面,提供了一种聚合表维度的选择方法,包括:获取查询记录中的维度,得到第一维度集合,其中,所述查询记录中记载了所有历史查询所用到的维度;统计所述查询记录中每个所述维度的查询次数;建立第二维度集合,其中,所述第二维度集合初始为空集;根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中,直到所述第二维度集合中的维度数量达到目标数量,其中,在所述第二维度集合中的维度数量等于所述目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在所述第二维度集合中的维度数量超过所述目标数量时,所述聚合表的行数占所述事实数据表行数的百分比大于第一阈值,所述聚合表根据所述第二维度集合中的维度生成。[0006]进一步地,根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中包括:按照所述查询次数由高到低对所述维度进行排序;按照所述排序的结果所指示的顺序,从所述第一维度集合中选择一个查询次数最多的维度作为当前维度添加到所述第二维度集合中;在将所述当前维度添加到所述第二维度集合中之后,根据所述第二维度集合中的维度生成当前聚合表;根据所述当前聚合表的行数占所述事实数据表行数的百分比判断是否将所述当前维度保留在所述第二维度集合中,得到判断结果;在得到所述判断结果之后选择所述当前维度的下一个维度作为当前维度添加到所述第二维度集合中,直到所述第一维度集合中的所有维度全部被选择完毕。[0007]进一步地,根据所述当前聚合表的行数占所述事实数据表行数的百分比判断是否将所述当前维度保留在所述第二维度集合中,得到判断结果包括:判断所述当前聚合表的行数占所述事实数据表行数的百分比是否小于或者等于所述第一阈值;如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中;如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比大于所述第一阈值,将所述当前维度从所述第二维度集合中删除。[0008]进一步地,在判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中之后,所述方法还包括:获取所述第一维度集合中的维度与所述当前维度的关联系数,其中,所述关联系数用于指示所述第一维度集合中的维度与所述当前维度的关联程度;从所述第一维度集合中选择与所述当前维度的关联系数大于或者等于第二阈值的维度添加到所述第二维度集合中。[0009]进一步地,在根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中之前,所述方法还包括:获取所述第一维度集合中所有维度的唯一值;从所述第一维度集合中查找所述唯一值小于或者等于第三阈值的维度;将所述唯一值小于或者等于第三阈值的维度添加到所述第二维度集合中。[0010]根据本发明实施例的另一方面,还提供了一种聚合表维度的选择装置,包括:第一获取单元,用于获取查询记录中的维度,得到第一维度集合,其中,所述查询记录中记载了所有历史查询所用到的维度;统计单元,用于统计所述查询记录中每个所述维度的查询次数;建立单元,用于建立第二维度集合,其中,所述第二维度集合初始为空集;第一选择单元,用于根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中,直到所述第二维度集合中的维度数量达到目标数量,其中,在所述第二维度集合中的维度数量等于所述目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在所述第二维度集合中的维度数量超过所述目标数量时,所述聚合表的行数占所述事实数据表行数的百分比大于第一阈值,所述聚合表根据所述第二维度集合中的维度生成。[0011]进一步地,所述选择单元包括:排序模块,用于按照所述查询次数由高到低对所述维度进行排序;第一选择模块,用于按照所述排序的结果所指示的顺序,从所述第一维度集合中选择一个查询次数最多的维度作为当前维度添加到所述第二维度集合中;生成模块,用于在将所述当前维度添加到所述第二维度集合中之后,根据所述第二维度集合中的维度生成当前聚合表;判断模块,用于根据所述当前聚合表的行数占所述事实数据表行数的百分比判断是否将所述当前维度保留在所述第二维度集合中,得到判断结果;第二选择模块,在得到所述判断结果之后选择所述当前维度的下一个维度作为当前维度添加到所述第二维度集合中,直到所述第一维度集合中的所有维度全部被选择完毕。[0012]进一步地,所述判断模块包括:第一判断子模块,用于判断所述当前聚合表的行数占所述事实数据表行数的百分比是否小于或者等于所述第一阈值;保留子模块,用于如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中;删除子模块,用于如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比大于所述第一阈值,将所述当前维度从所述第二维度集合中删除。[0013]进一步地,所述判断模块还包括:获取子模块,用于在判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中之后,获取所述第一维度集合中的维度与所述当前维度的关联系数,其中,所述关联系数用于指示所述第一维度集合中的维度与所述当前维度的关联程度;选择子模块,用于从所述第一维度集合中选择与所述当前维度的关联系数大于或者等于第二阈值的维度添加到所述第二维度集合中。[0014]进一步地,所述装置还包括:第二获取单元,用于在根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中之前,获取所述第一维度集合中所有维度的唯一值;查找单元,用于从所述第一维度集合中查找所述唯一值小于或者等于第三阈值的维度;第二选择单元,用于选择所述唯一值小于或者等于第三阈值的维度添加到所述第二维度集合中。[0015]在本发明实施例中,采用获取查询记录中的维度,得到第一维度集合,其中,查询记录中记载了所有历史查询所用到的维度;统计查询记录中每个维度的查询次数;建立第二维度集合,其中,第二维度集合初始为空集,根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中,在第二维度集合中的维度数量等于目标数量时,聚合表的膨胀率可控,其中,在第二维度集合中的维度数量超过目标数量时,聚合表的膨胀率不可控的方式,通过保证生成的聚合表膨胀率可控的情况下,尽量多地选择查询次数较多的维度,达到了根据选择的维度生成的聚合表既能满足查询加速的又能降低生成聚合表的开销的目的,从而实现了精准选择用于生成聚合表的维度的技术效果,进而解决了聚合表维度选择不够精准的技术问题。附图说明[0016]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:[0017]图1是根据本发明实施例的一种可选的聚合表维度的选择方法的示意图;[0018]图2是根据本发明实施例的一种可选的聚合表维度的选择装置的示意图。具体实施方式[0019]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。[0020]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。[0021]根据本发明实施例,提供了一种聚合表维度的选择方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。[0022]图1是根据本发明实施例的聚合表维度的选择方法,如图1所示,该方法包括如下步骤:[0023]步骤Sl〇2,获取查询记录中的维度,得到第一维度集合,其中,查询记录中记载了所有历史查询所用到的维度。[0024]查询记录中记载了所有历史查询所用到的维度,如:在查询月销售额时,用到的维度是“月”,在查询地区人口规模时,用到的维度是“地区”,在查询网页日访问量时,用到的维度是“网页”和“日”组成的组合维度。获取查询记录中所有查询用到的维度,将所有维度组成一个维度集合,即第一维度集合。[0025]步骤S104,统计查询记录中每个维度的查询次数。[0026]对查询记录中所有查询记录所用到的维度进行统计,得到维度的查询次数,维度的查询次数越多,表明对该维度进行查询的可能性越高,则根据该维度生成聚合表对查询的优化效果越明显。[0027]步骤S106,建立第二维度集合,其中,第二维度集合初始为空集。[0028]建立第二维度集合,用于添加选择的维度,在初始未选择聚合表维度时,第二维度集合为空集。[0029]步骤S108,根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中,直到第二维度集合中的维度数量达到目标数量,其中,在第二维度集合中的维度数量等于目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在第二维度集合中的维度数量超过目标数量时,聚合表的行数占事实数据表行数的百分比大于第一阈值,聚合表根据第二维度集合中的维度生成。[0030]根据上述统计得到的各维度的查询次数,从第一维度集合中选择出目标数量的维度,将其添加到第二维度集合中,添加到第二维度集合中的目标数量的维度满足如下条件:根据该目标数量的维度所生成的聚合表的行数占事实数据表的行数的百分比小于或者等于第一阈值;如果第二维度集合中的维度的数量大于该目标数量,则根据第二维度集合中的维度所生成的聚合表,其行数占事实数据表的行数的百分比大于第一阈值,其中,聚合表的行数占事实数据表的行数的百分比小于或者等于第一阈值表明该聚合表的膨胀率可控,从第一维度集合中选择出目标数量的维度添加到第二维度集合中,使得根据第二维度集合中的维度生成的聚合表膨胀率可控,且第二维度集合中的维度的数量最多。[0031]在本发明实施例中,采用获取查询记录中的维度,得到第一维度集合,其中,查询记录中记载了所有历史查询所用到的维度;统计查询记录中每个维度的查询次数;建立第二维度集合,其中,第二维度集合初始为空集,根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中,在第二维度集合中的维度数量等于目标数量时,聚合表的膨胀率可控,其中,在第二维度集合中的维度数量超过目标数量时,聚合表的膨胀率不可控的方式,通过保证生成的聚合表膨胀率可控的情况下,尽量多地选择查询次数较多的维度,达到了根据选择的维度生成的聚合表既能满足查询加速的又能降低生成聚合表的开销的目的,从而实现了精准选择用于生成聚合表的维度的技术效果,进而解决了聚合表维度选择不够精准的技术问题。[0032]可选地,根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中包括:按照查询次数由高到低对维度进行排序;按照排序的结果所指示的顺序,从第一维度集合中选择一个查询次数最多的维度作为当前维度添加到第二维度集合中;在将当前维度添加到第二维度集合中之后,根据第二维度集合中的维度生成当前聚合表;根据当前聚合表的行数占事实数据表行数的百分比判断是否将当前维度保留在第二维度集合中,得到判断结果;在得到判断结果之后选择当前维度的下一个维度作为当前维度添加到第二维度集合中,直到第一维度集合中的所有维度全部被选择完毕。[0033]在选择目标维度添加到第二维度集合中时,优先选择查询记录中查询次数较多的维度,按照查询次数由高到低的排列次序对第一维度集合中的维度进行排序,按照排序结果,逐一选择目标维度添加到第二维度集合中,首先选择查询次数最多的维度作为当前维度添加到第二维度集合中,为了确保根据第二维度集合中的维度所生成的聚合表的膨胀率可控,在添加完当前维度之后,根据第二维度集合中的维度,生成一个当前聚合表,并根据当前聚合表的行数占事实数据表行数的百分比,判断是否将当前维度保留在第二维度集合中,在得到判断结果之后,选择下一个维度作为当前维度,添加到第二维度集合中,再次生成当前聚合表,并判断是否将当前维度保留在第二维度集合中,如此逐一选择维度添加到第二集合中,直到第一维度集合中所有的维度全部被选择完毕。[0034]可选地,根据当前聚合表的行数占事实数据表行数的百分比判断是否将当前维度保留在第二维度集合中,得到判断结果包括:判断当前聚合表的行数占事实数据表行数的百分比是否小于或者等于第一阈值;如果判断出当前聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,将当前维度保留在第二维度集合中;如果判断出当前聚合表的行数占事实数据表行数的百分比大于第一阈值,将当前维度从第二维度集合中删除。[0035]为了确保将维度添加到第二维度集合中之后,根据第二维度集合中的维度生成的聚合表的膨胀率可控,在每一次将维度添加到第二维度集合中之后,根据第二维度集合中的维度生成一个当前聚合表,并判断是否将当前添加到第二聚合表中的维度保留在第二维度集合中。具体地,判断生成的当前聚合表的行数占事实数据表的行数的百分比是否小于或者等于第一阈值,如果该百分比小于或者等于第一阈值,则当前聚合表的膨胀率可控,将当前添加到第二维度集合中的维度保留在第二维度集合中,如果该百分比大于第一阈值,则当前聚合表膨胀率不可控,将当前添加到第二维度集合中的维度删除。[0036]可选地,在判断出当前聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,将当前维度保留在第二维度集合中之后,方法还包括:获取第一维度集合中的维度与当前维度的关联系数,其中,关联系数用于指示第一维度集合中的维度与当前维度的关联程度;从第一维度集合中选择与当前维度的关联系数大于或者等于第二阈值的维度添加到第二维度集合中。[003?]在本发明实施例中,为了提高维度选择的效率,优先选择与当前添加到第二维度集合中的维度关联程度较高的维度,将其添加到第二维度集合中。具体地,在将当前维度添加到第二维度集合中,并判断出将当前维度保留在第二维度集合中之后,获取第一维度集合中的维度与当前维度的关联系数,其中,关联系数越大,表明该维度与当前维度关联程度越高,选择关联系数大于或者等于第二阈值的维度,将其添加到第二维度集合中。添加完毕之后,再按照查询次数的排列次序,选择下一个维度添加到第二维度集合中,并依照前述方法判断是否将该维度保留在第二维度集合中,直到第一维度集合中的所有维度全部被选择完毕。[0038]需要说明的是,第一维度集合中已经被选择并添加到第二维度集合中的维度,无需进行重复选择,在按次序选择维度时,仅选择未被选择添加过的维度即可。[0039]可选地,在根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中之前,方法还包括:获取第一维度集合中所有维度的唯一值;从第一维度集合中查找唯一值小于或者等于第三阈值的维度;将唯一值小于或者等于第三阈值的维度添加到第二维度集合中。[0040]在本发明实施例中,还可采用另外一种维度选择方式,即在按查询次数从第一维度集合中选择目标维度添加到第二维度集合中之前,先将第一维度集合中较小的维度添加到第二维度集合中。具体地,获取第一维度集合中的所有维度的唯一值,其中,维度唯一值越小,则维度越小。从所有维度中查找出唯一值小于或者等于第三阈值的维度,将查找到的维度作为选择出的小维度添加到第二维度集合中。在将第一维度集合中较小的维度添加到第二维度集合中之后,按查询次数的排序结果从第一维度集合的剩余维度中逐一选择维度添加到第二维度集合中,并依照前述方法判断是否将该维度保留在第二维度集合中,直到第一维度集合中的所有维度全部被选择完毕。[0041]根据本发明实施例,还提供了一种聚合表维度的选择装置实施例,图2是根据本发明实施例的一种可选的聚合表维度的选择装置的示意图,如图2所示,该装置包括:[0042]第一获取单元210,用于获取查询记录中的维度,得到第一维度集合,其中,查询记录中记载了所有历史查询所用到的维度。[0043]查询记录中记载了所有历史查询所用到的维度,如:在查询月销售额时,用到的维度是“月”,在查询地区人口规模时,用到的维度是“地区”,在查询网页日访问量时,用到的维度是“网页”和“日”组成的组合维度。第一获取单元210获取查询记录中所有查询用到的维度,将所有维度组成一个维度集合,即第一维度集合。[0044]统计单元220,用于统计查询记录中每个维度的查询次数。[0045]统计单元220对查询记录中所有查询记录所用到的维度进行统计,得到维度的查询次数,维度的查询次数越多,表明对该维度进行查询的可能性越高,则根据该维度生成聚合表对查询的优化效果越明显。[0046]建立单元230,用于建立第二维度集合,其中,第二维度集合初始为空集。[0047]建立单元230建立第二维度集合,用于添加选择的维度,在初始未选择聚合表维度时,第二维度集合为空集。[0048]第一选择单元240,用于根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中,直到第二维度集合中的维度数量达到目标数量,其中,在第二维度集合中的维度数量等于目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在第二维度集合中的维度数量超过目标数量时,聚合表的行数占事实数据表行数的百分比大于第一阈值,聚合表根据第二维度集合中的维度生成。[0049]第一选择单元240根据上述统计得到的各维度的查询次数,从第一维度集合中选择出目标数量的维度,将其添加到第二维度集合中,添加到第二维度集合中的目标数量的维度满足如下条件:根据该目标数量的维度所生成的聚合表的行数占事实数据表的行数的百分比小于或者等于第一阈值;如果第二维度集合中的维度的数量大于该目标数量,则根据第二维度集合中的维度所生成的聚合表,其行数占事实数据表的行数的百分比大于第一阈值,其中,聚合表的行数占事实数据表的行数的百分比小于或者等于第一阈值表明该聚合表的膨胀率可控,从第一维度集合中选择出目标数量的维度添加到第二维度集合中,使得根据第二维度集合中的维度生成的聚合表膨胀率可控,且第二维度集合中的维度的数量最多。[0050]在本发明实施例中,采用获取查询记录中的维度,得到第一维度集合,其中,查询记录中记载了所有历史查询所用到的维度;统计查询记录中每个维度的查询次数;建立第二维度集合,其中,第二维度集合初始为空集,根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中,在第二维度集合中的维度数量等于目标数量时,聚合表的膨胀率可控,其中,在第二维度集合中的维度数量超过目标数量时,聚合表的膨胀率不可控的方式,通过保证生成的聚合表膨胀率可控的情况下,尽量多地选择查询次数较多的维度,达到了根据选择的维度生成的聚合表既能满足查询加速的又能降低生成聚合表的开销的目的,从而实现了精准选择用于生成聚合表的维度的技术效果,进而解决了聚合表维度选择不够精准的技术问题。[0051]可选地,选择单元包括:排序模块,用于按照查询次数由高到低对维度进行排序;第一选择模块,用于按照排序的结果所指示的顺序,从第一维度集合中选择一个查询次数最多的维度作为当前维度添加到第二维度集合中;生成模块,用于在将当前维度添加到第二维度集合中之后,根据第二维度集合中的维度生成当前聚合表;判断模块,用于根据当前聚合表的行数占事实数据表行数的百分比判断是否将当前维度保留在第二维度集合中,得到判断结果;第二选择模块,在得到判断结果之后选择当前维度的下一个维度作为当前维度添加到第二维度集合中,直到第一维度集合中的所有维度全部被选择完毕。[0052]在选择目标维度添加到第二维度集合中时,优先选择查询记录中查询次数较多的维度,排序模块按照查询次数由高到低的排列次序对第一维度集合中的维度进行排序,按照排序结果,逐一选择目标维度添加到第二维度集合中,第一选择模块首先选择查询次数最多的维度作为当前维度添加到第二维度集合中,为了确保根据第二维度集合中的维度所生成的聚合表的膨胀率可控,在添加完当前维度之后,生成模块根据第二维度集合中的维度,生成一个当前聚合表,判断模块根据当前聚合表的行数占事实数据表行数的百分比,判断是否将当前维度保留在第二维度集合中,在得到判断结果之后,第二选择模块选择下一个维度作为当前维度,添加到第二维度集合中,再次生成当前聚合表,判断模块判断是否将当前维度保留在第二维度集合中,如此逐一选择维度添加到第二集合中,直到第一维度集合中所有的维度全部被选择完毕。[0053]可选地,判断模块包括:第一判断子模块,用于判断当前聚合表的行数占事实数据表行数的百分比是否小于或者等于第一阈值;保留子模块,用于如果判断出当前聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,将当前维度保留在第二维度集合中;删除子模块,用于如果判断出当前聚合表的行数占事实数据表行数的百分比大于第一阈值,将当前维度从第二维度集合中删除。[0054]为了确保将维度添加到第二维度集合中之后,根据第二维度集合中的维度生成的聚合表的膨胀率可控,在每一次将维度添加到第二维度集合中之后,根据第二维度集合中的维度生成一个当前聚合表,并判断是否将当前添加到第二聚合表中的维度保留在第二维度集合中。具体地,第一判断子模块判断生成的当前聚合表的行数占事实数据表的行数的百分比是否小于或者等于第一阈值,如果该百分比小于或者等于第一阈值,则当前聚合表的膨胀率可控,保留子模块将当前添加到第二维度集合中的维度保留在第二维度集合中,如果该百分比大于第一阈值,则当前聚合表膨胀率不可控,删除子模块将当前添加到第二维度集合中的维度删除。[0055]可选地,判断模块还包括:获取子模块,用于在判断出当前聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,将当前维度保留在第二维度集合中之后,获取第一维度集合中的维度与当前维度的关联系数,其中,关联系数用于指示第一维度集合中的维度与当前维度的关联程度;选择子模块,用于从第一维度集合中选择与当前维度的关联系数大于或者等于第二阈值的维度添加到第二维度集合中。[0056]在本发明实施例中,为了提高维度选择的效率,优先选择与当前添加到第二维度集合中的维度关联程度较高的维度,将其添加到第二维度集合中。具体地,在将当前维度添加到第二维度集合中,并判断出将当前维度保留在第二维度集合中之后,获取子模块获取第一维度集合中的维度与当前维度的关联系数,其中,关联系数越大,表明该维度与当前维度关联程度越高,选择子模块选择关联系数大于或者等于第二阈值的维度,将其添加到第二维度集合中。添加完毕之后,再按照查询次数的排列次序,选择下一个维度添加到第二维度集合中,并依照前述方法判断是否将该维度保留在第二维度集合中,直到第一维度集合中的所有维度全部被选择完毕。[0057]需要说明的是,第一维度集合中已经被选择并添加到第二维度集合中的维度,无需进行重复选择,在按次序选择维度时,仅选择未被选择添加过的维度即可。[0058]可选地,装置还包括:第二获取单元,用于在根据查询次数从第一维度集合中选择目标维度添加到第二维度集合中之前,获取第一维度集合中所有维度的唯一值;查找单元,用于从第一维度集合中查找唯一值小于或者等于第三阈值的维度;第二选择单元,用于选择唯一值小于或者等于第三阈值的维度添加到第二维度集合中。[0059]在本发明实施例中,还可采用另外一种维度选择方式,即在按查询次数从第一维度集合中选择目标维度添加到第二维度集合中之前,先将第一维度集合中较小的维度添加到第二维度集合中。具体地,:第二获取单元获取第一维度集合中的所有维度的唯一值,其中,维度唯一值越小,则维度越小。查找单元从所有维度中查找唯一值小于或者等于第三阈值的维度,第二选择单元选择查找到的维度并添加到第二维度集合中。在将第一维度集合中较小的维度添加到第二维度集合中之后,按查询次数的排序结果从第一维度集合的剩余维度中逐一选择维度添加到第二维度集合中,并依照前述方法判断是否将该维度保留在第二维度集合中,直到第一维度集合中的所有维度全部被选择完毕。[0060]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0061]在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。[0062]在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的親合或直接親合或通彳目连接可以是通过一些接口,单兀或模块的间接親合或通彳曰连接,可以是电性或其它的形式。[0063]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0064]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0065]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备可为个人计算机、服务器或者网络设备等执彳丁本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器R〇M,Read-〇nlyMemory、随机存取存储器RAM,RandomAccessMemory、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。[0066]以上所,仅是本发明6^优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

权利要求:1.一种聚合表维度的选择方法,其特征在于,包括:获取查询记录中的维度,得到第一维度集合,其中,所述查询记录中记载了所有历史查询所用到的维度;统计所述查询记录中每个所述维度的查询次数;建立第二维度集合,其中,所述第二维度集合初始为空集;根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中,直到所述第二维度集合中的维度数量达到目标数量,其中,在所述第二维度集合中的维度数量等于所述目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在所述第二维度集合中的维度数量超过所述目标数量时,所述聚合表的行数占所述事实数据表行数的百分比大于第一阈值,所述聚合表根据所述第二维度集合中的维度生成。2.根据权利要求1所述的方法,其特征在于,根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中包括:按照所述查询次数由高到低对所述维度进行排序;按照所述排序的结果所指示的顺序,从所述第一维度集合中选择一个查询次数最多的维度作为当前维度添加到所述第二维度集合中;在将所述当前维度添加到所述第二维度集合中之后,根据所述第二维度集合中的维度生成当前聚合表;根据所述当前聚合表的行数占所述事实数据表行数的百分比判断是否将所述当前维度保留在所述第二维度集合中,得到判断结果;在得到所述判断结果之后选择所述当前维度的下一个维度作为当前维度添加到所述第二维度集合中,直到所述第一维度集合中的所有维度全部被选择完毕。3.根据权利要求2所述的方法,其特征在于,根据所述当前聚合表的行数占所述事实数据表行数的百分比判断是否将所述当前维度保留在所述第二维度集合中,得到判断结果包括:判断所述当前聚合表的行数占所述事实数据表行数的百分比是否小于或者等于所述第一阈值;如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中;如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比大于所述第一阈值,将所述当前维度从所述第二维度集合中删除。4.根据权利要求3所述的方法,其特征在于,在判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中之后,所述方法还包括:获取所述第一维度集合中的维度与所述当前维度的关联系数,其中,所述关联系数用于指示所述第一维度集合中的维度与所述当前维度的关联程度;从所述第一维度集合中选择与所述当前维度的关联系数大于或者等于第二阈值的维度添加到所述第二维度集合中。5.根据权利要求1所述的方法,其特征在于,在根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中之前,所述方法还包括:获取所述第一维度集合中所有维度的唯一值;从所述第一维度集合中查找所述唯一值小于或者等于第三阈值的维度;将所述唯一值小于或者等于第三阈值的维度添加到所述第二维度集合中。6.—种聚合表维度的选择装置,其特征在于,包括:第一获取单元,用于获取查询记录中的维度,得到第一维度集合,其中,所述查询记录中记载了所有历史查询所用到的维度;统计单元,用于统计所述查询记录中每个所述维度的查询次数;建立单元,用于建立第二维度集合,其中,所述第二维度集合初始为空集;第一选择单元,用于根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中,直到所述第二维度集合中的维度数量达到目标数量,其中,在所述第二维度集合中的维度数量等于所述目标数量时,聚合表的行数占事实数据表行数的百分比小于或者等于第一阈值,在所述第二维度集合中的维度数量超过所述目标数量时,所述聚合表的行数占所述事实数据表行数的百分比大于第一阈值,所述聚合表根据所述第二维度集合中的维度生成。7.根据权利要求6所述的装置,其特征在于,所述选择单元包括:排序模块,用于按照所述查询次数由高到低对所述维度进行排序;第一选择模块,用于按照所述排序的结果所指示的顺序,从所述第一维度集合中选择一个查询次数最多的维度作为当前维度添加到所述第二维度集合中;生成模块,用于在将所述当前维度添加到所述第二维度集合中之后,根据所述第二维度集合中的维度生成当前聚合表;判断模块,用于根据所述当前聚合表的行数占所述事实数据表行数的百分比判断是否将所述当前维度保留在所述第二维度集合中,得到判断结果;第二选择模块,在得到所述判断结果之后选择所述当前维度的下一个维度作为当前维度添加到所述第二维度集合中,直到所述第一维度集合中的所有维度全部被选择完毕。8.根据权利要求7所述的装置,其特征在于,所述判断模块包括:第一判断子模块,用于判断所述当前聚合表的行数占所述事实数据表行数的百分比是否小于或者等于所述第一阈值;保留子模块,用于如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中;删除子模块,用于如果判断出所述当前聚合表的行数占所述事实数据表行数的百分比大于所述第一阈值,将所述当前维度从所述第二维度集合中删除。9.根据权利要求8所述的装置,其特征在于,所述判断模块还包括:获取子模块,用于在判断出所述当前聚合表的行数占所述事实数据表行数的百分比小于或者等于所述第一阈值,将所述当前维度保留在所述第二维度集合中之后,获取所述第一维度集合中的维度与所述当前维度的关联系数,其中,所述关联系数用于指示所述第一维度集合中的维度与所述当前维度的关联程度;选择子模块,用于从所述第一维度集合中选择与所述当前维度的关联系数大于或者等于第二阈值的维度添加到所述第二维度集合中。10.根据权利要求6所述的装置,其特征在于,所述装置还包括:第二获取单元,用于在根据所述查询次数从所述第一维度集合中选择目标维度添加到所述第二维度集合中之前,获取所述第一维度集合中所有维度的唯一值;查找单元,用于从所述第一维度集合中查找所述唯一值小于或者等于第三阈值的维度;第二选择单元,用于选择所述唯一值小于或者等于第三阈值的维度添加到所述第二维度集合中。

百度查询: 北京国双科技有限公司 聚合表维度的选择方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。