首页> 中国专利> 语句聚类方法、事务聚类方法、语句聚类装置与事务聚类装置

语句聚类方法、事务聚类方法、语句聚类装置与事务聚类装置

摘要

本发明适用于数据库技术领域,提供了一种语句聚类方法,包括:实时接收语句请求输入;对语句请求做去噪与归一化处理得到净化语句请求;通过特征提取算法提取得到净化语句请求中的语句特征值;将语句特征值按首次出现的顺序添加形成语句类标识序列,并建立两者之间的语句映射关系。本发明还提供一种事务聚类方法、语句聚类装置与事务聚类装置。本发明实施例的语句聚类方法中,建立了单一的语句请求与由语句请求聚类而成的、更高层次的语句类标识序列之间的有效联系,不仅是运维人员可根据语句类标识序列分析数据库的异常原因,其他人员也可基于语句聚类的方法对其他领域的数据进行有效的聚类,并用以观测分析其他数据的发展趋势。

著录项

  • 公开/公告号CN112966101A

    专利类型发明专利

  • 公开/公告日2021-06-15

    原文格式PDF

  • 申请/专利权人 白腊梅;

    申请/专利号CN202110167246.8

  • 发明设计人 白腊梅;

    申请日2021-02-07

  • 分类号G06F16/35(20190101);G06F16/332(20190101);

  • 代理机构44333 深圳盛德大业知识产权代理事务所(普通合伙);

  • 代理人贾振勇

  • 地址 518000 广东省深圳市南山区振业国际商务中心2803

  • 入库时间 2023-06-19 11:26:00

说明书

技术领域

本发明属于数据库技术领域,尤其涉及一种语句聚类方法、事务聚类方法、语句聚类装置与事务聚类装置。

背景技术

现有技术中,一般在数据库服务端内的数据发生异常时,通过运维人员在现场通过人为方式定下数据分类标准,以使用于数据库服务端根据分类标准对数据进行分类,来帮助观测数据变化的运维人员确定数据异常原因。而当数据库服务端内的数据量比较大时,单纯依靠运维人员现场对数据进行分类和统计,限于人力难以及时、有效地确定数据异常原因。

另外,即使运维人员花费了大量时间与精力确认了数据发生异常的具体原因,但无法根据单一异常数据的异常原因,延伸至用于分析判断该异常数据所属类的其他数据可能会发生异常的原因,更是无法延伸至用于分析判断至该类数据所属的更高层次的数据主体可能会发生异常的原因。也就是说,难以根据单一的数据异常原因,有效地扩展延伸至用于分析判断更大、更高层次的数据主体可能会发生异常的原因。

同样的,在其他场景下,即使确认了一个目标物的特征信息,但难以准确、有效地将具备同样特征信息的目标物确定为同一类,更是难以将同一类的所有目标物再确定为更大、更高层次的类,难以建立单一目标物与由目标物构成的更高层次的主体之间的有效联系。

发明内容

本发明实施例提供一种语句聚类方法、事务聚类方法、语句聚类装置与事务聚类装置,旨在解决现有技术中难以建立单一目标物与由目标物构成的更高层次的主体之间的有效联系,如数据库服务端内的数据异常时,单纯通过运维人员在现场通过人为方式无法及时、有效地确定数据分类,更无法及时、有效地确定异常原因的技术问题的技术问题。

本发明实施例是这样实现的,一种语句聚类方法,包括:

实时接收语句请求输入;

对所述语句请求做去噪与归一化处理得到净化语句请求;

通过特征提取算法提取得到所述净化语句请求中的语句特征值;

将所述语句特征值按首次出现的顺序添加形成语句类标识序列,并建立两者之间的语句映射关系。

本发明实施例还提供一种事务聚类方法,包括:

接收事务内所包含的事务特征值集合的输入,所述事务特征值集合通过上述所述的语句聚类方法所得到的所述语句类标识序列形成;

按首次出现的顺序对比所接收到的每个所述事务特征值集合;

在对比的所述事务特征值集合相同时,将相同的所述事务特征值集合聚类为一类;

在对比的所述事务特征值集合不同时,将不同的所述事务特征值集合按首次出现的顺序添加形成事务特征值序列。

本发明实施例还提供一种语句聚类装置,其包括:

语句请求接收单元,用于实时接收语句请求输入;

语句请求处理单元,用于对所述语句请求做去噪与归一化处理得到净化语句请求;

语句特征值提取单元,用于通过特征提取算法提取得到所述净化语句请求中的语句特征值;

语句类标识序列形成单元,用于将所述语句特征值按首次出现的顺序添加形成语句类标识序列,并建立两者之间的语句映射关系。

本发明实施例还提供一种事务聚类装置,其包括:

事务特征值集合接收单元,用于接收事务内所包含的事务特征值集合的输入,所述事务特征值集合通过上述所述的语句聚类装置所得到的所述语句类标识序列形成;

事务特征值集合对比单元,用于按首次出现的顺序对比所接收到的每个所述事务特征值集合;

事务特征值集合聚类单元,用于在对比的所述事务特征值集合相同时,将相同的所述事务特征值集合聚类为一类;

