一种确定异常查询请求的方法及装置制造方法及图纸

技术编号:23084838 阅读:28 留言:0更新日期:2020-01-11 01:04
本发明专利技术实施例公开了一种确定异常查询请求的方法及装置,其中方法包括:从数据库慢查询日志中确定各查询类别对应的查询请求,针对任一查询类别,根据该查询类别对各预设指标的历史值确定该查询类别对各预设指标的预测值,并根据各预设指标的当前值和预测值确定该查询类别对应的查询请求是否为异常查询请求。本发明专利技术实施例中,通过对数据库慢查询日志中的查询请求进行分类统计,可以基于每个查询类别的特征对每个查询类别对应的查询请求进行异常定位,从而可以提高异常查询请求定位的准确性;且,通过使用各预设指标的历史值定位异常查询请求,可以无需人工设置全局指标,从而可以节约人力成本。

A method and device for determining abnormal query request

【技术实现步骤摘要】
一种确定异常查询请求的方法及装置
本专利技术涉及数据处理领域,尤其涉及一种确定异常查询请求的方法及装置。
技术介绍
数据库服务器是一种常用的存储节点,业务系统可以向数据库服务器发送查询请求,以获取数据库服务器中存储的业务数据。现阶段,随着业务系统的交易量的逐渐增多,业务系统对数据库服务器的查询频率也相应增大,比如其查询频率可以达到每分钟数百甚至数千条;在该种情况下,一条查询请求的延时响应会影响后续所有的查询请求,由于数据库服务器无法响应本业务系统或其它业务系统的后续查询请求,因此会导致各个业务系统的业务处理工作出现故障。由此可知,准确定位延时响应的异常查询请求,对于及时排查故障、保证各个业务系统的正常工作是非常重要的。数据库慢查询日志是定位异常查询请求常用的一种日志文件,该日志文件可以记录查询时长超过指定时长的所有查询请求。在一种现有的实现方式中,在获取数据库慢查询日志后,若数据库慢查询日志中查询请求的总数量超过预设数量,或者数据库慢查询日志中查询请求的总时长超过预设时长,则可以将数据库慢查询日志中的全部查询请求确定为异常查询请求;其中,预设数量或预设时长由管理人员预先设置。由此可知,上述实现方式使用查询请求的总数量或总时长等全局指标对所有的查询请求进行统一定位,可能会将数据库慢查询日志中的非异常查询请求确定为异常查询请求,导致定位的异常查询请求不准确;且,全局指标通过人为设置,若要保持全局指标的准确性,则可能需要人为频繁进行更新,从而需要较大的成本。综上,目前亟需一种确定异常查询请求的方法,用以解决现有技术采用人为设置的全局指标(即数据库慢查询日志中查询请求的预设总数量或预设总时长)来定位异常查询请求所导致的异常查询请求定位的准确性低、成本高的技术问题。
技术实现思路
本专利技术实施例提供一种确定异常查询请求的方法,用以解决现有技术采用人为设置的全局指标(即数据库慢查询日志中查询请求的预设总数量或预设总时长)来定位异常查询请求所导致的异常查询请求定位的准确性低、成本高的技术问题。第一方面,本专利技术实施例提供了一种确定异常查询请求的方法,所述方法包括:从数据库慢查询日志中确定第一时段内各查询类别对应的查询请求;所述数据库慢查询日志用于记录查询时长超出时间阈值的各查询请求的日志信息;进一步地,针对任一查询类别,根据所述查询类别对应的查询请求的日志信息,确定所述查询类别在所述第一时段内各预设指标的当前值,并根据所述查询类别在多个历史时段内各预设指标的历史值,确定所述查询类别在所述第一时段内各预设指标的预测值,进而根据所述各预设指标的当前值和所述各预设指标的预测值,确定所述查询类别对应的查询请求是否为异常查询请求;所述多个历史时段为距离所述第一时段最近的多个历史时段。在上述设计中,通过对数据库慢查询日志中的查询请求进行分类统计,可以基于每个查询类别的特征对每个查询类别对应的查询请求进行异常定位,相比于现有技术采用全局指标对全部查询请求进行异常定位的方式来说,可以准确地定位出数据库慢查询日志中的每条异常查询请求;且,上述设计基于各预设指标的历史值确定各预设指标的当前值的异常程度,而无需人工设置全局指标,从而可以基于各预设指标的历史值自动地对异常查询请求进行定位,在节约人力成本的同时进一步地提高异常查询请求定位的准确性。在一种可能的设计中,所述从数据库慢查询日志中确定第一时段内各查询类别对应的查询请求,包括:针对于所述数据库慢查询日志中的任一查询请求,删除所述查询请求中的查询变量得到所述查询请求的查询语句,将所述查询请求的查询语句与慢查询模式库中多个预设查询类别的查询语句进行匹配,并将匹配成功的预设查询类别确定为所述查询请求所属的查询类别;进一步地,针对于所述数据库慢查询日志中未匹配到预设查询类别的查询请求,对所述未匹配到预设查询类别的查询请求的查询语句进行聚类,并根据聚类结果设置每类未匹配到预设查询类别的查询请求所属的查询类别和对应的查询语句;将每类未匹配到预设查询类别的查询请求所属的查询类别和对应的查询语句对应存储在所述慢查询模式库中。在上述设计中,通过在慢查询模式库中存储多个查询类别与查询语句的对应关系,可以在确定每一条查询请求的查询语句后,直接查询慢查询模式库确定每一条查询请求所属的查询类别,从而可以快速区分不同查询类别对应的查询请求,提高定位异常查询请求的效率;且,对于在慢查询模式库中未查询到的查询请求,通过使用聚类这些查询请求得到的多个新的查询类别与查询语句的对应关系更新慢查询模式库,可以不断完善慢查询模式库,使其存储的查询类别与查询语句的对应关系更加全面,从而可以使得后续查询更为灵活,且查询效率更高。在一种可能的设计中,所述根据所述各预设指标的当前值和所述各预设指标的预测值,确定所述查询类别对应的查询请求是否为异常查询请求,包括:针对于任一预设指标,若所述预设指标的当前值和所述预设指标的预测值的差值大于预设差值,则确定所述预设指标为异常指标;进一步地,若所述各预设指标中异常指标的数量大于第一预设阈值且小于或等于第二预设阈值,则确定所述查询类别对应的查询请求属于第一级异常查询请求;若所述各预设指标中异常指标的数量大于所述第二预设阈值,则确定所述查询类别对应的查询请求属于第二级异常查询请求。在上述设计中,通过使用查询类别对应的查询请求的日志信息确定每个预设指标是否为异常指标,并根据异常指标的数量确定查询类别对应的查询请求的异常等级,实现了基于各预设指标的综合异常情况准确定位查询请求的异常程度,由于使用全面的预设指标定位异常查询请求,因此定位出的异常查询请求会较为准确。在一种可能的设计中,在所述数据库慢查询日志的不同查询类别中属于所述第二级异常查询请求的查询类别的数量大于第三预设阈值时,对所述数据库慢查询日志进行告警;相应地,在所述数据库慢查询日志的不同查询类别中属于所述第二级异常查询请求的查询类别的数量小于或等于所述第三预设阈值时,若所述数据库慢查询日志中查询请求的数量大于第四预设阈值,或者,若所述数据库慢查询日志中查询请求的查询总时长大于第五预设阈值,则对所述数据库慢查询日志进行告警。上述设计定义了三种全局告警策略,第一种全局告警策略在数据库慢查询日志中包含第二级异常查询请求的查询类别的数量大于第三预设阈值时执行全局告警,第二种全局告警策略和第三种全局告警策略作为第一种全局告警的补充告警策略,在数据库慢查询日志中查询请求的数量大于第四预设阈值或查询请求的总时长大于第五预设阈值时执行全局告警;由此可知,通过联合第一种全局告警策略、第二种全局告警策略和第三种全局告警策略,可以较为全面的监控数据库服务器的运行状态,避免数据库服务器因某一查询请求阻塞而导致各个业务系统故障,从而保证数据库服务器的高可用性。在一种可能的设计中,任一查询类别在各预设指标下的值包括但不限于:所述查询类别对应的查询请求的数量、所述查询类别对应的查询请求的查询总时长、所述查询类别对应的查询请求的最长查询时长、所述查询类别对应的查询请求的最短查询时长、所述查询类别对应的查询请求的本文档来自技高网
...

