一种数据库请求分析方法、系统、电子设备及存储介质与流程
未命名
07-20
阅读:116
评论:0
1.本技术涉及数据库技术领域,具体涉及一种数据库请求分析方法、系统、电子设备及存储介质。
背景技术:
2.通过对大量数据库请求进行数据分析挖掘可以辅助优化数据库性能或者向用户精准推荐一些相关的产品,因此数据库请求的数据挖掘具有很多的重要意义。
3.目前,虽然有一些通过分析数据库请求实现数据库自治服务的方案,但是由于实际工业数据的复杂性导致实际应用中的分析结果精度低、可解释性低。
技术实现要素:
4.本技术的目的是针对上述现有技术的不足提出的一种数据库请求分析方法、系统、电子设备及存储介质,该目的是通过以下技术方案实现的。
5.本技术的第一方面提出了一种数据库请求分析方法,所述方法包括:
6.从数据库的审计日志获取目标用户发起的数据库请求序列;
7.从所述数据库请求序列中筛选属于目标应用的目标数据库请求序列;
8.根据所述目标数据库请求序列确定所述目标用户的请求行为模式,所述请求行为模式包含至少一个子数据库请求序列。
9.本技术的第二方面提出了一种数据库请求分析系统,所述系统包括:
10.审计模块,用于为数据库生成包含用户发起数据库请求的审计日志;
11.分析模块,用于执行如上述第一方面所述方法的步骤。
12.本技术的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序以实现如上述第一方面所述方法的步骤。
13.本技术的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行以实现如上述第一方面所述方法的步骤。
14.基于上述第一方面和第二方面所述的数据库请求分析方法及系统,本技术至少具有如下有益效果或优点:
15.由于数据库的审计日志包括了用户对数据库的所有操作记录,因此从审计日志可以获取到目标用户发起的所有数据库请求,由于获取的数据库请求包含了用户在多种应用下发起的数据库请求,不同应用的数据库请求穿插在一起,如果直接识别请求行为模式,会影响应用原本的请求行为模式,无法得到有意义且具有可解释性的请求行为模式,因此在进行请求行为模式识别之前,通过从获取的数据库请求中筛选出属于目标应用的目标数据库请求,再根据目标数据库请求对目标用户的请求行为模式进行识别,以减少不同应用穿插情况对请求行为模式识别结果的影响,获得更具解释性且准确性高的请求行为模式识别结果,用以辅助目标用户优化数据库访问性能。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
17.图1为根据一示例性实施例示出的一种数据库请求分析方法的实施例流程图;
18.图2为根据一示例性实施例示出的一种目标数据库请求序列的筛选流程示意图;
19.图3为根据一示例性实施例示出的一种请求行为模式的具体确定流程示意图;
20.图4为根据图3所示实施例示出的一种由前缀树获得状态转移概率矩阵的示例图;
21.图5为根据一示例性实施例示出的一种数据库请求分析系统的结构示意图;
22.图6为根据一示例性实施例示出的一种电子设备的硬件结构示意图;
23.图7为根据一示例性实施例示出的一种存储介质的结构示意图。
具体实施方式
24.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
25.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
26.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
27.各个云服务厂商均提供有das(database autonomy service,数据库自治服务)服务,该das服务是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务。
28.目前,虽然有一些对大量数据库请求进行数据挖掘以用于数据库自治的方案,但是由于实际工业场景下的数据库请求数据繁多复杂,导致挖掘结果精度低、可解释性低。
29.为了解决上述技术问题,本技术提出一种数据库请求分析方法,由于数据库的审计日志包括了用户对数据库的所有操作记录,因此从审计日志可以获取到目标用户的全量数据库请求,并且在实际应用场景中,由于获取的数据库请求包含了用户在多种应用下发起的数据库请求,不同应用的数据库请求穿插在一起,如果直接识别请求行为模式,会破坏原本有的请求行为模式,而无法得到有意义且具有可解释性的请求行为模式,因此在进行请求行为模式识别之前,通过从全量数据库请求中筛选出属于目标应用的目标数据库请求,再根据目标数据库请求对目标用户的请求行为模式进行识别,以减少不同应用穿插情况对请求行为模式识别结果的影响,从而获得更具解释性且准确性高的请求行为模式识别结果,用以辅助目标用户优化数据库访问性能。
30.为了使本领域技术人员更好的理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
31.图1为本技术根据一示例性实施例示出的一种数据库请求分析方法的实施例流程图,包括如下步骤:
32.步骤101:从数据库的审计日志获取目标用户发起的数据库请求序列。
33.其中,目标用户属于有权限操作云服务上数据库的用户,也是需要对数据库访问性能进行优化的用户。审计日志包括了用户对数据库的所有操作记录,这些操作记录包含用户发起数据库请求所涉及的明细数据和除数据库请求之外的其他操作。
34.具体地,由于数据库请求的明细数据包含用户信息、操作语句文本、数据库请求的执行信息等,因此根据目标用户的用户信息可以从审计日志中获取到属于目标用户发起的所有数据库请求组成的数据库请求序列。
35.在步骤101中,数据库请求序列是各数据库请求按照时间戳从前到后的顺序排列形成的一个序列。
36.可替换地,为了将数据库异常现象与请求行为关联分析,可以通过从审计日志中获取目标用户在目标时间范围内发起过的数据库请求序列,该目标时间范围为目标用户操作数据库出现异常现象的一个时间范围。
37.步骤102:从该数据库请求序列中筛选属于目标应用的目标数据库请求序列。
38.其中,目标应用可以是云服务提供的用于操作数据库的一种应用程序。通常云服务提供有多种不同应用程序来实现不同的应用场景服务,用户根据实际使用需求通过在应用程序的操作界面中输入相应的操作语句,以向数据库发起相应的数据库请求。当然目标应用也可以是用户自身的应用程序,用户使用这样的应用程序操作数据库,产生数据库请求。
39.由此可见,步骤101中获取的数据库请求序列会包含用户在不同应用场景下发起的数据库请求,导致不同应用的数据库请求穿插在一起,如果此时直接识别请求行为模式,会破坏应用原本有的请求行为模式,而无法得到有意义且具有可解释性的请求行为模式,因此步骤102通过从全量数据库请求中筛选出属于目标应用的目标数据库请求,以减少应用穿插的影响。
40.针对步骤102进行目标数据库请求序列筛选的具体实现过程,参见图2所示,步骤102进一步包括:
41.步骤1021:确定数据库请求序列中各数据库请求的文本语义特征向量。
42.步骤1022:获取各数据库请求的执行信息。
43.在进行目标数据库请求筛选之前,通过步骤1021和步骤1022提取数据库请求的各项属性信息,在本技术实施例中,数据库请求的各项属性信息包括了数据库请求的文本语义特征向量和执行信息的全方位属性,用以增强筛选效果。
44.其中,文本语义特征向量表示的是数据库请求的操作语句文本的属性,执行信息表示的是数据库请求的资源使用属性。
45.可选地,对于文本语义特性向量,可以通过预先训练的语言模型提取操作语句文本的文本语义特征向量。其中,语言模型可以是泛化能力较强的模型,将操作语句文本转换为多维的特征向量,例如bert模型。
46.对于执行信息,由于审计日志记录了数据库请求的明细数据,因此可以从明细数据中获取到数据库请求的执行信息。
47.示意性的,执行信息包括有执行耗时、执行线程、扫描行数等。
48.值得注意的是,本技术实施例对步骤1021和步骤1022的执行顺序不进行具体限定。
49.步骤1023:基于文本语义特征向量和执行信息,从该数据库请求序列中筛选属于目标应用的目标数据库请求。
50.其中,数据库请求的文本语义特征向量和执行信息可以反映数据库请求的使用场景。
51.在一可选实施方式中,可以将数据库请求序列中各数据库请求的文本语义特征向量和执行信息输入预先训练的分类模型,得到预测结果,该预测结果用于指示数据库请求是否属于目标应用,从而将预测结果为属于目标应用的数据库请求组成的序列确定为目标数据库请求序列。
52.其中,通过使用分类模型学习到属于目标应用的数据库请求的各项属性信息后,便可以使用分类模型根据输入的数据库请求的各项属性信息预测数据库请求是否属于目标应用,得到准确的预测结果。
53.在另一可选实施方式中,考虑到数据库请求序列的请求数量庞大可能会降低筛选效率,可以先将数据库请求序列划分为多个数据库请求组,然后针对每个数据库请求组,将该数据库请求组中各数据库请求的文本语义特征向量和执行信息输入预先为该数据库请求组训练的分类模型,得到预测结果,该预测结果用于指示数据库请求是否属于目标应用,最后将预测结果为属于目标应用的数据库请求组成的序列确定为目标数据库请求序列。这样,通过划分多个分组,且每个分组对应使用一个分类模型进行预测,从而可以降低每个分类模型的预测数据量,有效提升筛选效率。
54.示意性的,数据库请求序列的划分方式可以按照各数据库请求的执行线程进行划分,当然也可以平均方式划分,本技术对具体采用的划分方式不进行具体限定。
55.需要说明的是,在使用分类模型进行预测之前,还需要对分类模型进行训练,针对分类模型的训练过程:可以通过获取包含属于目标应用的数据库请求和不属于目标应用的数据库请求的训练集,并获取训练集中各数据库请求的文本语义特征向量和执行信息,然后利用训练集中各数据库请求的文本语义特征向量和执行信息训练进行模型训练,得到分类模型。
56.其中,属于目标应用的数据库请求和不属于目标应用的数据库请求可以分别使用不同的标签进行标注。
57.步骤103:根据目标数据库请求序列确定目标用户的请求行为模式。
58.其中,该请求行为模式包含至少一个子数据库请求序列,即每一子数据库请求序列的组合形式表示了一种目标用户访问数据库的行为习惯。
59.值得注意的是,该请求行为模式包含的每一子数据库请求序列均包含于目标数据库请求序列中。
60.以数据库请求是sql(structured query language,结构化查询语言)请求为例,使用sql请求的sql模板标识来表示数据库请求序列,假设目标数据库请求序列=
abababadac,确定的请求行为模式包含的一个子数据库请求序列=ba,可以看出,“ba”包含于“abababadac”,说明用户使用标识为b的sql模板发起数据库请求之后,便会接着使用标识为a的sql模板发起数据库请求。
61.需要说明的是,sql模板是某种操作类型sql语句的通用格式。通常每种操作类型下对应提供有多个sql模板,通过在sql模板直接输入相应的参数值便可形成一条具体的sql语句。
62.在一可选实施例中,在进行请求行为模式识别时,可以通过确定目标数据库请求序列中数据库请求之间的相关概率,然后基于该相关概率和目标数据库请求序列,确定目标用户的请求行为模式。
63.其中,数据库请求之间的相关概率是数据库请求关联出现的概率,由于用户发起的数据库请求之间具有一定的关联关系,因此使用数据库请求之间的相关概率可以更加精准的识别到目标数据库请求序列的请求行为模式。
64.在一可选实施方式中,数据库请求之间的相关概率可以是马尔可夫模型的状态转移概率,下面通过马尔可夫模型对目标数据库请求序列进行挖掘,获得请求行为模式,具体实现过程可以包括:
65.步骤1031:确定目标数据库请求序列中数据库请求之间的状态转移概率,根据状态转移概率确定马尔可夫模型的目标阶数。
66.其中,在模型建立时,可以设置一个合理的马尔可夫模型的阶数范围,然后根据状态转移概率,在这个阶数范围内选择一个既能比较好的表达数据,又不至于模型过拟合的目标阶数。
67.在一具体实施方式中,针对预设阶数范围中的每一阶数,根据该阶数建立目标数据库请求序列的前缀树,根据该前缀树确定相应的状态转移概率矩阵,并根据该状态转移概率矩阵确定该阶数的模型代价值,然后选择最小模型代价值对应的阶数作为马尔可夫模型的目标阶数。
68.其中,马尔可夫模型的阶数决定了前缀树的高度,例如1阶马尔可夫模型,由于将来的状态只取决于上一个状态,因此需要建立高度为2的前缀树来计算状态转移概率;2阶马尔可夫模型,由于将来的状态取决于上两个状态,那么需要建立高度为3的前缀树来计算状态转移概率。
69.仍以数据库请求是sql请求,使用sql请求的sql模板标识来表示数据库请求序列为例,假设目标数据库请求序列t=abababadac,参见图4所示,是为1阶马尔可夫模型对应建立的高度为2的前缀树,由图4可以看出,高度为2的前缀树有2层节点,节点n0为根节点,节点n1表示a在序列中出现5次,节点n5表示ab在序列中出现3次,以此类推。
70.具体地,为了减少运算,同时提高马尔可夫模型的泛化能力,可以根据剪枝模型的mdl(minimum description length,最小描述长度)原理来计算状态转移概率矩阵,即先根据目标数据库请求序列包含的请求种类数量和马尔可夫模型的阶数确定状态转移概率矩阵的大小,然后建立的前缀树计算矩阵中每一元素的状态转移概率。
71.其中,状态转移矩阵的大小为∣t∣
阶数
×
∣t∣,|t|是目标数据库请求序列的请求种类数量。
72.进一步地,在使用mdl原理计算状态转移概率过程中,先确定一个阈值τ=1/|t|,
然后使用该阈值τ来判断状态转移概率的方法是:(a)如果prob(x|seq)大于等于阈值τ,那么状态转移概率prob(x|seq)就等于计算所得;(b)如果其余的状态转移概率不满足条件(a),那么其余的状态转移概率被认为是均匀分布的。
73.继续参见上述图4所示,目标数据库请求序列的请求种类数量∣t∣=4,即包含sql模板a、sql模板b、sql模板c、sql模板d四种,因此状态转移概率矩阵的大小为∣t∣
阶数
×
∣t∣=41×
4。阈值τ=1/|t|=1/4,以前缀树最左边的分支对应的状态转移概率矩阵的第一列为例,prob(b|a)=val(n5)/val(n1)=3/5》1/4,prob(c|a)=val(n6)/val(n1)=1/5《1/4,prob(d|a)=val(n7)/val(n1)=1/5《1/4,prob(a|a)=0/val(n1)=0《1/4,由于prob(c|a)、prob(d|a)、prob(a|a)这三个状态转移概率都小于阈值τ,因此这三个状态转移概率是均匀分布的,具体概率值应该为:(1-prob(b|a))/3=2/15。对于其他列的状态转移概率同样根据上述原理计算获得,最终获得如图4所示的状态转移概率矩阵。
74.再进一步地,根据剪枝模型的mdl原理来计算模型代价值cost:
75.cost(x,m
θ(k)
)=2log k+1+2log m+1+m((k+1)log|t|+2log n)-log prob(x|m
θ(k)
)
76.其中,k为马尔可夫模型的阶数;m为状态转移概率矩阵中大于阈值τ的状态转移概率数量;|t|为序列中请求种类数量;n为序列的长度;prob(x|m
θ(k)
)为形成目标数据库请求序列的状态转移概率连乘计算得到的概率值,以1阶的马尔可夫模型为例,如上述图4所示,形成目标数据库请求序列的状态转移概率连乘计算得到prob(x|m
θ(1)
):
77.prob(x|m
θ(1)
)
78.=prob(a)
×
prob(b|a)
×
prob(a|b)
×
prob(b|a)
×
prob(a|b)
×
prob(b|a)
×
prob(a|b)
×
prob(d|a)
×
prob(a|d)
×
prob(c|a)
79.步骤1032:通过该目标阶数的马尔可夫模型对目标数据库请求进行分析,得到目标用户的请求行为模式。
80.具体实施时,请求行为模式包括的是至少一个子数据库请求序列,分析为一个子数据库请求序列的原理是:以k阶马尔可夫模型为例,可以预先设置选择一个子数据库请求序列的阈值θ,如果状态转移概率prob(s|c1...ck)≥θ,那么c1...cks被认为是一个子数据库请求序列,而如果状态转移概率prob(s|c1...ck)<θ,那么c1...ck被认为是一个子数据库请求序列。
81.参见上述图4所示,仍以k=1阶的马尔可夫模型为例,预先设置阈值θ=0.7,一个子数据库请求序列定义为一个pattern,在目标数据库请求序列t=abababadac中,首先把pattern初始化为序列t中的第一个:a,然后计算prob(t[2]t[1])=prob(b|a)=3/5<0.7,所以第一个pattern为a;接着初始化下一个pattern为b,计算prob(t[3]t[2])=prob(a|b)=1>0.7,接着更新pattern为ba,计算prob(t[4]t[3])=prob(b|a)=3/5<0.7,所以ba是第二个pattern;初始化下一个pattern为b,计算prob(t[5]t[4])=prob(b|a)=3/5<0.7,prob(t[6]t[5])=prob(b|a)=3/5<0.7,接着更新pattern为ba,计算prob(t[7]t[6])=prob(a|b)=1>0.7,所以ba是第三个pattern;再继续计算可以得到序列t的pattern有{a,ba,ba,ba,da,c}。
[0082]
需要说明的是,一段较长且复杂的目标数据库请求序列可能会有许多重复出现的pattern。对于这类情况可以进行循环检测,并对相同的循环进行pattern合并。例如序列t的pattern{a,ba,ba,ba,da,c}中的三个“ba”可以合并为一个pattern,因此序列t的最终
pattern有{a,ba,da,c}。
[0083]
可以理解的是,上述给出的采用马尔可夫模型的状态转移概率进行请求行为模式挖掘方案,仅为一个具体示例说明,对于其他种类相关概率方式的请求行为模式挖掘也在本技术保护范围之内,例如还可以采用概率图模型的有向图或无向图的关联概率进行请求行为模式挖掘。
[0084]
需要说明的是,在执行步骤103之后,可以通过获取请求行为模式包含的每一子数据库请求序列中各数据库请求使用的请求模版,并根据请求行为模式包含的每一子数据库请求序列中各数据库请求的操作类型确定优化建议,然后输出包含请求行为模式、获取的请求模版及优化建议的可视化界面,供用户进行数据库性能优化。
[0085]
例如,对于一个子数据库请求序列中相同操作类型的数据库请求可以给出并行执行的优化建议。
[0086]
需要进一步说明的是,针对步骤101至步骤103的请求行为模式分析方案,可以对分析结果进行验证,以证明步骤101至步骤103的分析方案的准确性。
[0087]
可选的,可以通过获取数据库请求序列所属的时间戳范围,并获取预先采集的由目标用户产生且位于该时间戳范围内的应用日志,该应用日志记录有目标用户发起的属于目标应用的数据库请求序列,然后根据应用日志对请求行为模式进行正确性验证。
[0088]
其中,应用日志的采集是专用于分析结果验证的,在实际工业场景中,云服务的应用运行过程中不会记录用户的数据库请求。
[0089]
具体地,针对根据应用日志对请求行为模式进行正确性验证的过程,针对请求行为模式包含的每一子数据库请求序列,根据应用日志包含该子数据库请求序列的组合形式,可以确定该子数据库请求序列正确,根据应用日志未包含该子数据库请求序列的组合形式,可以确定该子数据库请求序列错误。从而基于这些被验过为正确或错误的子数据库请求序列便可获得本技术实施例方案的精度情况。
[0090]
至此,完成上述图1所示的分析流程,由于数据库的审计日志包括了用户对数据库的所有操作记录,因此从审计日志可以获取到目标用户的全量数据库请求,由于获取的全量数据库请求包含了用户在多种应用下发起的数据库请求,不同应用的数据库请求穿插在一起,如果直接识别请求行为模式,会影响应用原本的请求行为模式,无法得到有意义且具有可解释性的请求行为模式,因此在进行请求行为模式识别之前,通过从全量数据库请求中筛选出属于目标应用的目标数据库请求,再根据目标数据库请求对目标用户的请求行为模式进行识别,以减少不同应用穿插情况对请求行为模式识别结果的影响,获得更具解释性且准确性高的请求行为模式识别结果,用以辅助目标用户优化数据库访问性能。
[0091]
与前述数据库请求分析方法的实施例相对应,本技术还提供了数据库请求分析系统的实施例。
[0092]
图5为本技术根据一示例性实施例示出的一种数据库请求分析系统的结构示意图,该系统用于执行上述任一实施例提供的数据库请求分析方法,如图5所示,该数据库请求分析系统包括:
[0093]
审计模块510,用于为数据库生成包含用户发起数据库请求的审计日志;
[0094]
分析模块520,用于执行上文描述的数据库请求分析方法。
[0095]
上述系统中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的
实现过程,在此不再赘述。
[0096]
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0097]
本技术实施方式还提供一种与前述实施方式所提供的数据库请求分析方法对应的电子设备,以执行上述数据库请求分析方法。
[0098]
图6为本技术根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602和存储器603通过总线604完成相互间的通信。处理器602通过读取并执行存储器603中与数据库请求分析方法的控制逻辑对应的机器可执行指令,可执行上文描述的数据库请求分析方法,该方法的具体内容参见上述实施例,此处不再累述。
[0099]
本技术中提到的存储器603可以是任何电子、磁性、光学或其它物理存储装置,可以包含存储信息,如可执行指令、数据等等。具体地,存储器603可以是ram(random access memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。通过至少一个通信接口601(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
[0100]
总线604可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器603用于存储程序,所述处理器602在接收到执行指令后,执行所述程序。
[0101]
处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器,包括网络处理器(network processor,简称np)、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
[0102]
本技术实施例提供的电子设备与本技术实施例提供的数据库请求分析方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0103]
本技术实施方式还提供一种与前述实施方式所提供的数据库请求分析方法对应的计算机可读存储介质,请参考图7所示,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的数据库请求分析方法。
[0104]
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存
储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0105]
本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的数据库请求分析方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0106]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0107]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0108]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
技术特征:
1.一种数据库请求分析方法,其特征在于,所述方法包括:从数据库的审计日志获取目标用户发起的数据库请求序列;从所述数据库请求序列中筛选属于目标应用的目标数据库请求序列;根据所述目标数据库请求序列确定所述目标用户的请求行为模式,所述请求行为模式包含至少一个子数据库请求序列。2.根据权利要求1所述的方法,其特征在于,所述从所述数据库请求序列中筛选属于目标应用的目标数据库请求序列,包括:确定所述数据库请求序列中各数据库请求的文本语义特征向量;获取所述各数据库请求的执行信息;基于所述文本语义特征向量和所述执行信息,从所述数据库请求序列中筛选属于目标应用的目标数据库请求。3.根据权利要求2所述的方法,其特征在于,所述基于所述文本语义特征向量和所述执行信息,从所述数据库请求序列中筛选属于目标应用的目标数据库请求序列,包括:将所述数据库请求序列中各数据库请求的文本语义特征向量和执行信息输入预先训练的分类模型,得到预测结果,所述预测结果用于指示数据库请求是否属于目标应用;将预测结果为属于目标应用的数据库请求组成的序列确定为目标数据库请求序列。4.根据权利要求2所述的方法,其特征在于,所述基于所述文本语义特征向量和所述执行信息,从所述数据库请求序列中筛选属于目标应用的目标数据库请求序列,包括:将所述数据库请求序列划分为多个数据库请求组;针对每个数据库请求组,将所述数据库请求组中各数据库请求的文本语义特征向量和执行信息输入预先为所述数据库请求组训练的分类模型,得到预测结果;所述预测结果用于指示数据库请求是否属于目标应用;将预测结果为属于目标应用的数据库请求组成的序列确定为目标数据库请求序列。5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括分类模型的训练过程:获取包含属于目标应用的数据库请求和不属于目标应用的数据库请求的训练集;获取所述训练集中各数据库请求的文本语义特征向量和执行信息;利用所述训练集中各数据库请求的文本语义特征向量和执行信息训练进行模型训练,得到所述分类模型。6.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述目标数据库请求序列确定所述目标用户的请求行为模式,包括:确定所述目标数据库请求序列中数据库请求之间的相关概率;基于所述相关概率和所述目标数据库请求序列,确定所述目标用户的请求行为模式。7.根据权利要求1-4任一项所述的方法,其特征在于,在根据所述目标数据库请求序列确定所述目标用户的请求行为模式之后,所述方法还包括:获取所述数据库请求序列所属的时间戳范围;获取预先采集的由所述目标用户产生且位于所述时间戳范围内的应用日志;所述应用日志记录有所述目标用户发起的属于所述目标应用的数据库请求序列;根据所述应用日志对所述请求行为模式进行正确性验证。8.根据权利要求7所述的方法,其特征在于,所述根据所述应用日志对所述请求行为模
式进行正确性验证,包括:针对所述请求行为模式包含的每一子数据库请求序列,根据所述应用日志包含所述子数据库请求序列的组合形式,确定所述子数据库请求序列正确;根据所述应用日志未包含所述子数据库请求序列的组合形式,确定所述子数据库请求序列错误。9.根据权利要求1-4任一项所述的方法,其特征在于,在根据所述目标数据库请求序列确定所述目标用户的请求行为模式之后,所述方法还包括:获取所述请求行为模式包含的每一子数据库请求序列中各数据库请求使用的请求模版;根据所述请求行为模式包含的每一子数据库请求序列中各数据库请求的操作类型确定优化建议;输出包含所述请求行为模式、获取的请求模版及所述优化建议的可视化界面。10.根据权利要求1所述的方法,其特征在于,所述从数据库的审计日志获取目标用户的数据库请求序列,包括:从数据库的审计日志中获取目标用户在目标时间范围内发起过的数据库请求序列;所述目标时间范围为目标用户操作数据库出现异常现象的时间范围。11.一种数据库请求分析系统,其特征在于,所述系统包括:审计模块,用于为数据库生成包含用户发起数据库请求的审计日志;分析模块,用于执行如权利要求1-10任一项所述方法的步骤。12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序以实现如权利要求1-10任一项所述方法的步骤。13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行以实现如权利要求1-10任一项所述方法的步骤。
技术总结
本申请公开了一种数据库请求分析方法、系统、电子设备及存储介质,方法包括:从数据库的审计日志获取目标用户发起的数据库请求序列;从数据库请求序列中筛选属于目标应用的目标数据库请求序列;根据目标数据库请求序列确定目标用户的请求行为模式。由于从审计日志获取的数据库请求包含了多种应用的数据库请求,不同应用的数据库请求穿插在一起,因此通过从获取的数据库请求中筛选出属于目标应用的目标数据库请求,再根据目标数据库请求对目标用户的请求行为模式进行识别,以减少不同应用穿插情况对请求行为模式识别结果的影响,获得更具解释性且准确性高的请求行为模式识别结果,用以辅助目标用户优化数据库访问性能。以辅助目标用户优化数据库访问性能。以辅助目标用户优化数据库访问性能。
技术研发人员:王安妮 陈杰 李迪梦 梁高中 李飞飞
受保护的技术使用者:阿里云计算有限公司
技术研发日:2023.02.23
技术公布日:2023/7/19
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
