一种查询语句的处理方法及相关装置制造方法及图纸

技术编号:34260114 阅读:16 留言:0更新日期:2022-07-24 13:38
本申请提供一种查询语句的处理方法及相关装置,可应用于大数据中的数据处理领域。本申请提供的技术方案中,先获取数据运行日志,该数据运行日志中包括M个SQL语句中每个SQL语句的执行时间信息、资源管理任务信息和调度作业信息;然后根据所述M个SQL语句的执行时间信息从所述M个SQL语句确定N个SQL语句;最后基于这N个SQL语句的资源管理任务信息和调度作业信息进行分析,以得到不合规的SQL语句。本申请的方法,提高了数据运行日志的分析速度,进一步提高了查找不符合预设合规条件的SQL语句的效率和准确度。效率和准确度。效率和准确度。

A processing method of query statements and related devices

【技术实现步骤摘要】
一种查询语句的处理方法及相关装置


[0001]本申请涉及大数据中的数据处理领域,尤其涉及一种查询语句的处理方法及相关装置。

技术介绍

[0002]客户端接收用户输入的结构化查询语言(structured query language,SQL),并将SQL语句传输给服务器,服务器根据SQL语句来进行相应的数据操作。
[0003]该服务器中可以部署“Hadoop”分布式存储系统,“Hadoop”分布式存储系统可以包括数据仓库工具(Hive)和分布式计算(MapReduce)等组件,当服务器接收到SQL语句时,该“Hadoop”大数据平台中的Hive可以将SQL语句转变成MapReduce可执行的任务,然后MapReduce根据该任务进行数据处理。但是这些SQL语句中可能包括一个或多个慢SQL语句或全局扫描SQL语句,慢SQL语句或全局扫描SQL语句会占用大量输入输出资源和计算资源,所以需要从SQL语句中查找属于慢SQL语句或全局扫描SQL语句的那部分SQL语句,然后对这些慢SQL语句或全局扫描SQL语句进行优化。
[0004]一种查找慢SQL语句或全局扫描SQL语句的方法如下:获取Hive日志,并根据该Hive日志得到预设时间段内的所有SQL语句,人为对这些SQL语句进行分析,从而判断这些SQL语句中是否存在慢SQL或全表扫描SQL的情况。这种人为分析和判断的方法需要消耗相当长的时间和精力,导致筛查效率和准确度较低,因此如何提高慢SQL或全表扫描SQL的筛查效率和准确度,为本申请亟待解决的技术问题。/>
技术实现思路