事务特征值序列形成单元,用于在对比的所述事务特征值集合不同时,将不同的所述事务特征值集合按首次出现的顺序添加形成事务特征值序列。

本发明实施例的有益效果是,通过处理接收到的语句请求得到语句特征值,再根据语句特征值形成语句类标识序列,以语句类标识序列对所接收到的语句请求进行有效的聚类,建立了单一语句请求与由语句请求聚类而成的、更高层次的语句类标识序列之间的有效联系。在语句聚类的一个具体实施场景中,当运维人员遇见数据异常情况时,处理得到异常数据的语句特征值,通过异常数据的语句特征值与已存储的语句类标识序列之间的对比来判断异常原因。还可根据语句聚类输出的语句类标识序列,来分析判断具备同类特征值的语句请求可能存在的异常情况,还可进一步地用以分析判断由语句类标识序列构成的事务以及业务的某些发展趋势与可能存在的异常问题等,为处理异常情况提供有效的观测数据支持。其他人员也可基于语句聚类的方法对其他领域的数据进行有效的聚类,并用以观测分析其他数据的发展趋势。

附图说明

图1与图2是本发明实施例的语句聚类方法的流程示意图;

图3至图5是本发明实施例的事务聚类方法的流程示意图;

图6与图7是本发明实施例的语句聚类装置的结构示意图;

图8至图10是本发明实施例的事务聚类装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一

请参阅图1,本发明实施例的语句聚类方法包括步骤:

S1:实时接收语句请求输入;

S2:对语句请求做去噪与归一化处理得到净化语句请求;

S3:通过特征提取算法提取得到净化语句请求中的语句特征值;

S4:将语句特征值按首次出现的顺序添加形成语句类标识序列,并建立两者之间的语句映射关系。

本发明实施例中,通过处理接收到的语句请求得到语句特征值,再根据语句特征值形成语句类标识序列,以语句类标识序列对所接收到的语句请求进行有效的聚类,建立了单一语句请求与由语句请求聚类而成的、更高层次的语句类标识序列之间的有效联系。在语句聚类的一个具体实施场景中,当运维人员遇见数据异常情况时,处理得到异常数据的语句特征值,通过异常数据的语句特征值与已存储的语句类标识序列之间的对比来判断异常原因。

更为重要的是,还可根据语句聚类输出的语句类标识序列,来分析判断具备同类特征值的语句请求可能存在的异常情况,还可进一步地用以分析判断由语句类标识序列构成的事务以及业务的某些发展趋势与可能存在的异常问题等,为处理异常情况提供有效的观测数据支持。

本发明实施例的语句聚类方法应用于数据库服务端,数据库服务端内的数据由语句请求构成,下文写到的数据均可以理解为语句请求,语句请求为用于数据库服务端的结构化查询语言(Structured Query Language,SQL)请求,常用于存取数据以及查询、更新和管理关系数据库系统。“聚类”则为将存储入数据库服务端内的语句请求按一定的条件聚成一类,以把数据库服务端所接收到的不同语句请求自动分为多个类的过程。

具体地,在数据库服务端启动后,对客户端所发送的语句请求的接收是实时进行的,数据库服务端在接收到语句请求并处理后,会针对语句请求向客户端返回应答数据(应答语句请求),对于以上数据库服务端与客户端之间交互所产生的数据,则需要进行聚类,以确定在数据库服务端与客户端之间的交互过程中,出现的异常数据是来自于数据库服务端还是客户端,并且进一步地可确定异常数据的具体类型,以帮助运维人员快速定位数据异常的原因。

可以理解,语句请求中常常会存在噪声,而影响数据库服务端对语句请求的判断以及后续的聚类过程。因此,本发明实施例中,在接收到语句请求后,首先对语句请求做去噪与归一化处理,去噪处理即去除语句请求中的噪声,使语句请求的格式更为程序化、规范化、标准化与形式化,提高后续对语句请求的处理效率;而在去除语句请求中的噪声后,语句请求会存在一定的间隔与空格,因此,通过归一化处理使得语句请求中的所有字符连续,形成连续的字符串,该连续字符串即为净化语句请求(Clean SQL)。通过步骤S2,既净化了语句请求中的噪声,同时也使得字符串满足连续性与完整性的要求,以提升对语句请求的处理速度,保证处理过程的正常进行。

由于语句请求在计算机语言的程序化中为由多个字符组成的字符串,不同的语句请求的字符串不同,其中的字符也不尽相同。因此,在需要对语句请求聚类时,以语句请求中字符、字段以及字符或字段所构成的字符串等作为不同语句请求之间的区别点,上述字符、字段以及字符串可以理解为用以区分不同语句请求的特征值,即语句特征值(specialvalue)。因此,本发明实施例中,得到净化语句请求后,通过特征提取算法提起其中的语句特征值并存储,以语句特征值作为语句请求的聚类标准,对所接收到的每个语句请求进行聚类,并添加至特定的存储空间内,便于管理与查找。

在一个实施例中,特征提取算法可以为MD5算法或Hash算法等具备信息摘要功能的算法。以MD5算法为例,通过MD5算法可从一个字符串或一个文件中按照一定的规则生成一个特殊字符串,该特殊字符串也称为MD5摘要,MD5摘要即为本发明实施例中的语句特征值,不同的文件或字符串中的MD5摘要不同,而若两个文件或字符串的MD5摘要相同,则可认为两个文件或字符串相同。

