一种统计查询方法

文档序号:6432234阅读:346来源:国知局
专利名称:一种统计查询方法
技术领域
本发明涉及数据库领域,更具体地说,涉及一种统计查询方法。
背景技术
在通过分布式数据库进行统计查询时,一般的运行方式为客户端把查询请求下发到各服务器中,由各服务器上的服务进程返回满足条件并已经初步聚集的统计数据传输给客户端;客户端在收到各服务器传输到的数据后,通过进行进一步的聚集,以及动态列转置、信息扩展等处理,然后生成用户所需的数据并进行显示。由于在分布式环境下,数据分散在多个服务器中,所以通过分布式数据库进行统计查询通常要对已存储的数据进行汇总、行列转置、数值翻译或行间合并等处理后才能生成报表,其中,再在进行数据汇总时,客户端需要将所有服务器中的所需的数据全部收集后再进行汇总。这样,需要由服务器传输大量的数据至客户端,从而使资源有限的客户端承担了大量的数据交互计算工作,从而使得统计查询任务的运行效率和性能低下。现有技术中,为了解决统计查询任务的运行效率和性能低下的问题,有一种方式为采用数据库互联SQL技术,但是,这种方式更加适用于实现简单的查询,复杂的统计查询需要多步的处理才能完成,而且,SQL语言无法实现行间合并以及行列转置等处理,需要复杂的程序逻辑来完成,所以无法进行高效的统计查询。

