CN103020280B - 一种通过多维度kpi函数对sql查询语句进行扩充的方法 - Google Patents
一种通过多维度kpi函数对sql查询语句进行扩充的方法 Download PDFInfo
- Publication number
- CN103020280B CN103020280B CN201210580083.7A CN201210580083A CN103020280B CN 103020280 B CN103020280 B CN 103020280B CN 201210580083 A CN201210580083 A CN 201210580083A CN 103020280 B CN103020280 B CN 103020280B
- Authority
- CN
- China
- Prior art keywords
- various dimensions
- kpi
- function
- sql query
- kpi function
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000008676 import Effects 0.000 claims abstract description 4
- 238000012544 monitoring process Methods 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 44
- 238000005516 engineering process Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种通过多维度KPI函数对SQL查询语句进行扩充的方法。在该方法中,首先定义统计指标量的相关维度,以及通过各个维度计算统计指标量值的规则,生成多维度KPI函数;利用多维度KPI函数预先查询数据库,并将查询结果保存在多维度KPI函数结果表中;SQL查询语句调用多维度KPI函数,并提供传入参数值查询相应的多维度KPI函数结果表,直接获取统计指标量。利用本发明所提供的方法,SQL查询语句通过简单的调用方式即可获取实时性的大量数据处理结果,无需直接通过SQL查询处理大量数据,可以很好地解决SQL查询语句在实时监控报表中的查询效率问题。
Description
技术领域
本发明涉及一种SQL查询语句扩充方法,尤其涉及一种通过多维度KPI(KernelProgrammingInterface,内核编程接口)函数对SQL查询语句进行扩充,从而提高海量数据查询效率的方法,属于数据库技术领域。
背景技术
结构化查询语言(StructuredQueryLanguage,简称SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有不同底层结构的数据库系统可以使用相同的SQL查询语句作为数据输入与管理的接口。
但是,传统的SQL查询语句在面临大数据量实时查询任务时,存在明显的效率缺陷,使其不能直接适用于大量数据的实时监控处理。为了解决这一技术问题,人们先后提出了多种技术解决方案。例如在申请号为201210075512.5的中国专利申请中,公开了一种大数据量的数据查询方法,包括如下步骤:S10:定义增量数据捕获方式;S11:定义增量捕获调度执行计划;S12:执行增量数据定期归集;S13:执行数据统计结果查询。该技术方案把复杂的数据统计查询过程包分解成两个过程,统计计算归集和实时查询;将统计计算归集过程放在后台运行,并且归集过程只归集增量数据,从而大大提高了大数据量统计查询的执行效率。
另外,李宝莲等在论文《基于SQLServer应用的大数据量实时处理》(刊载于《无线电工程》2007年03期)中,针对大数据量的实时处理问题,结合SQLServer的功能特点,给出了3种应用技术和策略,即统计分析与实时处理数据分开存储策略、临时表技术和数据库的发布与订阅技术。通过对使用结果的分析,说明了这些技术和策略对完成大数据量业务的实时处理有一定的作用。
发明内容
本发明所要解决的技术问题在于提供一种SQL查询语句扩充方法。该方法通过多维度KPI函数对SQL查询语句进行扩充,弥补了传统SQL查询语句在面临大数据量实时查询任务时的效率缺陷。
为实现上述的发明目的,本发明采用下述的技术方案:
一种通过多维度KPI函数对SQL查询语句进行扩充的方法,包括如下步骤:
预先定义统计指标量的相关维度,以及通过各个维度计算统计指标量值的规则,生成所述多维度KPI函数;
利用所述多维度KPI函数预先查询数据库,并将查询结果保存在多维度KPI函数结果表中;
SQL查询语句调用所述多维度KPI函数,并提供传入参数值查询相应的多维度KPI函数结果表,直接获取统计指标量。
其中较优地,所述SQL查询语句输入数据库之后,发送统计指标维度值给所述多维度KPI函数。
其中较优地,所述多维度KPI函数将需要在同一时间处理的事务,分散到各个时段进行处理。
本发明采用多维度KPI函数对SQL查询语句进行扩充,具有如下的显著优势:
1.SQL查询语句通过简单的调用方式即可获取实时性的大量数据处理结果,无需直接通过SQL查询处理大量数据;
2.可以自定义数据处理方式,并且定义数据处理方式的过程简单方便。
附图说明
图1为基于SQL查询语句的实时监控统计流程图;
图2为基于多维度KPI函数对SQL查询语句进行扩充的方法流程图。
具体实施方式
在目前大规模发展的数据应用中,尤其是金融、物流、保险等行业,实时监控报表发挥着举足轻重的作用。实时监控报表主要是对当前数据的量化数据反映。这些量化数据反映对深入洞察事实真相,快速分析决策都很重要,例如:
1.成本实时监控报表是对项目收入与成本情况的总体反映,通过该实时监控报表及时反映项目当期实际盈亏情况,使项目领导层及时掌握成本信息,及时发现问题并采取应对措施。
2.收入费用实时监控报表,该实时监控报表可以按月、季、年反映各期项目的收入情况,通过该实时监控报表可以及时反映当期的预估收入,为项目决策提供及时分析数据。
为了生成上述的实时监控报表,通常会频繁使用SQL查询语句。图1显示了基于SQL查询语句的实时监控统计流程。当SQL查询语句输入数据库之后,在数据库中进行相应的查询处理,最终显示所需的统计指标量。例如在查询统计指标量的一个示例中,常用的SQL查询语句具体如下:
SELECTepp.bm_nameAS'组别',epp.user_idAS'工号',epp.user_nameAS'姓名',count(DISTINCTCASEWHENepp.status='A01'THENepp.eppidELSENULLEND)AS'签单成功量',count(DISTINCTCASEWHENepp.status='A02'THENepp.eppidELSENULLEND)AS'签单跟进量',count(DISTINCTCASEWHENepp.reason='B02'THENepp.eppidELSENULLEND)AS'联系失败量',count(DISTINCTCASEWHENepp.reason='B03'THENepp.eppidELSENULLEND)AS'跟进失败量'FROMeppgroupbyepp.bm_name,epp.user_id,epp.user_name
但是,传统SQL查询语句的查询效率不高,很难满足实时监控报表对查询效率的要求。为此,本发明提出了一种基于多维度KPI函数对SQL查询语句进行扩充的方法。该多维度KPI函数作为一个中间桥梁,从最底层开始映射,通过预先定义的统计处理方式提前计算所需的统计指标量。当SQL查询语句调用相应的多维度KPI函数接口,并提供相应的接口参数时,即可直接获取相应的统计指标量。因此,利用该多维度KPI函数可以很好地解决SQL查询语句在实时监控报表中的查询效率问题。
本发明中的多维度KPI函数是计算用户自定义指标量值的内核编程接口函数。该函数需要用户自己定义统计指标量的相关维度,以及通过各个维度计算统计指标量值的规则。例如在本发明的一个实施例中,需要统计不同部门在某个项目上的资源投入情况。相关数据在关系型数据库中映射如下所示:
部门信息表:department
Department_id | Department_name |
1 | A部 |
2 | B部 |
3 | C部 |
4 | D部 |
员工信息表:user
User_id | User_name | Department_id |
001 | 李X | 1 |
002 | 杜X | 2 |
003 | 王X | 2 |
005 | 宋X | 3 |
006 | 曹X | 3 |
007 | 杨X | 4 |
项目信息表:item
Item_id | Item_name |
1 | A项目 |
2 | B项目 |
项目参与部门信息:item_department
Item_id | Department_id |
1 | 1 |
1 | 2 |
1 | 3 |
1 | 4 |
2 | 1 |
2 | 2 |
项目资源投入表:cost_info
User_id | Item_id | cost |
001 | 1 | 5400 |
001 | 2 | 6900 |
003 | 2 | 6500 |
002 | 1 | 6300 |
005 | 1 | 6800 |
006 | 1 | 6300 |
007 | 1 | 3200 |
002 | 2 | 6500 |
基于上述信息表和统计指标量的查询需求,定义相应的多维度KPI函数如下:
1)各个部门的资源投入总量为统计指标量
2)维度:部门和项目,即KPI(`user`.`Department_id`,`cost_info`.`Item_id`)
3)统计运算公式是sum(`cost_info`.`cost`)
4)设置统计运算涉及到的表关联关系:
`cost_info`.`user_id`=`user`.`Department_id`
当出现其它统计指标量的查询需求时,可以根据实际情况生成相应的多维度KPI函数。这种多维度KPI函数的具体定义方式是数据库领域一般技术人员都能掌握的常规技术,在此就不一一说明了。
根据所生成的多维度KPI函数定义,预先查询数据库并将查询结果保存在相应的多维度KPI函数结果表中。当SQL查询语句需要借助多维度KPI函数提高查询效率时,调用相应的多维度KPI函数接口,并提供传入参数值查询相应的多维度KPI函数结果表,可以直接获取相应的统计指标量。
图2为基于多维度KPI函数对SQL查询语句进行扩充的方法流程图。SQL查询语句输入数据库之后,在数据库中进行相应的查询处理,然后发送统计指标维度值给多维度KPI函数。多维度KPI函数预先向数据库发出SQL查询请求,经数据库处理后产生相应的统计指标量,并保存在相应的多维度KPI函数结果表中。当SQL查询语句的查询请求(统计指标维度值)传给多维度KPI函数之后,该多维度KPI函数从数据库中获得已经存储的统计指标量,并对外显示该统计指标量。
下面是一个使用多维度KPI函数扩充的SQL查询语句的示例:
SELECTuser.bm_nameAS'组别',user.user_idAS'工号',user.user_nameAS'姓名',KPI(1,user.user_id)AS'签单成功量',KPI(2,user.user_id)AS'签单跟进量',KPI(3,user.user_id)AS'联系失败量',KPI(4,user.user_id)AS'跟进失败量'FROMuser
如上所述,使用多维度KPI函数扩充的SQL查询语句,查询只有几万数据量公司的员工表,将查询的员工ID值传给多维度KPI函数,该多维度KPI函数会将提前计算好的统计指标量返回,SQL查询语句就类似于查询了一个常量的统计指标值。而传统的SQL查询语句,需在几百万数据量的业务流表上进行查询统计处理,自然查询效率要低很多。另外,利用该多维度KPI函数还可以将需要在同一时间处理的事务,分散到各个时段进行处理。因此相较于基于SQL查询的实时监控统计而言,通过多维度KPI函数提供统计处理,有效分担了数据库的查询处理压力。
表1显示了基于SQL查询进行的实时监控统计和基于多维度KPI函数进行的实时监控统计的具体区别:
比较项 | 传统SQL查询 | 多维度KPI函数 |
数据库压力 | 大 | 小 |
资源利用率 | 低 | 高 |
查询效率 | 慢 | 快 |
复杂度 | 高 | 低 |
表1
从表1所示的比较结果来看,使用多维度KPI函数扩充的SQL查询语句比传统的SQL查询语句的效率高,并且在资源利用率、复杂度等方面都有明显的优势。因此,该方法更适合在实时监控报表中使用。
上面对本发明所提供的通过多维度KPI函数对SQL查询语句进行扩充的方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (3)
1.一种通过多维度KPI函数对SQL查询语句进行扩充的方法,其特征在于包括如下步骤:
预先定义统计指标量的相关维度,以及通过各个维度计算统计指标量值的规则,生成多维度KPI函数;所述多维度KPI函数是计算用户自定义指标量值的内核编程接口函数,该内核编程接口函数从最底层开始映射,通过预先定义的统计处理方式提前计算所需的统计指标量;
利用所述多维度KPI函数预先查询数据库,并将查询结果保存在多维度KPI函数结果表中;SQL查询语句调用所述多维度KPI函数,并提供传入参数值查询相应的多维度KPI函数结果表,直接获取统计指标量。
2.如权利要求1所述的通过多维度KPI函数对SQL查询语句进行扩充的方法,其特征在于:
所述SQL查询语句输入数据库之后,发送统计指标维度值给所述多维度KPI函数。
3.如权利要求1所述的通过多维度KPI函数对SQL查询语句进行扩充的方法,其特征在于:
所述多维度KPI函数将需要在同一时间处理的事务,分散到各个时段进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210580083.7A CN103020280B (zh) | 2012-12-27 | 2012-12-27 | 一种通过多维度kpi函数对sql查询语句进行扩充的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210580083.7A CN103020280B (zh) | 2012-12-27 | 2012-12-27 | 一种通过多维度kpi函数对sql查询语句进行扩充的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103020280A CN103020280A (zh) | 2013-04-03 |
CN103020280B true CN103020280B (zh) | 2016-03-16 |
Family
ID=47968883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210580083.7A Active CN103020280B (zh) | 2012-12-27 | 2012-12-27 | 一种通过多维度kpi函数对sql查询语句进行扩充的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020280B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500188A (zh) * | 2013-09-13 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据表生成的方法和系统 |
CN104809130B (zh) * | 2014-01-27 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 数据查询的方法、设备及系统 |
CN103902739B (zh) * | 2014-04-22 | 2017-06-16 | 郑州悉知信息科技股份有限公司 | 数据库集群服务器数据分类方法 |
CN103995899A (zh) * | 2014-06-10 | 2014-08-20 | 浪潮通用软件有限公司 | 一种kpi的分析系统 |
CN109241197A (zh) * | 2018-06-21 | 2019-01-18 | 深圳市彬讯科技有限公司 | 指标展示的数据处理方法、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055566A (zh) * | 2007-05-25 | 2007-10-17 | 金蝶软件(中国)有限公司 | 一种电子数据表的函数收集方法和装置 |
CN101197876A (zh) * | 2006-12-06 | 2008-06-11 | 中兴通讯股份有限公司 | 一种对消息类业务数据进行多维分析的方法和系统 |
CN101937474A (zh) * | 2010-10-14 | 2011-01-05 | 广州从兴电子开发有限公司 | 海量数据查询方法及设备 |
CN102289373A (zh) * | 2011-07-28 | 2011-12-21 | 福建富士通信息软件有限公司 | 一种实现指标评价体系动态配置的方法 |
CN102375822A (zh) * | 2010-08-13 | 2012-03-14 | 北京西塔网络科技股份有限公司 | 一种高效率动态报表实现的方法及系统 |
-
2012
- 2012-12-27 CN CN201210580083.7A patent/CN103020280B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197876A (zh) * | 2006-12-06 | 2008-06-11 | 中兴通讯股份有限公司 | 一种对消息类业务数据进行多维分析的方法和系统 |
CN101055566A (zh) * | 2007-05-25 | 2007-10-17 | 金蝶软件(中国)有限公司 | 一种电子数据表的函数收集方法和装置 |
CN102375822A (zh) * | 2010-08-13 | 2012-03-14 | 北京西塔网络科技股份有限公司 | 一种高效率动态报表实现的方法及系统 |
CN101937474A (zh) * | 2010-10-14 | 2011-01-05 | 广州从兴电子开发有限公司 | 海量数据查询方法及设备 |
CN102289373A (zh) * | 2011-07-28 | 2011-12-21 | 福建富士通信息软件有限公司 | 一种实现指标评价体系动态配置的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103020280A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020280B (zh) | 一种通过多维度kpi函数对sql查询语句进行扩充的方法 | |
CN102999506B (zh) | 一种获取用户独立访问数的方法与装置 | |
CN111104394A (zh) | 一种能源数据仓库系统构建方法及装置 | |
CN102024062B (zh) | 一种实现数据动态缓存处理的装置及方法 | |
CN106503276A (zh) | 一种用于实时监控系统的时间序列数据库的方法与装置 | |
CN102708149A (zh) | 数据质量管理方法和系统 | |
CN107958080A (zh) | 一种基于ElasticSearch的大数据报表处理方法 | |
CN111291076A (zh) | 基于大数据的异常用水监测报警系统及其构建方法 | |
US9235608B2 (en) | Database performance analysis | |
CN105279143A (zh) | 一种周期性报表系统 | |
CN110287189A (zh) | 一种基于spark streaming处理流动车辆数据的方法及系统 | |
CN101710320A (zh) | 统计指标数据处理方法及装置 | |
CN106844320B (zh) | 一种财务报表整合方法和设备 | |
CN108829557A (zh) | 一种基于OpenTSDB数据库的服务器性能监控数据分析方法及系统 | |
CN110908983A (zh) | 一种基于用户画像识别的智能营销系统 | |
Sutthichaimethee et al. | Model of environmental problems priority arising from the use of environmental and natural resources in machinery sectors of Thailand | |
CN103577583A (zh) | 从大数据中高效计算用户数的方法 | |
CN116468011A (zh) | 一种报表的生成方法、装置、设备及存储介质 | |
CN110019299A (zh) | 一种用于创建或刷新分析型数据仓库的离线数据集合的方法和装置 | |
CN109768878A (zh) | 一种基于大数据的网络工单计算方法及装置 | |
CN114218216A (zh) | 资源管理方法、装置、设备及存储介质 | |
CN115618825A (zh) | 财务报表合并方法、装置、计算机可读介质及终端设备 | |
CN106933909B (zh) | 多维度数据的查询方法及装置 | |
CN115309724A (zh) | 一种用于产业分析的数据仓库设计及数据分析加速系统 | |
CN111062603B (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 |