另外,由于一个文件或字符串所对应的MD5摘要是固定的,当文件或字符串的内容变化(异常)后,其MD5摘要也会不一样,因此,通过MD5算法处理净化语句请求得到语句特征值后,不仅可通过语句特征值作为对不断接收到的语句请求的聚类标准,还可通过判断已存储于数据库服务端内的语句请求的语句特征值是否改变,来快速、准确地定位数据库服务端中异常的语句请求。

在其他实施例中,还可通过其他算法提取净化语句请求中的语句特征值,并不限于上述提到的MD5算法与Hash算法,在保证可准确地得到语句特征值的前提下,具体选择用于处理净化语句请求的特征值提取算法即可。

可以理解,由于语句特征值为具备一定长度的字符串,而不同语句特征值的字符串长度不一,若直接将提取得到的语句特征值作为聚类的类别名称,则类别名称较为杂乱,同时也不方便分辨不同聚类之间的区别,不方便不同聚类之间的划分。

因此,在本发明实施例中,将提取得到的语句特征值按其首次出现的顺序添加形成语句类标识序列,建立两者之间对应的语句映射关系并存储,即在进行语句聚类开始后,仅是将首次出现的语句特征值添加形成语句类标识序列,若是出现相同的语句特征值,则按其首次出现时对应的语句类标识序列进行添加。如此,通过任意的语句特征值或语句类标识序列,即可快速、准确地查询得到对应的语句类标识序列或语句特征值,还可避免对相同的语句请求的重复聚类,提升对语句请求的处理速度。

更多地,语句类标识序列中的标识可以为具备标识作用的数字、字母、特殊字符等组成,如1、2、3……,a、b、c……等,通过自动、有序地将不同的语句特征值添加形成语句类标识序列,相同的语句特征值则赋予相同的标识,简单、有效、准确地建立语句类标识序列与语句特征值之间的映射关系,通过语句类标识序列可快速、准确地确定其代表的语句特征值,也便于后续针对语句类标识序列所进行的其他数据处理过程。

在本发明实施例中,语句类标识序列可以为自然数递增序列,即可由自然数“1”开始对应至语句特征值并绑定,例如,当前语句类标识序列为(1),后续提取得到的语句特征值不同,则赋予自然数“2”,语句类标识序列更新为(1/2),再提取得到不同的语句特征值则不断的将该语句类标识序列递增形成,以自增序号的形式更新得到(1/2/3/4……)的语句类标识序列。

示例性地,若提取到的第1个语句请求1的语句特征值1为“xxxxxx1”,语句请求1的语句聚类即为“1”,语句类标识序列为(1);若提取到的第二个语句请求2的语句特征值2为“xxxxxx2”,与语句特征值1不同,语句请求2的语句聚类即为“2”,语句类标识序列为(1/2);若提取到的第三个语句请求3的语句特征值3为“xxxxxx1”,与语句特征值1相同,语句请求3的语句聚类即为“1”,语句类标识序列为(1/2/1);若提取到的第四个语句请求4的语句特征值4为“xxxxxx3”,与语句特征值1以及语句特征值2均不同,语句请求4的语句聚类即为“3”,语句类标识序列为(1/2/1/3),以此类推来实现对语句类标识序列的不断更新。

在一个实施例中,还可以省略上述步骤S3,直接将提取得到的语句特征值作为聚类的具体类别,以简化语句聚类的流程。在又一个实施例中,将映射关系、语句类标识序列以及语句特征值都关联存储在一起,便于查询与管理。

实施例二

请参阅图2,步骤S2包括步骤:

S21:遍历语句请求中的每个字符,将语句请求中的所有字符转换为大写;

S22:剔除语句请求中的第一类字符;

S23:将语句请求中的第二类字符替换为第三类字符;

S24:将语句请求剩余的所有字符输出为净化语句请求。

具体地,在得到语句请求后,首先遍历语句请求中的每个字符,并将语句请求中的每个字符转换为大写,而后剔除语句请求中的第一类字符,上述第一类字符即为语句请求中的噪声,如语句请求中的‘-’、‘\n’与0x20(即空格)等字符,第一类字符会影响语句请求的正确性,因此剔除第一类字符以达到对语句请求去噪的目的。

在剔除第一类字符后,将语句请求中的第二类字符替换为第三类字符。其中,第二类字符为语句请求的所有字符中的Value值,如‘,’、‘)’与‘\’等,第三类字符则为“?”,以使语句请求剩余的所有字符形成一个连续的字符串,该字符串即为输出的净化语句请求,通过净化语句请求中的字符来确定不同的语句请求的共同点。

实施例三

请参阅图3,本发明实施例的事务聚类方法包括步骤:

S5:接收事务内所包含的事务特征值集合的输入,事务特征值集合通过上述语句聚类方法所得到的语句类标识序列形成;

S6:按首次出现的顺序对比所接收到的每个事务特征值集合;

S7:在对比的事务特征值集合相同时,将相同的事务特征值集合聚类为一类;

S8:在对比的事务特征值集合不同时,将不同的事务特征值集合按首次出现的顺序添加形成事务特征值序列。