【技术保护点】
1.一种确定异常查询请求的方法,其特征在于,所述方法包括:/n从数据库慢查询日志中确定第一时段内各查询类别对应的查询请求;所述数据库慢查询日志用于记录查询时长超出时间阈值的各查询请求的日志信息;/n针对任一查询类别,根据所述查询类别对应的查询请求的日志信息,确定所述查询类别在所述第一时段内各预设指标的当前值;根据所述查询类别在多个历史时段内各预设指标的历史值确定所述查询类别在所述第一时段内各预设指标的预测值,所述多个历史时段为距离所述第一时段最近的多个历史时段;根据所述各预设指标的当前值和所述各预设指标的预测值,确定所述查询类别对应的查询请求是否为异常查询请求。/n

【技术特征摘要】
1.一种确定异常查询请求的方法,其特征在于,所述方法包括:
从数据库慢查询日志中确定第一时段内各查询类别对应的查询请求;所述数据库慢查询日志用于记录查询时长超出时间阈值的各查询请求的日志信息;
针对任一查询类别,根据所述查询类别对应的查询请求的日志信息,确定所述查询类别在所述第一时段内各预设指标的当前值;根据所述查询类别在多个历史时段内各预设指标的历史值确定所述查询类别在所述第一时段内各预设指标的预测值,所述多个历史时段为距离所述第一时段最近的多个历史时段;根据所述各预设指标的当前值和所述各预设指标的预测值,确定所述查询类别对应的查询请求是否为异常查询请求。