发明内容
有鉴于此,本发明实施例提供一种统计查询方法,以实现高效的统计查询的目的。本发明实施例是这样实现的一种统计查询方法,包括获取统计查询请求;将所述统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算, 同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;所有所述聚合计算完成后,所述事后计算逻辑根据所述聚合结果集生成统计查询结果。优选的,在本发明实施例中,所述事前计算逻辑用于对数据源记录进行适配处理, 以形成聚合所需的数据记录结构。优选的,在本发明实施例中,所述事前计算逻辑包括读取原始数据、事前过滤、选择列、字段变换和字段扩展中的一种或任意组合。优选的,在本发明实施例中,所述事后计算逻辑用于对聚合结果集的记录进行处理。优选的,在本发明实施例中,所述事后计算逻辑包括事后过滤、字段翻译、结果排序、top-n处理。优选的,在本发明实施例中,所述聚合计算包括多级聚合计算。优选的,在本发明实施例中,所述聚合结果集为多个。优选的,在本发明实施例中,所述事后计算逻辑根据所述聚合结果集生成统计查询结果具体为对多个聚合结果同时计算。从上述技术方案可以看出,在本发明实施例中,通过将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;然后,同时为统计查询过程中接收数据和事前计算逻辑, 以及,聚合计算分配单独的计算线程进行运算生成聚合结果集;最后在所有聚合计算完成后,事后计算逻辑根据聚合结果集生成统计查询结果。由于在本发明实施例中,单元模式包括了所有所需的通用算法和固定的逻辑等,可以满足各种统计查询业务的需求,所以可以完成诸如行间合并和行列转置等处理;此外,通过本发明实施例,可以在作为后台的服务器端完成全部的数据处理操作,而作为前台的客户端只需要提交统计查询请求和显示最终结果即可,不但减少了前台和后台之间的数据交互,提高了高统计查询的效率,而且,还减少了前台的数据处理操作,由于作为前台的客户端一般数据处理能力较弱,所以减少前台的数据处理操作也会提高统计查询的整体效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例中所述统计查询的步骤示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了实现成本较低、且可以使获得的评估结果准确反映移动数据网络用户体验质量,本发明实施例提供一种统计查询方法,如图1所示,包括步骤S11、获取统计查询请求;通过作为前台的客户端,用户可以根据需求设定统计查询请求;作为后台的服务器端则会接收该统计查询请求。S12、将统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;在通过前台发起的统计查询请求逻辑中,包含了聚合结果描述聚合维度、指标字段的描述等。这些描述都遵循固定的规则,通过对这些规则进行概括提炼,形成一些固定的模式,包括字段计算的模式和聚合计算模式等,这些固定的模式即为单元模式;在本发明实施例中,单元模式包括了所有所需的通用算法和固定的逻辑等,可以满足各种统计查询业务的需求,可以完成诸如行间合并和行列转置等处理。在统计查询实例形成时,如果选择某些单元模式,就选择了这些单元模式所暗含的模式语义,即计算规则。通过字段模式列表,可以告知后台这些字段的求值语义,通过聚合模式列表,可以告知后台聚合结果集的组织方式。单元模式在设计时,大都只限定它们作用于某个单元性的算法逻辑,这为逻辑表达的动态生成提供了良好的基础,对统计结果逻辑的表达就是适用一个个单元模式的过程。每个单元化的模式实例都有模式输入参数,也有模式的输出参数,这些参数都是字段。某个单元模式的输出就是另外的单元模式的输入,从而使模式实例之间有依赖关系。 这种依赖关系决定了字段的计算时序,也是判断逻辑表达是否完整一致的准则。每个单元模式,都暗含着在某一个或者某几个统计计算时段(具体的,可以是包括事前计算、聚合计算和事后计算三个统计计算时段)中存在一些单元性的逻辑。例如,模式语义“该字段是从数据源某个字段而来,它在聚合运算中只能作为维度”。此模式语义暗含着事前计算时,它和数据源的某个字段的对应关系,以及,聚合运算时,它是维度键值。 即,每一种定义的单元模式,都在其语义中暗含着它的计算时序。这是形成计算执行计划的基础之一。综上所述,模式分析的过程,就是解释各个单元模式,以各单元模式之间的依存关系和各单元模式的执行时序为准则划分这些单元模式中的逻辑,具体的,可以划分为事前计算逻辑、聚合计算和事后计算逻辑。具体的,在本发明实施例中,聚合结果集可以为多个。 聚合计算可以包括多级聚合计算,具体内容可以包括COUNT、SUM、MAX、MIN、AVG等汇总操作。在本发明实施中,多级聚合计算关联的实现主要是借助hash算法,形成诸如表1 至表3实例的父子统计结果集、以及父子索引关联机制表1为主统计A,是关于diml,dim2, sum(indexl)的聚合结果集。表2为主统计A的记录键到子统计B的记录键之间的hash索引表。表3为子统计B,是关于diml,dim2, dim3, sum(indexl)的聚合结果。两个结果集通过从主统计A的记录键到子统计B的记录键之间的hash索引完成, 这样可以从主统计A的某条记录快速索引到它的子记录而子记录则可以通过自身携带的父记录键直接找到父记录。表1 StatA
权利要求
1.一种统计查询方法,其特征在于,包括 获取统计查询请求;将所述统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算,同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;所有所述聚合计算完成后,所述事后计算逻辑根据所述聚合结果集生成统计查询结: O
2.根据权利要求1所述统计查询方法,其特征在于,所述事前计算逻辑用于对数据源记录进行适配处理,以形成聚合所需的数据记录结构。
3.根据权利要求2所述统计查询方法,其特征在于,所述事前计算逻辑包括读取原始数据、事前过滤、选择列、字段变换和字段扩展中的一种或任意组合。
4.根据权利要求1所述统计查询方法,其特征在于,所述事后计算逻辑用于对聚合结果集的记录进行处理。
5.根据权利要求4所述统计查询方法,其特征在于,所述事后计算逻辑包括事后过滤、 字段翻译、结果排序、top-n处理。
6.根据权利要求1所述统计查询方法,其特征在于,所述聚合计算包括多级聚合计算。
7.根据权利要求1所述统计查询方法,其特征在于,所述聚合结果集为多个。
8.根据权利要求7所述统计查询方法,其特征在于,所述事后计算逻辑根据所述聚合结果集生成统计查询结果具体为对多个聚合结果同时计算。
全文摘要
本实施例公开了一种统计查询方法,包括获取统计查询请求;将统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算,同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;所有聚合计算完成后,事后计算逻辑根据所述聚合结果集生成统计查询结果。本发明实施例中,由作为后台完成全部的数据处理操作,而前台只需要提交统计查询请求和显示最终结果即可,不但减少了前台和后台之间的数据交互,还减少了前台的数据处理操作,从而提高了统计查询的整体效率。
文档编号G06F17/30GK102323942SQ20111025742
公开日2012年1月18日 申请日期2011年9月1日 优先权日2011年9月1日
发明者贾林, 马立斌 申请人:北京中创信测科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1