本发明实施例中,将由语句聚类方法得来的语句类标识序列作为事务内所包含的事务特征值集合,再将相同的事务特征值集合聚类为同一类,将不同的事务特征值集合添加形成事务特征值序列,实现了对所接收到的事务的有效聚类,建立了单一事务与由事务聚类而成的、更高层次的事务特征值序列之间的有效联系。在事务聚类的一个具体实施场景中,当运维人员遇见事务异常情况时,处理得到异常事务的事务特征值集合,通过异常事务的事务特征值集合与以存储的事务特征值序列之间的对比来判断异常原因。

更为重要的是,还可根据事务聚类输出的事务特征值序列,来分析判断具备同类特征值的事务可能存在的异常情况,还可进一步地用以分析判断由事务特征值序列构成的其他主体(如业务)的某些发展趋势与可能存在的异常问题等,为处理异常情况提供有效的观测数据支持。

具体地,事务由多个语句请求构成,结合上述语句聚类方法实施例中关于语句请求的描述可知,构成不同事务的语句请求不尽相同,则构成不同事务的多个语句特征值与多个语句类标识序列也不尽相同,以上多个语句特征值与进一步得到的多个语句类标识序列,即可作为区分不同事务聚类的“特征值”,以及用以确认、建立新的事务聚类。

在本发明实施例中,在将语句请求聚类后,由于一个事务内包含有多个语句请求,而语句类标识序列包含有多个语句特征值,即语句类标识序列包含有多个语句请求。因此,在对事务进行聚类时,直接输入由语句类标识序列构成的事务特征值集合,即为输入了一个完整的事务,其中,语句类标识序列即为用于区分不同事务的“特征值”。

进一步地,按照首次出现的顺序通过对比所接收到的每个事务的事务特征值集合(语句类标识序列),即可判断数据库服务端当前是否已存在相同的事务,以及区分不同的事务或新建不同的事务聚类。

若对比的事务特征值集合相同时,即当前输入的事务的事务特征值集合已存在,则将相同的事务特征值集合所代表的事务聚类至同一类,避免对相同事务的重复添加;若对比的事务特征值集合不同时,即当前输入的事务的事务特征值集合在数据库服务端内并不存在相同的对象,则将不同的事务特征值集合所代表的事务同样按照首次出现的顺序添加形成事务特征值序列,较为数据的处理过程较为清楚、规则,也便于管理。

值得注意的是,事务特征值序列可以直接由事务特征值集合添加形成,以简化数据处理流程;也可以间接由事务特征值集合添加形成,如上述语句聚类方法中,先为事务特征值集合赋予设定的标识,再将标识添加形成事务特征值序列,以缩短事务特征值序列的字符长度,并且事务特征值序列的构成较为简单、清楚,便于查询、管理。

对于步骤S7与S8,示例性地,若数据库服务端接收到的第1个事务内包含的事务特征值集合1为[1/2/3],即构成该事务特征值集合1的语句类标识序列为(1/2/3),而数据库服务端内并不存在[1/2/3],因此将[1/2/3]添加形成事务特征值序列{1/2/3},而该第1个事务的聚类即为{1/2/3}所代表的聚类;若接收到的第2个事务内包含的事务特征值集合2为[1/3/3],即构成该事务特征值集合2的语句类标识序列为(1/3/3),数据库服务端内并不存在[1/3/3],因此将[1/3/3]添加至事务特征值序列,此时事务特征值序列包括{[1/2/3]、[1/3/3]},而该第2个事务的聚类即为{1/3/3}所代表的聚类;若接收到的第3个事务内包含的事务特征值集合3为[1/2/3],即构成该事务特征值集合3的语句类标识序列为(1/2/3),此时数据库服务端内已存在[1/2/3],因此将第3个事务聚类至第1个事务的聚类,事务特征值序列为{[1/2/3]、[1/3/3]},以此类推。

在一个实施例中,在步骤S5中所接收的也可以是构成一个事务的多个语句请求的多个语句特征值,此时,可无需在上述语句聚类方法实施例中根据语句特征值建立语句类标识序列,即无需将标识序列构成事务特征值集合,简化语句聚类方法与事务聚类方法的数据处理流程。

实施例四

请参阅图4,在步骤S09之后包括步骤:

S10:为事务特征值集合赋予对应的事务类标识,并建立两者之间的事务映射关系;

S11:将事务类标识按首次出现的顺序添加形成事务类标识序列。

具体地,事务类标识可以为具备标识作用的数字、字母、特殊字符等,如01、02、03……,A、B、C……等,通过自动、有序地为不同的事务特征值集合赋予不同的事务类标识,相同的事务特征值集合则赋予相同的事务类标识,简单、有效、准确地建立事务类标识与事务特征值集合之间的映射关系,通过事务类标识可快速、准确地确定其代表的事务特征值集合,也便于后续针对事务类标识所进行的其他数据处理过程。

在本发明实施例中,事务类标识为自然数,事务类标识序列则为自然数递增序列,为与上述语句聚类方法中的语句类标识序列做区别,事务类标识可由自然数“01”开始赋予至事务特征值集合,再接收得到不同的事务特征值集合则不断的将该事务类标识递增形成,以自增序号的形式更新得到{01/02/03/04……}的事务类标识序列。

