一种数据处理方法、装置、电子设备及存储介质与流程

文档序号:31146168发布日期:2022-08-16 23:47阅读:44来源:国知局
一种数据处理方法、装置、电子设备及存储介质与流程

1.本公开涉及数据处理领域,尤其涉及数据库领域,具体涉及一种数据处理方法、装置、电子设备及存储介质。


背景技术:

2.业务系统可以基于用户给定的查询信息,生成针对数据库的查询语句,例如sql(structured query language,结构化查询语言)语句,并将所生成的查询语句发送至数据库系统,以使得数据库系统进行数据查询。
3.但是,针对数据库查询而言,存在慢查询的问题,例如慢sql(structured query language,结构化查询语言)问题。由于慢查询的执行时间过长,一直是影响数据库性能的重要因素,并且,极大影响用户的体验。


技术实现要素:

4.本公开提供了一种数据处理方法、装置、电子设备以及存储介质。
5.根据本公开的一方面,提供了一种数据处理方法,包括:
6.从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;其中,所述指定条件包括执行时长超过预定时长阈值;
7.分别对所述至少一个目标查询语句进行去隐私化处理,得到至少一个待利用语句;
8.根据所述至少一个待利用语句的文本内容,对所述至少一个待利用语句进行聚类,得到至少一个语句簇;
9.针对所述至少一个语句簇中的每一语句簇,输出对应的处理任务。
10.根据本公开的第二方面,提供了一种数据处理装置,包括:
11.第一确定模块,用于从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;其中,所述指定条件包括执行时长超过预定时长阈值;
12.第一处理模块,用于分别对所述至少一个目标查询语句进行去隐私化处理,得到至少一个待利用语句;
13.聚类模块,用于根据所述至少一个待利用语句的文本内容,对所述至少一个待利用语句进行聚类,得到至少一个语句簇;
14.输出模块,用于针对所述至少一个语句簇中的每一语句簇,输出对应的处理任务。
15.根据本公开的第三方面,提供了一种电子设备,包括:
16.至少一个处理器;以及
17.与所述至少一个处理器通信连接的存储器;其中,
18.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行任一种数据处理方法。
19.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储
介质,其中,所述计算机指令用于使所述计算机执行任一种数据处理方法。
20.根据本公开的第五方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现任一种数据处理方法。
21.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.附图用于更好地理解本方案,不构成对本公开的限定。其中:
23.图1是本公开实施例所提供的数据处理方法的流程图;
24.图2是本公开实施例所提供的数据处理方法的另一流程图;
25.图3是本公开实施例所提供的针对一处理任务的处理界面示意图;
26.图4是本公开实施例所提供的数据处理方法所适用的系统架构的示意图;
27.图5是本公开实施例所提供的数据处理装置的结构示意图;
28.图6是本公开实施例所提供的数据处理装置的另一结构示意图;
29.图7是用来实现本公开实施例的数据处理方法的电子设备的框图。
具体实施方式
30.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
31.业务系统作为面向用户的系统,可以基于用户给定的查询信息,生成针对数据库的查询语句,例如sql(structured query language,结构化查询语言)语句,并将所生成的查询语句发送至数据库系统,以使得数据库系统进行数据查询。示例性的,业务系统可以为文库平台,云存储平台、各类信息处理系统,等等。
32.但是,针对数据库查询而言,由于业务系统的代码内容不够优化等因素,可能导致慢查询的问题,例如慢sql(structured query language,结构化查询语言)问题。由于慢查询的执行时间过长,一直是影响数据库性能的重要因素,并且,极大影响用户的体验。并且,随着数据库构架的复杂化与海量数据的增加,慢查询带来的问题也日益突出:导致整个数据库集群的同步延迟、业务的主从延迟;主机及数据库资源消耗大,影响其他查询的性能,数据库吞吐能力下降;查询请求堆积,最终导致数据库业务响应慢,甚至完全无法响应,等等。
33.当前存在对慢sql的简易处理方式,但是只是对开发环境的慢sql进行识别然后通知对应的处理人,从而进行相应的处理,并没有对线上的业务系统已经存在的慢sql问题进行处理,并且由于识别出的慢sql中可能包含用户信息,会导致用户信息泄露。
34.基于上述问题,本公开实施例提供了一种数据处理方法、装置、电子设备以及存储介质,以实现兼顾用户信息不被泄露的同时,高效处理慢查询语句的目的。
35.下面首先对本公开实施例提供的一种数据处理方法进行介绍。
36.其中,本公开实施例提供的一种数据处理方法可以应用于电子设备,该电子设备
可以为终端设备或服务器,本公开不对电子设备的具体形态进行限定。另外,本公开实施例所提供的一种数据处理方法可以应用于集群、分布式或其他任一含有慢查询语句处理需求的应用场景,本公开实施例对于具体场景不做限定。
37.另外,本公开实施例所提供的一种数据处理方法的执行主体可以为数据处理装置。示例性的,当该数据处理方法应用于终端设备时,该数据处理装置可以为运行于终端设备中的功能软件,例如:用于进行慢查询语句处理的工具软件;当然,该数据处理装置也可以为现有客户端中的插件,例如:用于进行软件处理的客户端中的插件。示例性的,当该数据处理方法应用于服务器时,该数据处理装置可以为运行于服务器中的计算机程序,该计算机程序可以用于发起慢查询语句处理。
38.并且,本公开所涉及的慢查询是指查询时长超过预定时间阈值,相应的,慢查询语句为查询时长超过预定时长阈值的查询语句。其中,该预定时长阈值可以根据实际情况设定,例如:对于需要即时响应的查询场景而言,预定时长阈值可以例如0.5秒、1秒、2秒等等;而对于其他对于响应速度要求较低的场景而言,预定时长阈值可以例如0.5分钟、1分钟等等。
39.另外,示例性的,针对采用sql语句进行查询的数据库而言,所谓的慢查询的问题,可以称为慢sql的问题。本公开并不对慢查询所利用的查询语句的类型进行具体限定。
40.本公开实施例提供的一种数据处理方法,可以包括如下步骤:
41.从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;其中,所述指定条件包括执行时长超过预定时长阈值;
42.分别对所述至少一个目标查询语句进行去隐私化处理,得到至少一个待利用语句;
43.根据所述至少一个待利用语句的文本内容,对所述至少一个待利用语句进行聚类,得到至少一个语句簇;
44.针对所述至少一个语句簇中的每一语句簇,输出对应的处理任务。
45.本方案中,在确定出至少一个查询语句中的、符合指定条件的至少一个目标查询语句后,通过对至少一个目标查询语句进行去隐私化处理,使得信息避免被泄露;并且,考虑到去隐私化处理后的至少一个待利用语句中包含具有共性内容的语句,因此,对至少一个待利用语句进行聚类,并按照聚类得到的至少一个语句簇中的每一语句簇分别输出处理任务,这样,相对于为每个目标查询语句设置处理任务而言,处理任务的数量大大降低。可见,通过本方案可以在兼顾用户信息不被泄露的同时,高效处理慢查询语句。
46.下面结合附图,对本公开所提供的一种数据处理方法进行示例性介绍。
47.如图1所示,本公开所提供的一种数据处理方法,可以包括以下步骤:
48.s101:从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;
49.其中,所述指定条件包括执行时长超过预定时长阈值;
50.本公开实施例中,目标业务系统运行时会产生日志数据,日志数据中包括至少一个查询语句;那么,可以从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句,从而对符合指定条件的至少一个目标查询语句进行后续的处理。其中,所述指定条件包括执行时长超过预定时长阈值,相应的,目标查询语句可以为慢查询语句,另外,在实际应用中,慢查询语句也可以称为具有慢查询状态的语句或者存在慢查询问题的语句。示例性
的,业务系统可以为文库平台,云存储平台、各类信息处理系统,等等。
51.其中,从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句的具体实现方式,本公开实施例并不做限定,任一种能够识别查询语句是否符合指定条件的方式,均可以应用于本公开实施例。示例性的,从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句的方式可以包括:获取至少一个查询语句;针对每一查询语句,若基于该查询语句的执行时长和/或explain结果,识别出该查询语句符合指定条件,将该查询语句确定为目标查询语句。其中,若基于该查询语句的执行时长,识别该查询语句是否符合指定条件,则可以预先设置预定时长阈值,在对该查询语句进行识别时,将该查询语句的执行时长与预定时长阈值进行比对,若超过预定时长阈值,则判定该查询语句符合指定条件;若基于该查询语句的explain结果,识别该查询语句是否符合指定条件,则可以对该查询语句执行explain命令(用于对查询语句的查询执行计划进行检测),得到语法分析结果,即explain结果,并对explain结果进行分数评估,从而基于评分分数是否满足针对慢查询所设置的分数条件,即基于评分分数是否满足针对指定条件所设置的分数条件,来确定该查询语句是否符合指定条件;而若基于该查询语句的执行时长和explain结果,识别该查询语句是否符合指定条件,则可以在执行时长超过预定时长阈值,且评估分数满足针对慢查询所设置的分数条件时,判定该查询语句符合指定条件。可以理解的是,explain结果可以包括多列内容:查询类型(select_type)、扫描的方式(type)、扫描的行数(rows)、实际使用的索引(key)等等,可以对影响查询效率的列的不同取值设置不同评估分数,从而基于总的评估分数来识别是否符合指定条件。
52.另外,在实际应用时,考虑到各种运行环境下,目标业务系统都可以调用数据库系统从而产生日志数据,而所产生的日志数据中包括至少一个查询语句,因此,可以灵活的选定所需的运行环境的至少一个查询语句,进行指定运行环境下的慢查询的处理。那么,从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句的方式可以包括:从指定运行环境下产生的至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;其中,所述指定运行环境包括:研发环境、测试环境、异构环境和生产环境中的至少一个环境。需要说明的是,本公开实施例可以对指定运行环境下产生的日志数据进行采集,可以是实时采集,也可以定时采集等,这都是合理的;所谓研发环境,即开发环境,此时为对代码层面的开发,或编程;所谓测试环境,即对研发环境所产生的代码内容进行测试的环境;所谓异构环境,也称准入环境,即为测试环境的进一步测试,此时是完全模拟生产环境,对研发环境产生的代码内容进行进一步测试;生产环境,此时所开发的代码内容已经上线,供用户使用。
53.基于上述实现方式,可以灵活地对任一指定运行环境下的符合指定条件的目标查询语句进行处理,最终实现对业务代码进行灵活优化。并且,可以选择多个运行环境,从而层层拦截以及优化慢查询,达到全面处理的效果。
54.需要说明的是,上述对指定运行环境、确定符合指定条件的各个目标查询语句的方式的说明仅仅作为示例,并不应构成对本公开的限定。
55.s102:分别对至少一个目标查询语句进行去隐私化处理,得到至少一个待利用语句;
56.其中,每一目标查询语句中都可能包含有用户信息相关的内容,此时,为了保证信
息的安全以及保护个人隐私,可以对该目标查询语句进行去隐私化处理,也就是对目标查询语句中的用户信息进行去隐私化。可以理解的是,通过对目标查询语句中的用户信息进行去隐私化,可以实现对目标查询语句的数据脱敏。
57.示例性的,对该目标查询语句进行去隐私化处理的方式可以为:关键信息隐藏,或关键信息替换,其中,这里的关键信息即为需要去隐私化的用户信息。例如:目标查询语句中包含有个人姓名、住址等的信息,则可以将这些信息隐藏,可以不显示这部分内容,也可以将这部分内容替换为固定字符,例如“?或*”。
58.另外,可以预先确定出涉及到用户信息的目标字段,在进行去隐私化时,将目标字段对应的字段内容进行去隐私化。例如:一慢查询语句为select*from persons where city=

