首页> 中国专利> 一种通过多维度KPI函数对SQL查询语句进行扩充的方法

一种通过多维度KPI函数对SQL查询语句进行扩充的方法

摘要

本发明公开了一种通过多维度KPI函数对SQL查询语句进行扩充的方法。在该方法中,首先定义统计指标量的相关维度,以及通过各个维度计算统计指标量值的规则,生成多维度KPI函数;利用多维度KPI函数预先查询数据库,并将查询结果保存在多维度KPI函数结果表中;SQL查询语句调用多维度KPI函数,并提供传入参数值查询相应的多维度KPI函数结果表,直接获取统计指标量。利用本发明所提供的方法,SQL查询语句通过简单的调用方式即可获取实时性的大量数据处理结果,无需直接通过SQL查询处理大量数据,可以很好地解决SQL查询语句在实时监控报表中的查询效率问题。

著录项

  • 公开/公告号CN103020280A

    专利类型发明专利

  • 公开/公告日2013-04-03

    原文格式PDF

  • 申请/专利权人 北京讯鸟软件有限公司;

    申请/专利号CN201210580083.7

  • 发明设计人 吴为民;武继孔;班红冠;

    申请日2012-12-27

  • 分类号

  • 代理机构北京汲智翼成知识产权代理事务所(普通合伙);

  • 代理人陈曦

  • 地址 100086 北京市海淀区知春路113号银网中心A座302室

  • 入库时间 2024-02-19 18:53:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-16

    授权

    授权

  • 2013-07-03

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20121227

    实质审查的生效

  • 2013-04-03

    公开

    公开

说明书

技术领域

本发明涉及一种SQL查询语句扩充方法,尤其涉及一种通过多维 度KPI(Kernel Programming Interface,内核编程接口)函数对SQL 查询语句进行扩充,从而提高海量数据查询效率的方法,属于数据库 技术领域。

背景技术

结构化查询语言(Structured Query Language,简称SQL)是一 种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理 关系数据库系统。它不要求用户指定对数据的存放方法,也不需要用 户了解具体的数据存放方式,所以具有不同底层结构的数据库系统可 以使用相同的SQL查询语句作为数据输入与管理的接口。

但是,传统的SQL查询语句在面临大数据量实时查询任务时,存 在明显的效率缺陷,使其不能直接适用于大量数据的实时监控处理。 为了解决这一技术问题,人们先后提出了多种技术解决方案。例如在 申请号为201210075512.5的中国专利申请中,公开了一种大数据量的 数据查询方法,包括如下步骤:S10:定义增量数据捕获方式;S11: 定义增量捕获调度执行计划;S12:执行增量数据定期归集;S13:执 行数据统计结果查询。该技术方案把复杂的数据统计查询过程包分解 成两个过程,统计计算归集和实时查询;将统计计算归集过程放在后 台运行,并且归集过程只归集增量数据,从而大大提高了大数据量统 计查询的执行效率。

另外,李宝莲等在论文《基于SQL Server应用的大数据量实时处 理》(刊载于《无线电工程》2007年03期)中,针对大数据量的实时 处理问题,结合SQL Server的功能特点,给出了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查询 语句具体如下:

SELECT epp.bm_ name AS'组别',epp.user_id AS'工号', epp.user_name AS'姓名',count(DISTINCT CASE WHEN epp.status='A01'THEN epp.eppid ELSE NULL END)AS'签单成功 量',count(DISTINCT CASE WHEN epp.status='A02'THEN epp.eppid ELSE NULL END)AS'签单跟进量',count(DISTINCT CASE WHEN epp.reason='B02'THEN epp.eppid ELSE NULL END)AS'联系失败 量',count(DISTINCT CASE WHEN epp.reason='B03'THEN epp.eppid ELSE NULL END)AS'跟进失败量'FROM eppgroup by epp.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查询语句的示例:

SELECT user.bm_name AS'组别',user.user_id AS'工号', user.user_name AS'姓名',KPI(1,user.user_id)AS'签单成功 量',KPI(2,user.user_id)AS'签单跟进量',KPI(3, user.user_id)AS'联系失败量',KPI(4,user.user_id)AS' 跟进失败量'FROM user

如上所述,使用多维度KPI函数扩充的SQL查询语句,查询只有几 万数据量公司的员工表,将查询的员工ID值传给多维度KPI函数,该多 维度KP I函数会将提前计算好的统计指标量返回,SQL查询语句就类似 于查询了一个常量的统计指标值。而传统的SQL查询语句,需在几百万 数据量的业务流表上进行查询统计处理,自然查询效率要低很多。另 外,利用该多维度KP I函数还可以将需要在同一时间处理的事务,分散 到各个时段进行处理。因此相较于基于SQL查询的实时监控统计而言, 通过多维度KPI函数提供统计处理,有效分担了数据库的查询处理压 力。

表1显示了基于SQL查询进行的实时监控统计和基于多维度KPI 函数进行的实时监控统计的具体区别:

比较项 传统SQL查询 多维度KPI函数 数据库压力 资源利用率 查询效率 复杂度

表1

从表1所示的比较结果来看,使用多维度KPI函数扩充的SQL查询语 句比传统的SQL查询语句的效率高,并且在资源利用率、复杂度等方面 都有明显的优势。因此,该方法更适合在实时监控报表中使用。

上面对本发明所提供的通过多维度KPI函数对SQL查询语句进行扩 充的方法进行了详细的说明。对本领域的一般技术人员而言,在不背离 本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对 本发明专利权的侵犯,将承担相应的法律责任。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号