示例性地,此时接收得到的第1个事务1的事务特征值集合1为[1/2/3],为该事务特征值集合1赋予事务类标识“01”,两者映射关系为[1/2/3]←→01,事务1的事务聚类即为01,此时添加形成的事务类标识序列为{01};接收得到的第2个事务2的事务特征值集合2为[1/3/3],与事务特征值集合1不同,为该事务特征值集合2赋予事务类标识“02”,两者映射关系即[1/3/3]←→02,事务2的事务聚类即为02,此时添加形成的事务类标识序列为{01/02};接收得到的第3个事务3的事务特征值集合3为[1/2/3],与事务1以及事务特征值集合1相同,因此为该事务特征值集合3赋予事务类标识“01”,两者映射关系即[1/2/3]←→01,事务3的事务聚类即为01,此时添加形成的事务类标识序列为{01/02},再提取得到不同的事务特征值集合则不断的将该事务类标识递增形成,如{01/02/03/04……}。

在本发明实施例中,可将事务类标识、事务特征值集合、事务类标识序列以及映射关系关联并存储,便于与其他事务进行对比、聚类,字符长度较短,较为清楚,便于查询、对比与管理。

实施例五

请参阅图5,步骤S5包括步骤:

S51:确定事务起始标识与事务结束标识;

S52:获取事务起始标识与事务结束标识之间的语句类标识序列并形成事务特征值集合。

可以理解,在数据库服务端的运行中,一个完整的事务包括起始时间点与结束时间点,而起始时间点与结束时间点之间的语句请求则构成一个完整的事务。因此,在本发明实施例中,首先确定一个事务的起始标识与结束标识,相当于获取一个事务的起始时间点与结束时间点的标识,即通过事务起始标识与事务结束标识确认事务的起始时间点与结束时间点。

而获取事务起始标识与事务结束标识之间的语句类标识序列,由于语句类标识序列由多个语句请求的语句特征值组成,语句类标识序列即为多个语句请求的指代。因此,步骤S52可以理解为,获取一个事务的起始时间点与结束时间点之间的语句请求(包括起始时间点与结束时间点进行的语句请求),由以上所有的语句请求形成了事务特征值集合,形成了一个完整的事务,避免对事务内的语句请求的遗漏,保证了事务的完整性,以对事务准确、有效地聚类。

更多地,在本发明实施例中,事务起始标识为起始语句,事务结束标识为结束语句,在一个事务开始进行或将要结束时,在起始时间点与结束时间点下的语句请求中加入用以识别的标识(如特殊字符)来划分一个完整的事务,便于对起始语句与结束语句进行分辨。由于事务本身即由多个语句请求构成,起始语句与结束语句分别为一个事务的开始与结束,通过事务本身具备的起始语句与结束语句,分别作为本发明实施例中的事务起始标识与事务结束标识,无需额外设置其他的标识来对完整的事务进行识别,较为方便准确。

实施例六

请参阅图6,本发明实施例的语句聚类装置10包括:

语句请求接收单元11,用于实时接收语句请求输入;

语句请求处理单元12,用于对语句请求做去噪与归一化处理得到净化语句请求;

语句特征值提取单元13,用于通过特征提取算法提取得到净化语句请求中的语句特征值;

语句类标识序列形成单元14,用于将语句特征值按首次出现的顺序添加形成语句类标识序列,并建立两者之间的语句映射关系。

本发明实施例中,得到用于对存储入数据库服务端内的语句请求进行聚类的语句类标识序列,在数据库服务端所接收或存储的数据量较大又发生数据异常时,可根据语句类标识序列确定异常数据的语句特征值,将该语句特征值与数据库服务端内已存储的语句类标识序列进行对比,若异常数据的语句特征值与所比对的语句类标识序列中的内容相同,即可确认上述异常数据的语句聚类,而后定位异常数据的具体位置,进一步分析异常数据的异常原因,快速、准确、有效地解决数据异常问题。同时,还可判断数据库服务端当前是否已存在相同的语句请求,以区分不同的语句请求,或新建不同的语句聚类。

本发明实施例的语句聚类方法应用于数据库服务端,数据库服务端内的数据由语句请求构成,下文写到的数据均可以理解为语句请求,语句请求为用于数据库服务端的结构化查询语言(Structured Query Language,SQL)请求,常用于存取数据以及查询、更新和管理关系数据库系统。“聚类”则为将存储入数据库服务端内的语句请求按一定的条件聚成一类,以把数据库服务端所接收到的不同语句请求自动分为多个类的过程。

具体地,在数据库服务端启动后,对客户端所发送的语句请求的接收是实时进行的,数据库服务端在接收到语句请求并处理后,会针对语句请求向客户端返回应答数据(应答语句请求),对于以上数据库服务端与客户端之间交互所产生的数据,则需要进行聚类,以确定在数据库服务端与客户端之间的交互过程中,出现的异常数据是来自于数据库服务端还是客户端,并且进一步地可确定异常数据的具体类型,以帮助运维人员快速定位数据异常的原因。