2.根据权利要求1所述的方法,其特征在于,所述从数据库慢查询日志中确定第一时段内各查询类别对应的查询请求,包括:
针对于所述数据库慢查询日志中的任一查询请求,删除所述查询请求中的查询变量得到所述查询请求的查询语句,将所述查询请求的查询语句与慢查询模式库中多个预设查询类别的查询语句进行匹配,并将匹配成功的预设查询类别确定为所述查询请求所属的查询类别;
针对于所述数据库慢查询日志中未匹配到预设查询类别的查询请求,对所述未匹配到预设查询类别的查询请求的查询语句进行聚类,并根据聚类结果设置每类未匹配到预设查询类别的查询请求所属的查询类别和对应的查询语句;将每类未匹配到预设查询类别的查询请求所属的查询类别和对应的查询语句对应存储在所述慢查询模式库中。


3.根据权利要求1所述的方法,其特征在于,所述根据所述各预设指标的当前值和所述各预设指标的预测值,确定所述查询类别对应的查询请求是否为异常查询请求,包括:
针对于任一预设指标,若所述预设指标的当前值和所述预设指标的预测值的差值大于预设差值,则确定所述预设指标为异常指标;
若所述各预设指标中异常指标的数量大于第一预设阈值且小于或等于第二预设阈值,则确定所述查询类别对应的查询请求属于第一级异常查询请求;若所述各预设指标中异常指标的数量大于所述第二预设阈值,则确定所述查询类别对应的查询请求属于第二级异常查询请求。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述数据库慢查询日志的不同查询类别中属于所述第二级异常查询请求的查询类别的数量大于第三预设阈值时,对所述数据库慢查询日志进行告警;
在所述数据库慢查询日志的不同查询类别中属于所述第二级异常查询请求的查询类别的数量小于或等于所述第三预设阈值时,若所述数据库慢查询日志中查询请求的数量大于第四预设阈值,或者,若所述数据库慢查询日志中查询请求的查询总时长大于第五预设阈值,则对所述数据库慢查询日志进行告警。


5.根据权利要求1至4任一项所述的方法,其特征在于,任一查询类别在各预设指标下的值包括但不限于:
所述查询类别对应的查询请求的数量、所述查询类别对应的查询请求的查询总时长、所述查询类别对应的查询请求的最长查询时长、所述查询类别对应的查询请求的最短查询时长、所述查询类别对应的查询请求的中位数查询时长、所述查询类别对应的查询请求的95%分位查询时长。


6.一种确定异常查询请求的装置,其特征在于,所述装置包括:
处理模块,用于从数据库慢查询日志中确定第一时段内各查询类别对应的查询请求;所述数据库慢查询...

【专利技术属性】
技术研发人员:赵阳林诰刘金杰乐振浒黄明雄
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1