[0005]本申请提供一种查询语句的处理方法及相关装置,用以解决人为筛查慢SQL或全表扫描SQL时导致筛查效率和准确度较低的问题。
[0006]第一方面,本申请提供一种查询语句的处理方法,包括:获取数据运行日志,所述数据运行日志中包括目标时段内的M个SQL语句中每个SQL语句的信息,所述每个SQL语句的信息包括以下信息中的一种或多种:执行时间信息、资源管理任务信息和调度作业信息,M为正整数;根据所述M个SQL语句的执行时间信息从所述M个SQL语句确定N个SQL语句,所述N个SQL语句中每个SQL语句的执行时间大于预设执行时间,N为小于或等于M的正整数;根据所述N个SQL语句的资源管理任务信息和调度作业信息确定所述N个SQL语句中不符合预设合规条件的SQL语句。
[0007]本方法中,可以通过具有一定计算能力的计算设备来获取数据运行日志、确定N个SQL语句、以及从N个SQL语句中确定不合规的SQL语句,这种计算设备可以包括服务器。与由人工进行分析相比较,因为计算设备的计算能力和计算正确率均高于人工,因此可以提高不合规SQL语句的分析效率和准确率。
[0008]并且,本方法中,先基于SQL语句的运行时间筛选出运行时间不符合要求的SQL语句,再基于这些执行时间不符合要求的SQL语句的资源管理任务信息和调度作业信息来进
一步分析出不合规的SQL语句。这与直接依次分析每个SQL语句的资源管理任务信息和调度作业信息来检测不合规SQL语句的方法相比,可以减少需要分析资源管理任务信息和调度作业信息的SQL语句的数量,从而可以进一步提高不合规SQL语句的分析效率。
[0009]结合第一方面的方法,该方法还可以包括:对所述M个SQL语句的信息进行分类存储,其中,执行时间信息存储至第一数据表中,资源任务管理信息存储至第二数据表中,调度作业信息存储至第三数据表中;相应地,所述根据所述M个SQL语句的执行时间信息从所述M个SQL语句确定N个SQL语句,包括:根据所述第一数据表中的执行时间信息,从所述M个SQL语句确定所述N个SQL语句;所述根据所述N个SQL语句的资源管理任务信息和调度作业信息确定所述N个SQL语句中不符合预设合规条件的SQL语句,包括:对所述第二数据表中存储的所述N个SQL语句的资源管理任务信息和所述第三数据表中存储的所述N个SQL语句的调度作业信息进行分析,得到所述N个SQL语句中不符合预设合规条件的SQL语句。
[0010]该实现方式中,将所述M个SQL语句的执行时间信息、资源管理任务信息和调度作业信息进行分类存储,后续查找M个SQL语句的执行时间信息、资源管理任务信息和调度作业信息时只需要在各自对应的数据表中查询即可,在先后查询SQL语句不同种类的信息时不需要反复从数据运行日志中获取,从而可以避免因数据运行日志中存储的数据量很大导致查询速度慢的问题,提高SQL语句中信息的查询效率,进而提高不合规SQL语句的查询效率。
[0011]本方法中,对所述M个SQL语句的信息进行分类存储,其中,执行时间信息存储至第一数据表中,资源任务管理信息存储至第二数据表中,调度作业信息存储至第三数据表中,包括:向卡夫卡(Kafka)集群发送指示信息,其中,所述指示信息用于指示SQL语句的执行时间信息为第一主题的类别,SQL语句的资源任务管理信息为第二主题的类别,SQL语句的调度作业信息为第三主题的类别;调用所述Kafka集群将所述数据运行日志中的执行时间信息分类存储至所述第一主题,将所述数据运行日志中的资源任务管理信息分类存储至所述第二主题,将所述调度作业信息分类存储至所述第三主题;将所述第一主题中记录的信息存储至所述第一数据表中,将所述第二主题中记录的信息存储至所述第二数据表中,将所述第三主题中记录的信息存储至所述第三数据表中。
[0012]设置Kafka集群的主题类别后,Kafka集群通过自身的机制就可以将信息分布到对应的主题中,且Kafka集群每秒可以处理几十万条消息,因此通过Kafka集群可以快速将所述M个SQL语句的信息进行分类,提高信息分类的效率。
[0013]本方法中,所述数据运行日志还包括所述M个SQL语句中每个SQL语句的查询编号信息、执行时间信息与查询编号信息的第一对应关系、查询编号信息与资源管理任务信息的第二对应关系和所述查询编号信息与调度作业信息的第三对应关系,所述指示信息还用于指示所述查询编号信息为第四主题的类别;相应地,所述方法还包括:调用所述Kafka集群将所述数据运行日志中的查询编号信息分类存储至所述第四主题,以及将所述第四主题中记录的信息存储至第四数据表中;所述对所述第二数据表中存储的所述N个SQL语句的资源管理任务信息和所述第三数据表中存储的所述N个SQL语句的调度作业信息进行分析,包括:根据所述N个SQL语句的执行时间信息和所述第一对应关系从所述第四数据表中确定所述N个SQL语句的查询编号信息;根据所述N个SQL语句的查询编号信息和所述第二对应关系从所述第二数据表中确定所述N个SQL语句的资源管理任务信息;根据所述N个SQL语句的查
询编号信息和所述第三对应关系从所述第三数据表中确定所述N个SQL语句的调度作业信息。
[0014]每个SQL语句都有唯一对应的查询编号信息,根据查询编号信息和第一对应关系可以确定执行时间大于预设执行时间的N个SQL语句的查询编号信息,根据N个SQL语句的查询编号信息和第二对应关系就本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种查询语句的处理方法,其特征在于,包括:获取数据运行日志,所述数据运行日志中包括目标时段内的M个结构化查询语言SQL语句中每个SQL语句的信息,所述每个SQL语句的信息包括以下信息中的一种或多种:执行时间信息、资源管理任务信息和调度作业信息,M为正整数;根据所述M个SQL语句的执行时间信息从所述M个SQL语句确定N个SQL语句,所述N个SQL语句中每个SQL语句的执行时间大于预设执行时间,N为小于或等于M的正整数;根据所述N个SQL语句的资源管理任务信息和调度作业信息确定所述N个SQL语句中不符合预设合规条件的SQL语句。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述M个SQL语句的信息进行分类存储,其中,执行时间信息存储至第一数据表中,资源任务管理信息存储至第二数据表中,调度作业信息存储至第三数据表中;相应地,所述根据所述M个SQL语句的执行时间信息从所述M个SQL语句确定N个SQL语句,包括:根据所述第一数据表中的执行时间信息,从所述M个SQL语句确定所述N个SQL语句;所述根据所述N个SQL语句的资源管理任务信息和调度作业信息确定所述N个SQL语句中不符合预设合规条件的SQL语句,包括:对所述第二数据表中存储的所述N个SQL语句的资源管理任务信息和所述第三数据表中存储的所述N个SQL语句的调度作业信息进行分析,得到所述N个SQL语句中不符合预设合规条件的SQL语句。3.根据权利要求2所述的方法,其特征在于,所述对所述M个SQL语句的信息进行分类存储,其中,执行时间信息存储至第一数据表中,资源任务管理信息存储至第二数据表中,调度作业信息存储至第三数据表中,包括:向卡夫卡Kafka集群发送指示信息,其中,所述指示信息用于指示SQL语句的执行时间信息为第一主题的类别,SQL语句的资源任务管理信息为第二主题的类别,SQL语句的调度作业信息为第三主题的类别;调用所述Kafka集群将所述数据运行日志中的执行时间信息分类存储至所述第一主题,将所述数据运行日志中的资源任务管理信息分类存储至所述第二主题,将所述调度作业信息分类存储至所述第三主题;将所述第一主题中记录的信息存储至所述第一数据表中,将所述第二主题中记录的信息存储至所述第二数据表中,将所述第三主题中记录的信息存储至所述第三数据表中。4.根据权利要求3所述的方法,其特征在于,所述数据运行日志还包括所述M个SQL语句中每个SQL语句的查询编号信息、执行时间信息与查询编号信息的第一对应关系、查询编号信息与资源管理任务信息的第二对应关系和所述查询编号信息与调度作业信息的第三对应关系,所述指示信息还用于指示所述查询编号信息为第四主题的类别;相应地,所...

【专利技术属性】
技术研发人员:楼亚楠翁晓俊王能
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1