可以理解,语句请求中常常会存在噪声,而影响数据库服务端对语句请求的判断以及后续的聚类过程。因此,本发明实施例中,在接收到语句请求后,首先对语句请求做去噪与归一化处理,去噪处理即去除语句请求中的噪声,使语句请求的格式更为程序化、规范化、标准化与形式化,提高后续对语句请求的处理效率;而在去除语句请求中的噪声后,语句请求会存在一定的间隔与空格,因此,通过归一化处理使得语句请求中的所有字符连续,形成连续的字符串,该连续字符串即为净化语句请求(Clean SQL)。通过步骤S2,既净化了语句请求中的噪声,同时也使得字符串满足连续性与完整性的要求,以提升对语句请求的处理速度,保证处理过程的正常进行。

由于语句请求在计算机语言的程序化中为由多个字符组成的字符串,不同的语句请求的字符串不同,其中的字符也不尽相同。因此,在需要对语句请求聚类时,以语句请求中字符、字段以及字符或字段所构成的字符串等作为不同语句请求之间的区别点,上述字符、字段以及字符串可以理解为用以区分不同语句请求的特征值,即语句特征值(specialvalue)。因此,本发明实施例中,得到净化语句请求后,通过特征提取算法提起其中的语句特征值并存储,以语句特征值作为语句请求的聚类标准,对所接收到的每个语句请求进行聚类,并添加至特定的存储空间内,便于管理与查找。

在一个实施例中,特征提取算法可以为MD5算法或Hash算法等具备信息摘要功能的算法。以MD5算法为例,通过MD5算法可从一个字符串或一个文件中按照一定的规则生成一个特殊字符串,该特殊字符串也称为MD5摘要,MD5摘要即为本发明实施例中的语句特征值,不同的文件或字符串中的MD5摘要不同,而若两个文件或字符串的MD5摘要相同,则可认为两个文件或字符串相同。

另外,由于一个文件或字符串所对应的MD5摘要是固定的,当文件或字符串的内容变化(异常)后,其MD5摘要也会不一样,因此,通过MD5算法处理净化语句请求得到语句特征值后,不仅可通过语句特征值作为对不断接收到的语句请求的聚类标准,还可通过判断已存储于数据库服务端内的语句请求的语句特征值是否改变,来快速、准确地定位数据库服务端中异常的语句请求。

在其他实施例中,还可通过其他算法提取净化语句请求中的语句特征值,并不限于上述提到的MD5算法与Hash算法,在保证可准确地得到语句特征值的前提下,具体选择用于处理净化语句请求的特征值提取算法即可。

可以理解,由于语句特征值为具备一定长度的字符串,而不同语句特征值的字符串长度不一,若直接将提取得到的语句特征值作为聚类的类别名称,则类别名称较为杂乱,同时也不方便分辨不同聚类之间的区别,不方便不同聚类之间的划分。

因此,在本发明实施例中,将提取得到的语句特征值按其首次出现的顺序添加形成语句类标识序列,建立两者之间对应的语句映射关系并存储,即在进行语句聚类开始后,仅是将首次出现的语句特征值添加形成语句类标识序列,若是出现相同的语句特征值,则按其首次出现时对应的语句类标识序列进行添加。如此,通过任意的语句特征值或语句类标识序列,即可快速、准确地查询得到对应的语句类标识序列或语句特征值,还可避免对相同的语句请求的重复聚类,提升对语句请求的处理速度。

更多地,语句类标识序列中的标识可以为具备标识作用的数字、字母、特殊字符等组成,如1、2、3……,a、b、c……等,通过自动、有序地将不同的语句特征值添加形成语句类标识序列,相同的语句特征值则赋予相同的标识,简单、有效、准确地建立语句类标识序列与语句特征值之间的映射关系,通过语句类标识序列可快速、准确地确定其代表的语句特征值,也便于后续针对语句类标识序列所进行的其他数据处理过程。

在本发明实施例中,语句类标识序列可以为自然数递增序列,即可由自然数“1”开始对应至语句特征值并绑定,例如,此时语句类标识序列为(1),后续提取得到的语句特征值不同,则赋予自然数“2”,语句类标识序列更新为(1/2),再提取得到不同的语句特征值则不断的将该语句类标识序列递增形成,以自增序号的形式更新得到(1/2/3/4……)的语句类标识序列。

示例性地,若提取到的第1个语句请求1的语句特征值1为“xxxxxx1”,语句请求1的语句聚类即为“1”,语句类标识序列为(1);若提取到的第二个语句请求2的语句特征值2为“xxxxxx2”,与语句特征值1不同,语句请求2的语句聚类即为“2”,语句类标识序列为(1/2);若提取到的第三个语句请求3的语句特征值3为“xxxxxx1”,与语句特征值1相同,语句请求3的语句聚类即为“1”,语句类标识序列为(1/2/1);若提取到的第四个语句请求4的语句特征值4为“xxxxxx3”,与语句特征值1以及语句特征值2均不同,语句请求4的语句聚类即为“3”,语句类标识序列为(1/2/1/3),以此类推来实现对语句类标识序列的不断更新。

在一个实施例中,还可以直接将提取得到的语句特征值作为聚类的具体类别,以简化语句聚类的流程。在又一个实施例中,将映射关系、语句类标识序列以及语句特征值都关联存储在一起,便于查询与管理。

