CN102323942B - 一种统计查询方法 - Google Patents
一种统计查询方法 Download PDFInfo
- Publication number
- CN102323942B CN102323942B CN 201110257427 CN201110257427A CN102323942B CN 102323942 B CN102323942 B CN 102323942B CN 201110257427 CN201110257427 CN 201110257427 CN 201110257427 A CN201110257427 A CN 201110257427A CN 102323942 B CN102323942 B CN 102323942B
- Authority
- CN
- China
- Prior art keywords
- statistical query
- polymerization
- computational logic
- afterwards
- query method
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本实施例公开了一种统计查询方法,包括:获取统计查询请求;将统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算,同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;所有聚合计算完成后,事后计算逻辑根据所述聚合结果集生成统计查询结果。本发明实施例中,由作为后台完成全部的数据处理操作,而前台只需要提交统计查询请求和显示最终结果即可,不但减少了前台和后台之间的数据交互,还减少了前台的数据处理操作,从而提高了统计查询的整体效率。
Description
技术领域
本发明涉及数据库领域,更具体地说,涉及一种统计查询方法。
背景技术
在通过分布式数据库进行统计查询时,一般的运行方式为客户端把查询请求下发到各服务器中,由各服务器上的服务进程返回满足条件并已经初步聚集的统计数据传输给客户端;客户端在收到各服务器传输到的数据后,通过进行进一步的聚集,以及动态列转置、信息扩展等处理,然后生成用户所需的数据并进行显示。
由于在分布式环境下,数据分散在多个服务器中,所以通过分布式数据库进行统计查询通常要对已存储的数据进行汇总、行列转置、数值翻译或行间合并等处理后才能生成报表,其中,再在进行数据汇总时,客户端需要将所有服务器中的所需的数据全部收集后再进行汇总。这样,需要由服务器传输大量的数据至客户端,从而使资源有限的客户端承担了大量的数据交互计算工作,从而使得统计查询任务的运行效率和性能低下。
现有技术中,为了解决统计查询任务的运行效率和性能低下的问题,有一种方式为采用数据库互联SQL技术,但是,这种方式更加适用于实现简单的查询,复杂的统计查询需要多步的处理才能完成,而且,SQL语言无法实现行间合并以及行列转置等处理,需要复杂的程序逻辑来完成,所以无法进行高效的统计查询。
发明内容
有鉴于此,本发明实施例提供一种统计查询方法,以实现高效的统计查询的目的。
本发明实施例是这样实现的:
一种统计查询方法,包括:
获取统计查询请求;
将所述统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;
为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算,同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;
所有所述聚合计算完成后,所述事后计算逻辑根据所述聚合结果集生成统计查询结果。
优选的,在本发明实施例中,所述事前计算逻辑用于对数据源记录进行适配处理,以形成聚合所需的数据记录结构。
优选的,在本发明实施例中,所述事前计算逻辑包括读取原始数据、事前过滤、选择列、字段变换和字段扩展中的一种或任意组合。
优选的,在本发明实施例中,所述事后计算逻辑用于对聚合结果集的记录进行处理。
优选的,在本发明实施例中,所述事后计算逻辑包括事后过滤、字段翻译、结果排序、top-n处理。
优选的,在本发明实施例中,所述聚合计算包括多级聚合计算。
优选的,在本发明实施例中,所述聚合结果集为多个。
优选的,在本发明实施例中,所述事后计算逻辑根据所述聚合结果集生成统计查询结果具体为:
对多个聚合结果同时计算。
从上述技术方案可以看出,在本发明实施例中,通过将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;然后,同时为统计查询过程中接收数据和事前计算逻辑,以及,聚合计算分配单独的计算线程进行运算生成聚合结果集;最后在所有聚合计算完成后,事后计算逻辑根据聚合结果集生成统计查询结果。由于在本发明实施例中,单元模式包括了所有所需的通用算法和固定的逻辑等,可以满足各种统计查询业务的需求,所以可以完成诸如行间合并和行列转置等处理;此外,通过本发明实施例,可以在作为后台的服务器端完成全部的数据处理操作,而作为前台的客户端只需要提交统计查询请求和显示最终结果即可,不但减少了前台和后台之间的数据交互,提高了高统计查询的效率,而且,还减少了前台的数据处理操作,由于作为前台的客户端一般数据处理能力较弱,所以减少前台的数据处理操作也会提高统计查询的整体效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中所述统计查询的步骤示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现成本较低、且可以使获得的评估结果准确反映移动数据网络用户体验质量,本发明实施例提供一种统计查询方法,如图1所示,包括步骤:
S11、获取统计查询请求;
通过作为前台的客户端,用户可以根据需求设定统计查询请求;作为后台的服务器端则会接收该统计查询请求。
S12、将统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;
在通过前台发起的统计查询请求逻辑中,包含了聚合结果描述聚合维度、指标字段的描述等。这些描述都遵循固定的规则,通过对这些规则进行概括提炼,形成一些固定的模式,包括字段计算的模式和聚合计算模式等,这些固定的模式即为单元模式;在本发明实施例中,单元模式包括了所有所需的通用算法和固定的逻辑等,可以满足各种统计查询业务的需求,可以完成诸如行间合并和行列转置等处理。
在统计查询实例形成时,如果选择某些单元模式,就选择了这些单元模式所暗含的模式语义,即计算规则。通过字段模式列表,可以告知后台这些字段的求值语义,通过聚合模式列表,可以告知后台聚合结果集的组织方式。
单元模式在设计时,大都只限定它们作用于某个单元性的算法逻辑,这为逻辑表达的动态生成提供了良好的基础,对统计结果逻辑的表达就是适用一个个单元模式的过程。
每个单元化的模式实例都有模式输入参数,也有模式的输出参数,这些参数都是字段。某个单元模式的输出就是另外的单元模式的输入,从而使模式实例之间有依赖关系。这种依赖关系决定了字段的计算时序,也是判断逻辑表达是否完整一致的准则。
每个单元模式,都暗含着在某一个或者某几个统计计算时段(具体的,可以是包括事前计算、聚合计算和事后计算三个统计计算时段)中存在一些单元性的逻辑。例如,模式语义:“该字段是从数据源某个字段而来,它在聚合运算中只能作为维度”。此模式语义暗含着:事前计算时,它和数据源的某个字段的对应关系,以及,聚合运算时,它是维度键值。即,每一种定义的单元模式,都在其语义中暗含着它的计算时序。这是形成计算执行计划的基础之一。
综上所述,模式分析的过程,就是解释各个单元模式,以各单元模式之间的依存关系和各单元模式的执行时序为准则划分这些单元模式中的逻辑,具体的,可以划分为事前计算逻辑、聚合计算和事后计算逻辑。具体的,在本发明实施例中,聚合结果集可以为多个。聚合计算可以包括多级聚合计算,具体内容可以包括COUNT、SUM、MAX、MIN、AVG等汇总操作。
在本发明实施中,多级聚合计算关联的实现主要是借助hash算法,形成诸如表1至表3实例的父子统计结果集、以及父子索引关联机制:
表1为主统计A,是关于dim1,dim2,sum(index1)的聚合结果集。
表2为主统计A的记录键到子统计B的记录键之间的hash索引表。
表3为子统计B,是关于dim1,dim2,dim3,sum(index1)的聚合结果。
两个结果集通过从主统计A的记录键到子统计B的记录键之间的hash索引完成,这样可以从主统计A的某条记录快速索引到它的子记录而子记录则可以通过自身携带的父记录键直接找到父记录。
表1:
StatA
Key | Dim1 | Dim2 | Sum(index1) |
Ak | A1 | A2 | Ai |
Bk | B1 | B2 | Bi |
Ck | C1 | C2 | Ci |
Dk | D1 | D2 | Di |
表2:
AindexB
KeyA | keyB |
Ak | Aj1,aj2,aj3... |
Bk | Bj1,bj2,bj3... |
Ck | Cj1,cj2,cj3... |
… | … |
表3:
StatB
Key | Akey | Dim3 | Sum(index 1) | Percent |
Aj1 | Ak | e | Aei | Aei/Ai |
Aj2 | Ak | f | Afi | Afi/Ai |
Cj3 | Ck | k | Cki | Cki/Ci |
Bj1 | Bk | j | BJi | Bji/Bi |
… |
由于本发明实施例中对这些算法规则模式化之后,即形成单元模式后,所带来的语义规约,使得统计逻辑可动态交互,而不需要前后台均配置计算逻辑,从而做到逻辑出处统一。
在本发明实施例中,事前计算逻辑用于对数据源记录进行适配处理,以形成聚合所需的数据记录结构
在本发明实施例中,事前计算逻辑可以包括读取原始数据、事前过滤、选择列、字段变换和字段扩展。
在本发明实施例中,事后计算逻辑用于对聚合结果集的记录进行处理。
在本发明实施例中,事后计算逻辑包括事后过滤、字段翻译、结果排序、top-n处理。本发明实施例中top-n是指在统计查询时,按条件查询出来的记录集的前n条记录。
S13、为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算,同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;
在统计查询的过程中,从数据源获得的数据需要经过一次传输过程,需要对其进行接收、解码、记录处理,然后才提交给聚合运算。在大批量数据查询的情境下,事前处理过程是一个效率上较大的瓶颈。
为此,在本发明实施中,采用多线程结构,并按照合适的并发度分配单独的线程处理数据接收及事前计算,分配一个独立的聚合计算线程。这样可以使得数据接收的速度能基本赶上聚合计算的速度,从而使得统计结果的响应时间较大幅度的缩短。
S14、所有所述聚合计算完成后,所述事后计算逻辑根据所述聚合结果集生成统计查询结果。
在所有所述聚合计算完成后,事后计算逻辑根据聚合结果集生成统计查询结果,具体的,可以包括事后过滤、字段翻译、结果排序、top-n等处理,从而可以生成统计查询结果。在生成统计查询结果,作为后台的服务器端可以将统计查询结果发送至作为前台的客户端,从而可以向用户输出统计查询结果。
从上述技术方案可以看出,在本发明实施例中,通过将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;然后,同时为统计查询过程中接收数据和事前计算逻辑,以及,聚合计算分配单独的计算线程进行运算生成聚合结果集;最后在所有聚合计算完成后,事后计算逻辑根据聚合结果集生成统计查询结果。由于在本发明实施例中,单元模式包括了所有所需的通用算法和固定的逻辑等,可以满足各种统计查询业务的需求,所以可以完成诸如行间合并和行列转置等处理。
此外,通过本发明实施例,可以在作为后台的服务器端完成全部的数据处理操作,而作为前台的客户端只需要提交统计查询请求和显示最终结果即可,不但减少了前台和后台之间的数据交互,提高了高统计查询的效率,而且,还减少了前台的数据处理操作,由于作为前台的客户端一般数据处理能力较弱,所以减少前台的数据处理操作也会提高统计查询的整体效率。
在本发明实施例中,事后计算逻辑根据所述聚合结果集生成统计查询结果具体可以为,对多个聚合结果同时计算。
通过对多个聚合结果同时计算,可以充分利用服务器端的运算资源,从而可以有效地提高统计查询的效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种统计查询方法,其特征在于,包括:
获取统计查询请求;
将所述统计查询请求所包括的单元模式进行模式解析,将单元模式划分为事前计算逻辑、聚合计算和事后计算逻辑;
为统计查询过程中接收数据和所述事前计算逻辑分配单独的计算线程进行运算,同时,为聚合计算分配单独的计算线程进行运算生成聚合结果集;
所有所述聚合计算完成后,所述事后计算逻辑根据所述聚合结果集生成统计查询结果。
2.根据权利要求1所述统计查询方法,其特征在于,所述事前计算逻辑用于对数据源记录进行适配处理,以形成聚合所需的数据记录结构。
3.根据权利要求2所述统计查询方法,其特征在于,所述事前计算逻辑包括读取原始数据、事前过滤、选择列、字段变换和字段扩展中的一种或任意组合。
4.根据权利要求1所述统计查询方法,其特征在于,所述事后计算逻辑用于对聚合结果集的记录进行处理。
5.根据权利要求4所述统计查询方法,其特征在于,所述事后计算逻辑包括事后过滤、字段翻译、结果排序、top-n处理。
6.根据权利要求1所述统计查询方法,其特征在于,所述聚合计算包括多级聚合计算。
7.根据权利要求1所述统计查询方法,其特征在于,所述聚合结果集为多个。
8.根据权利要求7所述统计查询方法,其特征在于,所述事后计算逻辑根据所述聚合结果集生成统计查询结果具体为:
对多个聚合结果同时计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110257427 CN102323942B (zh) | 2011-09-01 | 2011-09-01 | 一种统计查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110257427 CN102323942B (zh) | 2011-09-01 | 2011-09-01 | 一种统计查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102323942A CN102323942A (zh) | 2012-01-18 |
CN102323942B true CN102323942B (zh) | 2013-04-10 |
Family
ID=45451685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110257427 Expired - Fee Related CN102323942B (zh) | 2011-09-01 | 2011-09-01 | 一种统计查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102323942B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942197B (zh) * | 2013-01-17 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 数据监控处理方法及设备 |
CN103593403B (zh) * | 2013-10-16 | 2017-12-29 | 东软集团股份有限公司 | 一种流程表中业务数据关联方法及系统 |
CN103914531B (zh) * | 2014-03-31 | 2017-03-15 | 百度在线网络技术(北京)有限公司 | 数据的处理方法及装置 |
CN104537120A (zh) * | 2015-01-26 | 2015-04-22 | 浪潮通信信息系统有限公司 | 一种基于用户行为分析的dns数据挖掘系统及方法 |
CN106294427A (zh) * | 2015-05-26 | 2017-01-04 | 北大方正集团有限公司 | 稿件统计方法和稿件统计系统 |
CN106933914A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | 多数据表的数据处理方法及装置 |
CN109408532B (zh) * | 2018-09-26 | 2023-12-19 | 平安科技(深圳)有限公司 | 数据获取方法、装置、计算机设备和存储介质 |
CN112182028A (zh) * | 2020-09-29 | 2021-01-05 | 北京人大金仓信息技术股份有限公司 | 基于分布式数据库的表的数据行数查询方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924853A (zh) * | 2006-09-14 | 2007-03-07 | 南京中兴软创软件有限公司 | 一种加速数据库查询速度的方法 |
CN101183371A (zh) * | 2007-12-12 | 2008-05-21 | 中兴通讯股份有限公司 | 一种快速完成大数据处理的方法和报表系统 |
CN101902505A (zh) * | 2009-05-31 | 2010-12-01 | 中国科学院计算机网络信息中心 | 一种分布式dns查询日志的实时统计装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145269A1 (en) * | 2009-12-09 | 2011-06-16 | Renew Data Corp. | System and method for quickly determining a subset of irrelevant data from large data content |
-
2011
- 2011-09-01 CN CN 201110257427 patent/CN102323942B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924853A (zh) * | 2006-09-14 | 2007-03-07 | 南京中兴软创软件有限公司 | 一种加速数据库查询速度的方法 |
CN101183371A (zh) * | 2007-12-12 | 2008-05-21 | 中兴通讯股份有限公司 | 一种快速完成大数据处理的方法和报表系统 |
CN101902505A (zh) * | 2009-05-31 | 2010-12-01 | 中国科学院计算机网络信息中心 | 一种分布式dns查询日志的实时统计装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102323942A (zh) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102323942B (zh) | 一种统计查询方法 | |
US11977545B2 (en) | Generation of an optimized query plan in a database system | |
CN104767813B (zh) | 基于openstack的公众行大数据服务平台 | |
Zhao et al. | Modeling MongoDB with relational model | |
EP1738290B1 (en) | Partial query caching | |
US9390129B2 (en) | Scalable and adaptive evaluation of reporting window functions | |
US9235621B2 (en) | Data-aware scalable parallel execution of rollup operations | |
WO2013144535A1 (en) | Method and system for processing data queries | |
CN106383830B (zh) | 一种数据检索方法及设备 | |
US10977280B2 (en) | Systems and methods for memory optimization interest-driven business intelligence systems | |
CN104834754A (zh) | 一种基于连接代价的sparql语义数据查询优化方法 | |
Tank et al. | Speeding ETL processing in data warehouses using high-performance joins for changed data capture (cdc) | |
Zhao et al. | A practice of TPC-DS multidimensional implementation on NoSQL database systems | |
CN111125199B (zh) | 一种数据库访问方法、装置及电子设备 | |
CN110413927B (zh) | 在发布订阅系统中基于匹配实时性的优化方法及系统 | |
US20130031050A1 (en) | System, Method, and Computer Program Product for Accessing Manipulating Remote Datasets | |
CN106021386A (zh) | 面向海量分布式数据的非等值连接方法 | |
US20220121711A1 (en) | Delaying exceptions in query execution | |
Lee et al. | Scalable distributed data cube computation for large-scale multidimensional data analysis on a Spark cluster | |
Chen et al. | An optimized distributed OLAP system for big data | |
Jentzsch | Profiling the web of data | |
US20220215021A1 (en) | Data Query Method and Apparatus, Computing Device, and Storage Medium | |
Xiao et al. | Nested pattern queries processing optimization over multi-dimensional event streams | |
Moussa | Massive Data Analytics in the Cloud: TPC-H Experience on Hadoop Clusters. | |
CN112148830A (zh) | 一种基于最大区域网格的语义数据存储与检索的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130410 Termination date: 20170901 |
|
CF01 | Termination of patent right due to non-payment of annual fee |