beijing’;预先设定目标字段为:from,where,则去隐私化处理后为select*from?where%?=

?’。
59.需要强调的是,上述的对目标查询语句进行去隐私化处理的具体实现方式仅仅作为示例,并不应该构成对本公开实施例的限定。另外,本公开的技术方案中,所涉及的用户信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
60.s103:根据至少一个待利用语句的文本内容,对至少一个待利用语句进行聚类,得到至少一个语句簇;
61.由于查询语句是将具体的查询信息赋予到某类查询类型的语句中后所形成的的语句,而查询信息通常涉及到用户信息,那么,为了防止用户信息泄露,并且考虑到去隐私化处理后的至少一个目标查询语句中包含具有共性内容的语句,可以对至少一个待利用语句,进行聚类,得到至少一个语句簇,从而根据聚类的结果,执行后续的数据处理,最终实现对慢查询语句的高效处理。
62.可以理解的是,若至少一个待利用语句都相同,则可以得到一个语句簇;若至少一个待利用语句中存在相同的语句,则可以得到的语句簇的数量少于至少一个待利用语句的数量。
63.需要说明的是,根据所述至少一个待利用语句的文本内容,对至少一个待利用语句进行聚类的方式可以存在多种。
64.示例性的,在一种实现方式中,可以对比至少一个待利用语句的字符串,将字符串相同的目标查询语句,归为一个簇,从而得到至少一个语句簇。
65.示例性的,在另一种实现方式中,根据所述至少一个待利用语句的文本内容,对至少一个待利用语句进行聚类,得到至少一个语句簇,可以包括:针对所述至少一个待利用语句中的每一待利用语句进行哈希运算,得到所述待利用语句对应的签名;根据所述待利用语句对应的签名,得到至少一个语句簇。
66.对待利用语句进行哈希运算得到的签名可以为8、16、32位的字符串,该签名可以作为目标查询语句的标识,从而用来对待利用语句进行检索与分析。通过哈希运算,可以得到固定大小的字符串,从而根据各个哈希运算结果,更高效的对待利用语句进行聚类。其中,根据所述待利用语句对应的签名,得到至少一个语句簇的条件可以为:签名相同,或者,签名相似度大于预定阈值,等等。
67.s104:针对至少一个语句簇中的每一语句簇,输出对应的处理任务;
68.其中,所述处理任务为用于指示针对该语句簇进行指定处理的任务。
69.当对去隐私化后的各个目标查询语句聚类完成之后,可以针对聚类得到的每一语句簇,进行处理任务的输出。相对于现有技术而言,本方案并不是对每一个慢查询语句进行任务输出,这样避免了大量的人力去对每一个慢查询语句进行处理,从而实现高效地对慢查询语句进行处理。需要说明的是,在实际应用中,聚类后得到的语句簇的数量大大少于聚类前的语句数量。
70.其中,所述指定处理可以为对该语句簇中的语句对应的业务代码内容进行优化的处理,相应的,处理任务可以为用于指示处理人员对该语句簇中的语句对应的业务代码内容进行优化的任务;这样,通过输出针对语句簇的处理任务,处理人员可以对该语句簇中语句对应的代码内容进行定位,从而完成对代码内容的优化。当然,指定处理还可以为其他类型的处理,例如:对该语句簇中的语句对应的业务代码内容仅仅进行定位的处理,等等,本公开实施例对此不做限定。
71.示例性的,在一种实现方式中,针对至少一个语句簇中每一语句簇,输出对应的处理任务,包括:针对每一语句簇,确定该语句簇的语句标识,作为该语句簇的任务内容,例如:将该语句簇中的语句的签名作为任务内容;针对每一语句簇,输出包含有该语句簇的语句标识的处理任务。其中,每一语句簇的语句标识关联有该语句簇的一待利用语句,这样,处理人员可以通过每一语句簇的语句标识,从包含有关于语句标识与各语句簇的映射关系的数据表中,定位到该语句簇的一待利用语句,然后利用所定位的语句,进行后续的代码内容的定位以及优化。
72.示例性的,在一种实现方式中,针对至少一个语句簇中的每一语句簇,输出对应的处理任务,包括:针对每一语句簇,确定该语句簇对应处理对象,并输出对应的处理任务;其中,所述处理对象为该语句簇中的一待利用语句。需要说明的是,为了实现高效且直观的对慢查询语句进行处理的目的,在输出针对每一语句簇的处理任务时,可以将每一语句簇所涉及到的语句内容,进行输出。并且,由于同一语句簇中所包含的语句相同,因此,针对每一语句簇,可以利用该语句簇中的任一待利用语句,即去隐私化后的任一查询语句,构成该语句簇对应的任务内容。
73.另外,针对从指定运行环境下产生的至少一个查询语句,确定符合指定条件的至少一个目标查询语句的情况而言,针对所得到的每一语句簇,输出对应的处理任务,包括:
74.针对所述至少一个语句簇中的每一语句簇,向指定运行环境所对应的处理端,输出该语句簇对应的处理任务。其中,指定运行环境所对应的处理端为指定运行环境的处理人员所使用的处理端,通过向指定运行环境所对应的处理端输出处理任务,可以使得指定运行环境的处理人员,能够获知处理任务,从而对处理任务进行相应的处理。
75.本方案中,在确定出至少一个查询语句中的、符合指定条件的至少一个目标查询语句后,通过对至少一个目标查询语句进行去隐私化处理,使得信息避免被泄露;并且,考虑到去隐私化处理后的至少一个待利用语句中包含具有共性内容的语句,因此,对至少一个待利用语句进行聚类,并按照聚类得到的至少一个语句簇中的每一语句簇分别输出处理任务,这样,相对于为每个目标查询语句设置处理任务而言,处理任务的数量大大降低。可见,通过本方案可以在兼顾用户信息不被泄露的同时,高效处理慢查询语句。
76.基于上述的数据处理方法,在本公开的另一实施例中,还提供了另一种数据处理
方法,如图2所示,可以包括如下步骤:
77.s201:从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;
78.其中,所述指定条件包括执行时长超过预定时长阈值;
79.s202:分别对至少一个目标查询语句进行去隐私化处理,得到至少一个待利用语句;
80.s203:根据至少一个待利用语句的文本内容,对至少一个待利用语句进行聚类,得到至少一个语句簇;
81.s204:针对至少一个语句簇中的每一语句簇,输出对应的处理任务;
82.其中,所述处理任务为用于指示针对该语句簇进行指定处理的任务;
83.步骤s201-s204与上述s101-s104的内容类似,在此不做赘述。
84.s205:确定待执行的查询语句;
85.由于系统运行过程中不仅存在已经执行的查询语句,还会产生新的、未执行的查询语句;因此,当接收到任一未执行的查询语句时,可以将该未执行的查询语句作为待执行的查询语句,从而针对该待执行的查询语句,执行后续的数据处理步骤。
86.需要说明的是,待执行的查询语句可以是从未被执行的查询语句,也可以是针对之前执行过的查询语句改进后的查询语句,在此并不做限定。
87.s206:对待执行的查询语句进行去隐私化处理,得到待分析语句;
88.当目标业务系统生成携带有查询语句的业务请求,即产生待执行查询语句时,在待执行的查询语句下发给数据库系统之前,可以对待执行的查询语句中的用户信息进行去隐私化处理,得到待分析语句,并对待分析语句执行后续的处理方法的步骤,从而达到对慢查询语句的实时管控。
89.对待执行的查询语句中的用户信息进行去隐私化处理的方式与上述的对目标查询语句中用户信息的去隐私化处理的方式相同。示例性的,在一种实现方式中,对待执行的查询语句进行去隐私化处理的方式为:对待执行的查询语句中包含用户信息的部分进行隐藏,或者信息替换;例如:将包含个人姓名、地址等信息的部分替换为“?或*”等,当然,并不限于此。
90.本公开的技术方案中,所涉及的用户信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
91.s207:若检测到待分析语句属于至少一个语句簇的任一个,则待执行的查询语句进行拦截和/或报警;
92.需要说明的是,至少一个语句簇为上述对目标查询语句进行聚类得到的,目标查询语句为慢查询语句,也就是,目标查询语句是符合指定条件的语句,因此,若待分析语句为属于至少一语句簇的任一个,则该待分析语句对应的待执行的查询语句为慢查询语句,也就是待执行的查询语句为符合指定条件的语句,可以直接对待执行的查询语句进行拦截和/或报警。可以理解的是,所谓的拦截,即将待执行的查询语句拦截在数据库系统外,使得数据库系统接收不到该待执行的查询语句;并且,在实际应用中,报警方式可以包括:发送报警通知、报警信号、发出警报声音、或任一种能够提醒对应的处理人员的报警通知。示例性的,检测待分析语句是否属于至少一个语句簇的任一个的方式可以为:检测待分析语句的字符串是否与至少一个语句簇的任一个的字符串相同,或者,检测待分析语句哈希后得
到的结果是否与至少一个语句簇的任一个的哈希结果相同,若相同,则检测到待分析语句属于至少一个语句簇的任一个。
93.另外,为了避免由于对任一慢查询语句进行拦截和/或报警,可能导致的对目标业务系统造成损失的问题,因此,可以对待分析语句进行再次识别,然后决定是否拦截和/或报警,从而实现灵活的对慢查询语句进行过滤,防止对生产环境产生误伤。
94.基于该种处理思路,示例性的,在一种实现方式中,若检测到待分析语句属于至少一个语句簇的任一个,则对待执行的查询语句进行拦截和/或报警,可以包括:
95.若检测到所述待分析语句属于所述至少一个语句簇的任一个,且该任一个语句簇所对应的指定评判指标符合预定阈值条件,则对所述待执行的查询语句进行拦截和/或报警。
96.示例性的,指定评判指标可以为执行时长、加锁时长(慢查询语句加锁的时间)、explain结果等。这些结果可以预先记录得到,或者统计或计算得出,这都是合理的。例如:关于慢查询的指定评判指标为执行时长,此时,若该任一个语句簇所对应的执行时长超过预先设定的一时长阈值,则可以对待执行的查询语句进行拦截和/或报警。可以理解的是,该任一个语句簇所对应的执行时长可以由该任一个语句簇所包括的目标查询语句的执行时长进行求平均所得。另外,可以理解的是,若待分析语句不属于所述至少一个语句簇中任一个,或者,待分析语句属于至少一个语句簇中任一个但该任一个语句簇对应的关于慢查询的指定评判指标不符合预定阈值条件,则可以将该待分析语句对应的待执行的查询语句进行下发,也就是将该待分析语句下发给数据库系统,以由数据库系统对该待分析语句进行响应。
97.本实施例所提供的方案,不但可以在兼顾用户信息不被泄露的同时,高效处理慢查询语句,而且可以对业务系统新产生的慢查询语句进行过滤,达到实时对慢查询语句进行管控的目的。并且,设置预定阈值条件,对慢查询语句进行合理的过滤,防止对生产环境产生误伤。
98.可选的,基于上述的实施例,在本公开的另一实施例所提供的数据处理方法中,在针对所述至少一个语句簇中的每一语句簇,输出对应的处理任务之后,还可以包括:
99.当接收到针对任一处理任务的指定调控指令时,对该处理任务响应所述指定调控指令。
100.其中,针对任一处理任务的指定调控指令为用于对该处理任务的处理人员、状态信息等进行调控的指令。示例性的,指定调控指令可以为:用于表征将任务移交他人的指令、用于将任务标记为豁免任务的指令、用于将任务的状态设置为已解决状态的指令、用于为任务设置备注信息的指令,等等。其中,标为豁免:标记豁免后此类签名则不再报警通知,需处理人员审核。
101.可以理解的是,在处理任务的输出界面中,可以设置有每一指定调控指令对应的触发按钮。这样,处理人员表通过对触发按钮进行点击操作,可以发出相应的指定调控指令,从而数据处理装置可以在接收到指定调控指令后,对该处理任务响应该指定调控指令。
102.为了便于方案理解,图3给出了针对一处理任务的处理界面示意图。如图3所示,针对一处理任务,输出界面中可以展示有该处理任务的任务内容,以及其他信息,其他信息包括当前归属人、状态、类型、各个指定调控指令对应的触发按钮。其中,若该处理任务为基于
生产环境下产生的日志数据所确定出的任务,则类型为线上类型;若该处理任务为基于其他运行环境下产生的日志数据所确定出的任务,则类型为线下类型。
103.可见,通过对于任一处理任务的指定调控指令的响应,从而使得处理任务被处理人员灵活的处理。
104.下面结合另一具体实施例,对本公开提供的一种慢查询语句处理方法的原理内容进行详细介绍。
105.如图4所示的系统架构图,图4提供了以下五个部分:
106.数据库简易架构410:数据库系统中包含主从节点(master节点以及slave节点)、主备节点以及代理实例;其中,代理实例将外部的写流量传递到主节点master,以使得主节点完成数据写入过程;将外部的读流量传递到各个从节点slave-01至slave-n,以使得从节点完成数据读取过程。其中,在业务系统对于数据库进行访问的过程中,可以产生日志文件(其中包含有上述的至少一个查询语句)。
107.慢查询语句收集与加工420:可以从数据库简易架构中所产生的日志文件中,进行实时日志采集,然后对采集的日志进行慢查询语句识别(对应上述从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句),然后签名信息生成(对应上述对目标查询语句进行去隐私化,然后哈希运算,得到目标查询语句对应的签名),最后进行相关信息存储。该部分可以存储查询语句的执行时长,解析行数:解析查询语句的代码行数,返回行数:针对查询语句返回的数据的行数,来源ip:即查询语句的来源的ip,请求时间:查询语句的请求时间等信息。
108.慢查询语句治理430:接收慢查询语句收集与加工部分推送的数据,对同类慢查询语句聚合(对应上述对至少一个待利用语句进行聚类,得到至少一个语句簇),存储聚合后信息:即存储聚合后得到的每一语句簇,然后根据聚合得到的结果,对每一语句簇进行处理(对应上述针对所述至少一个语句簇中的每一语句簇,输出对应的处理任务)。所谓的处理可以包括:通知报警:对对应的慢查询语句进行报警,并通知给对应的处理人;认领功能:处理人认领属于自己处理的处理任务;移交功能:将不属于自己处理的处理任务移交给对应的处理人;分配功能:将对应的处理任务分配给对应的处理人;设置排期:设置处理任务的期限;设置备注:设置处理任务的备注,例如:某个处理任务的特殊要求:当天必须处理完等等。
109.慢查询语句识别与拦截440:当任一业务请求到来时(对应上述确定待执行的查询语句),对该业务请求中的查询语句中的用户信息进行去隐私化处理,得到待分析语句(对应上述对待执行的查询语句进行去隐私化处理,得到待分析语句);请求慢查询语句治理部分的数据,然后根据慢查询语句治理部分的数据识别该待分析语句是否为慢查询语句(对应上述若检测到待分析语句属于至少一个语句簇的任一个,则该待分析语句对应的待执行的查询语句为慢查询语句),若不是慢查询语句,则正常下发至数据库系统;若是慢查询语句,再次判断是否达到阈值(对应上述若检测到所述待分析语句属于所述至少一个语句簇的任一个,且该任一个语句簇所对应的关于慢查询的指定评判指标符合预定阈值条件)若达到阈值,则对该慢查询语句进行拦截报警,若未达到,则正常下发该慢查询语句至数据库。
110.慢查询语句拦截450:开发环境第一道拦截;测试环境第二道拦截;异构环境第三
道拦截;生产环境第四道拦截;本部分扩展了多道拦截环境,能够尽量的把慢查询语句在生产环境之前进行拦截,并及时优化业务代码。多环境拦截可以根据业务需求进行合理的分配,例如:可以只对开发环境和测试环境进行应用;或开发环境、测试环境、异构环境、生产环境都应用,但是开发环境和测试环境占的比重较大。
111.本实施例中,可以实现对业务产生的日志数据进行动态监听,实时性更强,然后对慢查询语句进行去隐私化处理,不仅能对属于同一类的慢查询语句进行聚类,还能保证用户数据的隐秘性,避免用户数据泄露带来的安全隐患;可以高效的对任一环境下的每一类的慢查询语句进行高效的处理,避免线上无人问津的情况;并且,设置阈值,更加灵活的对慢查询语句进行合理过滤,防止对生产环境产生误伤;多个环境的多道拦截策略可以把慢查询语句拦截在生产环境之前,并及时优化业务代码,避免对业务产生影响;并且,本方案对于复杂的主从架构或分布式架构而言,所提升的慢查询处理效率尤为明显。
112.根据本公开的实施例,本公开还提供了一种数据处理装置,如图5所示,该装置包括:
113.第一确定模块510,用于从至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;其中,所述指定条件包括执行时长超过预定时长阈值;
114.第一处理模块520,用于分别对所述至少一个目标查询语句进行去隐私化处理,得到至少一个待利用语句;
115.聚类模块530,用于根据所述至少一个待利用语句的文本内容,对所述至少一个待利用语句进行聚类,得到至少一个语句簇;
116.输出模块540,用于针对所述至少一个语句簇中的每一语句簇,输出对应的处理任务。
117.本方案中,在确定出至少一个查询语句中的、符合指定条件的至少一个目标查询语句后,通过对至少一个目标查询语句进行去隐私化处理,使得信息避免被泄露;并且,考虑到去隐私化处理后的至少一个待利用语句中包含具有共性内容的语句,因此,对至少一个待利用语句进行聚类,并按照聚类得到的至少一个语句簇中的每一语句簇分别输出处理任务,这样,相对于为每个目标查询语句设置处理任务而言,处理任务的数量大大降低。可见,通过本方案可以在兼顾用户信息不被泄露的同时,高效处理慢查询语句。
118.可选地,所述输出模块具体用于:
119.针对每一语句簇,确定该语句簇对应的处理对象,并输出对应的处理任务;其中,所述处理对象为该语句簇中的一待利用语句。
120.可选地,所述确定模块具体用于:
121.从指定运行环境下产生的至少一个查询语句中,确定符合指定条件的至少一个目标查询语句;
122.所述输出模块具体用于:
123.针对所述至少一个语句簇中的每一语句簇,向所述指定运行环境所对应的处理端,输出该语句簇对应的处理任务。
124.可选地,所述聚类模块具体用于:
125.针对所述至少一个待利用语句中的每一待利用语句进行哈希运算,得到所述待利用语句对应的签名;
126.根据所述待利用语句对应的签名,得到至少一个语句簇。
127.可选地,如图6所示,所述装置还包括:
128.第二确定模块650,用于确定待执行的查询语句;
129.第二处理模块660,用于对所述待执行的查询语句进行去隐私化处理,得到待分析语句;
130.拦截模块670,用于若检测到所述待分析语句属于所述至少一个语句簇的任一个,则对所述待执行的查询语句进行拦截和/或报警。
131.可选地,所述拦截模块具体用于:
132.若检测到所述待分析语句属于所述至少一个语句簇的任一个,且该任一个语句簇所对应的指定评判指标符合预定阈值条件,则对所述待执行的查询语句进行拦截和/或报警。
133.可选地,所述装置还包括:
134.响应模块,用于当接收到针对任一处理任务的指定调控指令时,对该处理任务响应所述指定调控指令。
135.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
136.本公开实施例提供了一种电子设备,包括:
137.至少一个处理器;以及
138.与所述至少一个处理器通信连接的存储器;其中,
139.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行任一种数据处理方法。
140.本公开实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行任一种数据处理方法。
141.本公开提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现任一种数据处理方法。
142.图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
143.如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
144.设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
145.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如数据处理方法。例如,在一些实施例中,数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
146.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
147.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
148.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
149.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
150.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据
服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
151.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
152.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
153.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1