实施例七

请参阅图7,语句请求处理单元12包括:

字符转换模块121,用于遍历语句请求中的每个字符,将语句请求中的所有字符转换为大写;

字符剔除模块122,用于剔除语句请求中的第一类字符;

字符替换模块123,用于将语句请求中的第二类字符替换为第三类字符;

字符输出模块124,用于将语句请求剩余的所有字符输出为净化语句请求。

具体地,在得到语句请求后,首先遍历语句请求中的每个字符,并将语句请求中的每个字符转换为大写,而后剔除语句请求中的第一类字符,上述第一类字符即为语句请求中的噪声,如语句请求中的‘-’、‘\n’与0x20(即空格)等字符,第一类字符会影响语句请求的正确性,因此剔除第一类字符以达到对语句请求去噪的目的。

在剔除第一类字符后,将语句请求中的第二类字符替换为第三类字符。其中,第二类字符为语句请求的所有字符中的Value值,如‘,’、‘)’与‘\’等,第三类字符则为“?”,以使语句请求剩余的所有字符形成一个连续的字符串,该字符串即为输出的净化语句请求,通过净化语句请求中的字符来确定不同的语句请求的共同点。

实施例八

请参阅图8,本发明实施例的事务聚类装置20包括:

事务特征值集合接收单元21,用于接收事务内所包含的事务特征值集合的输入,事务特征值集合通过上述语句聚类装置10所得到的语句类标识序列形成;

事务特征值集合对比单元22,用于按首次出现的顺序对比所接收到的每个事务特征值集合;

事务特征值集合聚类单元23,用于当对比的事务特征值集合相同时,将相同的事务特征值集合聚类为一类;

事务特征值序列形成单元24,用于当对比的事务特征值集合不同时,将不同的事务特征值集合按首次出现的顺序添加形成事务特征值序列。

本发明实施例中,将由语句聚类方法得来的语句类标识序列作为事务内所包含的事务特征值集合,再将相同的事务特征值集合聚类为同一类,将不同的事务特征值集合添加形成事务特征值序列,实现了对所接收到的事务的有效聚类,建立了单一事务与由事务聚类而成的、更高层次的事务特征值序列之间的有效联系。在事务聚类的一个具体实施场景中,当运维人员遇见事务异常情况时,处理得到异常事务的事务特征值集合,通过异常事务的事务特征值集合与以存储的事务特征值序列之间的对比来判断异常原因。

更为重要的是,还可根据事务聚类输出的事务特征值序列,来分析判断具备同类特征值的事务可能存在的异常情况,还可进一步地用以分析判断由事务特征值序列构成的其他主体(如业务)的某些发展趋势与可能存在的异常问题等,为处理异常情况提供有效的观测数据支持。

具体地,事务由多个语句请求构成,结合上述语句聚类方法实施例中关于语句请求的描述可知,构成不同事务的语句请求不尽相同,则构成不同事务的多个语句特征值与多个语句类标识序列也不尽相同,以上多个语句特征值与进一步得到的多个语句类标识序列,即可作为区分不同事务聚类的“特征值”,以及用以确认、建立新的事务聚类。

在本发明实施例中,在将语句请求聚类后,由于一个事务内包含有多个语句请求,而语句类标识序列包含有多个语句特征值,即语句类标识序列包含有多个语句请求。因此,在对事务进行聚类时,直接输入由语句类标识序列构成的事务特征值集合,即为输入了一个完整的事务,其中,语句类标识序列即为用于区分不同事务的“特征值”。

进一步地,按照首次出现的顺序通过对比所接收到的每个事务的事务特征值集合(语句类标识序列),即可判断数据库服务端当前是否已存在相同的事务,以及区分不同的事务或新建不同的事务聚类。

若对比的事务特征值集合相同时,即当前输入的事务的事务特征值集合已存在,则将相同的事务特征值集合所代表的事务聚类至同一类,避免对相同事务的重复添加;若对比的事务特征值集合不同时,即当前输入的事务的事务特征值集合在数据库服务端内并不存在相同的对象,则将不同的事务特征值集合所代表的事务同样按照首次出现顺序添加形成事务特征值序列,较为数据的处理过程较为清楚、规则,也便于管理。

值得注意的是,事务特征值序列可以直接由事务特征值集合添加形成,以简化数据处理流程;也可以间接由事务特征值集合添加形成,如上述语句聚类方法中,先为事务特征值集合赋予设定的标识,再将标识添加形成事务特征值序列,以缩短事务特征值序列的字符长度,并且事务特征值序列的构成较为简单、清楚,便于查询、管理。

示例性地,若数据库服务端接收到的第1个事务内包含的事务特征值集合1为[1/2/3],即构成该事务特征值集合1的语句类标识序列为(1/2/3),而数据库服务端内并不存在[1/2/3],因此将[1/2/3]添加形成事务特征值序列{1/2/3},而该第1个事务的聚类即为{1/2/3}所代表的聚类;若接收到的第2个事务内包含的事务特征值集合2为[1/3/3],即构成该事务特征值集合2的语句类标识序列为(1/3/3),数据库服务端内并不存在[1/3/3],因此将[1/3/3]添加至事务特征值序列,此时事务特征值序列包括{[1/2/3]、[1/3/3]},而该第2个事务的聚类即为{1/3/3}所代表的聚类;若接收到的第3个事务内包含的事务特征值集合3为[1/2/3],即构成该事务特征值集合3的语句类标识序列为(1/2/3),此时数据库服务端内已存在[1/2/3],因此将第3个事务聚类至第1个事务的聚类,事务特征值序列为{[1/2/3]、[1/3/3]},以此类推。

在一个实施例中,事务特征值集合接收单元21所接收的也可以是构成一个事务的多个语句请求的多个语句特征值,此时,可无需根据语句特征值建立语句类标识序列,即无需将语句类标识序列构成事务特征值集合,简化语句聚类装置与事务聚类装置的数据处理流程。

实施例九

请参阅图9,事务聚类装置20还包括:

事务类标识赋予单元25,用于为事务特征值集合赋予对应的事务类标识,并建立两者之间的事务映射关系;

事务类标识序列形成单元26,将事务类标识按首次出现的顺序添加形成事务类标识序列。

具体地,事务类标识可以为具备标识作用的数字、字母、特殊字符等,如01、02、03……,A、B、C……等,通过自动、有序地为不同的事务特征值集合赋予不同的事务类标识,相同的事务特征值集合则赋予相同的事务类标识,简单、有效、准确地建立事务类标识与事务特征值集合之间的映射关系,通过事务类标识可快速、准确地确定其代表的事务特征值集合,也便于后续针对事务类标识所进行的其他数据处理过程。

在本发明实施例中,事务类标识为自然数,事务类标识序列则为自然数递增序列,为与上述语句聚类方法中的语句类标识序列做区别,事务类标识可由自然数“01”开始赋予至事务特征值集合,再接收得到不同的事务特征值集合则不断的将该事务类标识递增形成,以自增序号的形式更新得到{01/02/03/04……}的事务类标识序列。

示例性地,此时接收得到的第1个事务1的事务特征值集合1为[1/2/3],为该事务特征值集合1赋予事务类标识“01”,两者映射关系为[1/2/3]←→01,事务1的事务聚类即为01,此时添加形成的事务类标识序列为{01};接收得到的第2个事务2的事务特征值集合2为[1/3/3],与事务特征值集合1不同,为该事务特征值集合2赋予事务类标识“02”,两者映射关系即[1/3/3]←→02,事务2的事务聚类即为02,此时添加形成的事务类标识序列为{01/02};接收得到的第3个事务3的事务特征值集合3为[1/2/3],与事务1以及事务特征值集合1相同,因此为该事务特征值集合3赋予事务类标识“01”,两者映射关系即[1/2/3]←→01,事务3的事务聚类即为01,此时添加形成的事务类标识序列为{01/02},再提取得到不同的事务特征值集合则不断的将该事务类标识递增形成,如{01/02/03/04……}。

在本发明实施例中,可将事务类标识添加形成的事务类标识序列用以存储,以及与其他事务进行对比、聚类,字符长度较短,较为清楚,便于查询、对比与管理。

在本发明实施例中,可将事务类标识、事务特征值集合、事务类标识序列以及映射关系关联并存储,便于与其他事务进行对比、聚类,字符长度较短,较为清楚,便于查询、对比与管理。

实施例十

请参阅图10,事务特征值集合接收单元21包括:

事务标识确定模块211,确定事务起始标识与事务结束标识,事务起始标识为起始语句,事务结束标识为结束语句;

事务特征值集合形成模块212,获取事务起始标识与事务结束标识之间的语句类标识序列并形成事务特征值集合。

可以理解,在数据库服务端的运行中,一个完整的事务包括起始时间点与结束时间点,而起始时间点与结束时间点之间的语句请求则构成一个完整的事务。因此,在本发明实施例中,首先确定一个事务的起始标识与结束标识,相当于获取一个事务的起始时间点与结束时间点的标识,即通过事务起始标识与事务结束标识确认事务的起始时间点与结束时间点。

而获取事务起始标识与事务结束标识之间的语句类标识序列,由于语句类标识序列由多个语句请求的语句特征值组成,语句类标识序列即为多个语句请求的指代。因此,获取事务起始标识与事务结束标识之间的语句类标识序列并形成事务特征值集合可以理解为,获取一个事务的起始时间点与结束时间点之间的语句请求(包括起始时间点与结束时间点进行的语句请求),由以上所有的语句请求形成了事务特征值集合,形成了一个完整的事务,避免对事务内的语句请求的遗漏,保证了事务的完整性,以对事务准确、有效地聚类。

更多地,在本发明实施例中,事务起始标识为起始语句,事务结束标识为结束语句,在一个事务开始进行或将要结束时,在起始时间点与结束时间点下的语句请求中加入用以识别的标识(如特殊字符)来划分一个完整的事务,便于对起始语句与结束语句进行分辨。由于事务本身即由多个语句请求构成,起始语句与结束语句分别为一个事务的开始与结束,通过事务本身具备的起始语句与结束语句,分别作为本发明实施例中的事务起始标识与事务结束标识,无需额外设置其他的标识来对完整的事务进行识别,较为方便准确。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号