数据处理方法以及装置与流程

文档序号:32404779发布日期:2022-12-02 20:13阅读:63来源:国知局
数据处理方法以及装置与流程

1.本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种数据处理系统,一种计算设备,以及一种计算机可读存储介质。


背景技术:

2.数据库代理组件是位于数据库服务端和应用服务端之间的网络代理服务,用于代理应用服务端访问数据库时的请求,具有高可用、高性能、可运维、简单易用等特点。
3.为将数据库代理组件大范围使用,通常需对数据库代理组件的代理能力做完整的覆盖性验证,即验证(仿真)数据库代理组件对应用服务端的数据库访问请求的处理能力。因此,如何对该处理能力进行验证,以及如何提高验证结果的准确性,成为亟需解决的问题。


技术实现要素:

4.有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种数据处理系统,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
6.获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果;
7.确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句;
8.根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果;
9.根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
10.根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
11.获取模块,被配置为获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果;
12.生成模块,被配置为确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句;
13.处理模块,被配置为根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果;
14.确定模块,被配置为根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
15.根据本说明书实施例的第三方面,提供了一种数据处理系统,包括:
16.数据库代理组件以及sql回放组件;
17.所述数据库代理组件,用于获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果;
18.所述sql回放组件,用于确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据访问存储空间的空间标识,生成目标sql语句;
19.所述数据库代理组件,用于根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
20.根据本说明书实施例的第四方面,提供了一种计算设备,包括:
21.存储器和处理器;
22.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现所述数据处理方法的步骤。
23.根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
24.本说明书一个实施例通过获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果,确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句,根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
25.本说明书实施例先通过执行初始sql语句,以对数据库的第一数据表中的数据进行处理,生成第一处理结果,然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,进行sql回放,即为该初始sql语句添加空间标识,以使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理,生成第二处理结果,然后根据第一处理结果和第二处理结果确定目标业务的处理结果,有利于保证能够对数据库代理组件的代理能力做完整的覆盖性验证,从而提高验证结果的准确性。
附图说明
26.图1是本说明书一个实施例提供的一种数据处理系统的架构图;
27.图2是本说明书一个实施例提供的一种数据处理方法的处理流程图;
28.图3是本说明书一个实施例提供的一种数据处理过程的示意图;
29.图4是本说明书一个实施例提供的一种数据处理方法的处理过程流程图;
30.图5是本说明书一个实施例提供的一种数据处理装置的示意图;
31.图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
32.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
33.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,
而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
34.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
35.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
36.关系型数据库:是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
37.数据库代理组件是位于数据库服务端和应用服务端之间的网络代理服务,用于代理应用服务端访问数据库时的请求,具有高可用、高性能、可运维、简单易用等特点。
38.为将数据库代理组件大范围使用,通常需对数据库代理组件的代理能力做完整的覆盖性验证。即验证(仿真)数据库代理组件对应用服务端的数据库访问请求的处理能力。
39.而目前用于存放仿真数据的仿真环境数据库需从生产端同步仿真数据,仿真数据被同步至仿真环境数据库后,即被存放于基线表,部分测试和开发用户(目标用户)则需要对仿真环境数据库中存储的仿真数据进行新增和删除等操作,以根据操作结果对数据库代理组件的代理能力进行仿真,但由于仿真环境数据库通常是按照一定的数据同步周期进行仿真数据的同步操作,导致若用户对仿真环境数据库中上一周期的仿真数据进行修改,则在同步下一周期的仿真数据时,修改后的数据则会被覆盖,即该下一周期的仿真数据会覆盖上一周期的仿真数据。
40.另外,对仿真数据进行新增和删除等操作的请求通常以sql语句的形式发送,数据库代理组件在处理请求时,需要将请求进行sql转换,来决策处理基线表和数据存储空间中的仿真数据。为保证仿真环境的稳定性,通常仅针对特定流量(开发或测试用户的操作请求)做sql转换,并需要开发和测试用户参与进行操作结果的比对,以确定数据库代理组件的代理能力是否满足业务需求;但通过这种方式无法对数据库代理组件的代理能力做完整的覆盖性验证,导致数据库代理组件无法大范围使用。
41.面对仿真环境稳定性保障和数据库代理组件批量大范围使用的矛盾,本说明书实施例提供一种数据处理方法以解决数据库代理组件在每个应用的成功率,并且能通过该数据来提升数据库代理组件在每个应用的成功率,无需业务的测试和开发介入来处理。
42.在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种数据处理系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
43.图1示出了根据本说明书一个实施例提供的一种数据处理系统的架构图,包括:
44.数据库代理组件以及sql回放组件;
45.所述数据库代理组件,用于获取并执行目标用户针对目标业务提交的初始sql语
句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果;
46.所述sql回放组件,用于确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据访问存储空间的空间标识,生成目标sql语句;
47.所述数据库代理组件,用于根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
48.可选地,数据库代理组件获取并执行目标用户针对目标业务提交的初始sql语句;
49.sql回放组件确定所述目标用户在所述数据库中的数据存储空间。
50.可选地,数据库代理组件按照预设协议解析规则对目标sql语句进行解析,并根据解析结果中包含的空间标识,确定所述数据库中待处理的第二数据表。
51.可选地,数据处理系统还包括sql采样组件;
52.sql采样组件按照预设采样周期,对所述初始sql语句进行采样处理;
53.sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在采样结果包含的初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
54.可选地,数据处理系统还包括sql代理执行组件;
55.sql回放组件将所述目标sql语句发送至sql代理执行组件;
56.sql代理执行组件调用数据库代理组件,并通过所述数据库代理组件根据所述目标sql语句确定所述数据库中待处理的第二数据表。
57.可选地,sql回放组件对采样结果中包含的初始sql语句进行清洗,生成中间sql语句;
58.sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在所述中间sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
59.可选地,sql回放组件对所述采样结果中包含的初始sql语句进行分类,生成对应的分类结果;
60.按照预设数量阈值对所述分类结果中、每个分类结果包含的初始sql语句进行筛选,生成中间sql语句。
61.可选地,数据库对所述解析结果进行语法检测,在检测通过的情况下,执行所述目标sql语句;
62.相应地,数据库代理组件将所述第一处理结果与所述第二处理结果进行比对,并根据比对结果确定所述目标业务的处理结果。
63.本说明书一个实施例通过获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果,确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句,根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
64.本说明书实施例先通过执行初始sql语句,以对数据库的第一数据表中的数据进行处理,生成第一处理结果,然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,进行sql回放,即为该初始sql语句添加空间标识,以使得数据库代理组件可根据该
空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理,生成第二处理结果,然后根据第一处理结果和第二处理结果确定目标业务的处理结果,有利于保证能够对数据库代理组件的代理能力做完整的覆盖性验证,从而提高验证结果的准确性。
65.上述为本实施例的一种数据处理系统的示意性方案。需要说明的是,该数据处理系统的技术方案与下述的数据处理方法的技术方案属于同一构思,数据处理系统的技术方案未详细描述的细节内容,均可以参见下述数据处理方法的技术方案的描述。
66.图2示出了根据本说明书一个实施例提供的一种数据处理方法的处理流程图,包括步骤202至步骤208。
67.步骤202,获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果。
68.具体的,第一数据表,即可以是基线表,在计算机术语中,基线(baseline)是软件文档或源码或其它产出物的一个稳定版本,基线是数据库中每个工件版本在特定时期的一个“快照”,不同“快照”即可共同组成基线表。
69.目标业务,包括但不限于交易业务、保险业务、理财业务等。
70.目前,数据库代理组件是位于数据库服务端和应用服务端之间的网络代理服务,用于代理应用服务端访问数据库时的请求,具有高可用、高性能、可运维、简单易用等特点。
71.为将数据库代理组件大范围使用,通常需对数据库代理组件的代理能力做完整的覆盖性验证。即验证(仿真)数据库代理组件对应用服务端的数据库访问请求的处理能力。
72.而目前用于存放仿真数据的仿真环境数据库需从生产端同步仿真数据,仿真数据被同步至仿真环境数据库后,即被存放于基线表,部分测试和开发用户(目标用户)则需要对仿真环境数据库中存储的仿真数据进行新增和删除等操作,以根据操作结果对数据库代理组件的代理能力进行仿真,但由于仿真环境数据库通常是按照一定的数据同步周期进行仿真数据的同步操作,导致若用户对仿真环境数据库中上一周期的仿真数据进行修改,则在同步下一周期的仿真数据时,修改后的数据则会被覆盖,即该下一周期的仿真数据会覆盖上一周期的仿真数据。
73.为解决这一问题,可在仿真环境数据库中分别为测试和开发用户分配一定的数据存储空间,用于存放仿真环境数据,而测试和开发用户在需要对仿真环境数据库中存储的仿真数据进行新增和删除等操作,以根据操作结果对数据库代理组件的代理能力进行仿真时,即可在为其分配的数据存储空间内进行数据的新增或删除等操作,操作结果仍可保存在该数据存储空间中,且由于该数据存储空间在分配给某一用户后,即由该用户独占该数据存储空间,因此,通过这种方式即可解决数据覆盖的问题。
74.基于此,在将当前周期的仿真数据同步至仿真环境数据后,若未同步下一周期的仿真数据,则仿真环境数据库中的基线表及数据存储空间中均存储有当前周期的仿真数据,这种情况下,若由测试和开发用户发送对仿真数据进行新增和删除等操作的请求,则可通过数据库代理组件处理该请求,以对基线表和数据存储空间中当前周期的仿真数据进行新增和删除等操作,并将操作结果进行比对,以对数据库代理组件的代理能力进行仿真。
75.但实际应用中,对仿真数据进行新增和删除等操作的请求通常以sql语句的形式发送,数据库代理组件在处理请求时,需要将请求进行sql转换,来决策处理基线表和数据存储空间中的仿真数据。为保证仿真环境的稳定性,通常仅针对特定流量(开发或测试用户
的操作请求)做sql转换,并需要开发和测试用户参与进行操作结果的比对,以确定数据库代理组件的代理能力是否满足业务需求;但通过这种方式无法对数据库代理组件的代理能力做完整的覆盖性验证,导致数据库代理组件无法大范围使用。
76.其中,对特定流量做sql转换,以根据转换结果对数据存储空间的仿真数据进行操作时,由于数据存储空间为某一开发用户或测试用户进行分配,并由该用户独占使用,因此,在对数据存储空间中的仿真数据进行操作时,数据库代理组件即需先根据sql语句确定开发或测试用户的数据存储空间,然后对该数据存储空间的仿真数据进行操作,但由于sql语句中通常未携带该数据存储空间的相关信息,即导致无法对数据库代理组件的代理能力做完整的覆盖性验证。
77.因此,为保证能够对数据库代理组件的代理能力做完整的覆盖性验证,本说明书实施例可进行sql回放,即先通过执行初始sql语句,以对仿真环境数据库的基线表(第一数据表)中的仿真数据进行处理,处理方式包括但不限于增、删、改、查等,生成第一处理结果,然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,为该初始sql语句添加空间标识,以使得数据库代理组件可根据该空间标识对数据存储空间的仿真数据进行处理。
78.步骤204,确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
79.具体的,如前所述,本说明书实施例在获取目标用户针对目标业务提交的初始sql语句后,即可先由数据库代理组件将初始sql语句发送至仿真环境数据库,以通过执行初始sql语句的方式,对仿真环境数据库的基线表(第一数据表)中的仿真数据进行处理,处理方式包括但不限于增、删、改、查等,生成第一处理结果。然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,可先确定预先在仿真环境数据库中为目标用户分配的数据存储空间,并为该初始sql语句添加该数据存储空间的空间标识,生成目标sql语句,以使得数据库代理组件可根据该空间标识对数据存储空间的仿真数据进行处理。
80.实际应用中,空间标识即virtual_id,而数据存储空间中的仿真数据可通过虚拟表的形式存储,虚拟表中的仿真数据与基线表保持一致,但与基线表相比,虚拟表中新增了vitual_id,即数据存储空间的空间标识,用于表征仿真环境数据库中预先为目标用户分配的数据存储空间。
81.具体实施时,获取并执行目标用户针对目标业务提交的初始sql语句,具体即通过数据库代理组件获取并执行目标用户针对目标业务提交的初始sql语句;
82.相应地,确定所述目标用户在所述数据库中的数据存储空间,具体即通过sql回放组件确定所述目标用户在所述数据库中的数据存储空间。
83.具体的,通过数据库代理组件获取并执行目标用户针对目标业务提交的初始sql语句后,在确定初始sql语句中不包含数据存储空间的空间标识的情况下,可通过sql回放组件确定预先在仿真环境数据库中为目标用户分配的数据存储空间,并为该初始sql语句添加该数据存储空间的空间标识,生成目标sql语句,以使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理。
84.另外,在执行目标用户针对目标业务提交的初始sql语句,对数据库中与目标业务相关的第一数据表进行处理,生成第一处理结果后,还可通过sql采样组件按照预设采样周
期,对所述初始sql语句进行采样处理;
85.相应地,所述确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句,包括:
86.通过sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在采样结果包含的初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
87.具体的,为保证仿真环境的稳定性,本说明书实施例可通过sql采样组件按照预设采样周期,对初始sql语句进行采样处理,并通过sql回放组件确定预先在仿真环境数据库中为目标用户分配的数据存储空间,以为采样结果中的初始sql语句添加该数据存储空间的空间标识,生成目标sql语句,使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理。
88.或者,对初始sql语句进行采样处理后,通过sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在采样结果包含的初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句,包括:
89.通过sql回放组件对采样结果中包含的初始sql语句进行清洗,生成中间sql语句;
90.通过所述sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在所述中间sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
91.具体实施时,通过sql回放组件对采样结果中包含的初始sql语句进行清洗,生成中间sql语句,包括:
92.通过sql回放组件对所述采样结果中包含的初始sql语句进行分类,生成对应的分类结果;
93.按照预设数量阈值对所述分类结果中、每个分类结果包含的初始sql语句进行筛选,生成中间sql语句。
94.具体的,在对初始sql语句进行采样后,还可对采样结果中包含的初始sql语句进行清洗,以对清洗结果中的sql语句添加数据存储空间的空间标识,生成目标sql语句。
95.其中,对初始sql语句进行采样的采样周期可根据实际需求确定,在此不做限制,采样完成后,可进一步对采样结果中包含的sql语句进行清洗,具体可对采样结果中包含的sql语句进行类型划分,例如分为增、删、改、查四类,然后可从每一类中筛选一定数量的sql语句作为清洗结果,该清洗结果中包含的sql语句,即剩余的sql语句,即为中间sql语句。
96.生成中间sql语句后,可通过sql回放组件确定目标用户在所述数据库中的数据存储空间,并在中间sql语句中添加该数据存储空间的空间标识,生成目标sql语句。
97.本说明书实施例在对sql语句进行采样后,还可进一步对采样结果中的sql语句进行清洗,以减少sql语句的执行数量,从而有利于为保证仿真环境的稳定性。
98.具体实施时,生成目标sql语句后,即可通过所述sql回放组件将所述目标sql语句发送至sql代理执行组件;
99.通过所述sql代理执行组件调用数据库代理组件,并通过所述数据库代理组件根据所述目标sql语句确定所述数据库中待处理的第二数据表。
100.具体的,sql回放组件在生成目标sql语句后,即可通过sql代理执行组件将目标sql语句传输至数据库代理组件,由数据库代理组件对目标sql语句进行解析处理,以确定待处理的数据存储空间,即确定仿真环境数据库中待处理的第二数据表(虚拟表)。
101.步骤206,根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果。
102.具体实施时,根据所述目标sql语句确定所述数据库中待处理的第二数据表,具体即通过所述数据库代理组件及所述目标sql语句,确定所述数据库中待处理的第二数据表。
103.进一步的,通过所述数据库代理组件及所述目标sql语句,确定所述数据库中待处理的第二数据表,包括:
104.通过所述数据库代理组件按照预设协议解析规则对所述目标sql语句进行解析,并根据解析结果中包含的所述空间标识,确定所述数据库中待处理的第二数据表。
105.具体的,数据库代理组件接收到目标sql语句后,即可按照预设协议解析规则对其进行解析,以根据解析结果中包含的空间标识确定仿真环境数据库中待处理的数据存储空间,即待处理的第二数据表,从而通过执行目标sql语句,以对第二数据表进行处理(例如,对第二数据表中的数据进行增、删、改、查等处理),生成第二处理结果。
106.本说明书实施例在确定初始sql语句中不包含数据存储空间的空间标识的情况下,进行sql回放,即为该初始sql语句添加空间标识,以使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理,生成第二处理结果,后续可根据第一处理结果和第二处理结果确定目标业务的处理结果,有利于保证能够对数据库代理组件的代理能力做完整的覆盖性验证,从而提高验证结果的准确性。
107.步骤208,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
108.具体的,在生成第一处理结果和第二处理结果后,即可根据第一处理结果和第二处理结果确定目标业务的处理结果,实际应用中,目标业务的处理结果即可以是执行成功或执行失败,从而可以根据该处理结果对数据库代理组件的代理能力进行评估,并将评估结果作为其代理能力的仿真结果。
109.例如,若目标用户针对目标业务提交了x个初始sql语句,其中,根据x1个初始sql语句确定的目标业务的处理结果为执行成功,则数据库代理组件的代理能力(执行成功率)即为x1/x*100%。
110.具体实施时,执行所述目标sql语句之前,还包括:
111.对所述解析结果进行语法检测;
112.在检测通过的情况下,执行所述目标sql语句;
113.相应地,所述根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果,包括:
114.将所述第一处理结果与所述第二处理结果进行比对,并根据比对结果确定所述目标业务的处理结果。
115.具体的,数据库代理组件在对目标sql语句进行解析获得对应的解析结果,并将解析结果发送至仿真环境数据库后,仿真环境数据库可先判断解析结果的语法是否能通过仿真环境数据库自身的语法检测,若未能通过检测,则确定目标业务的处理结果为执行失败;若能通过检测,则在生成第二处理结果后,可将第一处理结果和第二处理结果进行比对,在比对一致的情况下,可确定目标业务的处理结果为执行成功,在比对不一致的情况下,可确定目标业务的处理结果为执行失败。
116.另外,本说明书实施例通过对sql语句进行采样,可将sql语句进行固化,从而使得在根据目标业务的处理结果确定数据库代理组件的代理能力不满足需求的情况下,可通过对数据库代理组件进行调整,并基于调整结果对采样获得的sql语句重新进行执行,以根据执行结果对数据库代理组件的代理能力进行检验,从而保证检验结果的准确性。
117.本说明书实施例提供的一种数据处理过程的示意图如图3所示,图3中包含应用服务端、数据库代理组件、数据流管道、sql回放组件以及数据库,数据库代理组件中还包含sql代理执行组件、sql采样组件以及协议解析sql转换组件。
118.具体先由应用服务端接收用户的数据处理请求,该数据处理请求以sql语句的形式提交,应用服务端将该sql语句(sql1)发送至数据库代理组件,然后由数据库代理组件执行该sql语句,以对数据库(仿真环境数据库)中的第一数据表即基线表中的仿真数据进行处理,生成第一处理结果(sql1执行结果)。
119.然后在该sql1中未携带数据存储空间的空间标识,即未携带virtual_id的情况下,可由数据库代理组件中的sql采样组件对该部分sql语句进行采样,再通过数据流管道将采样结果发送至sql回放组件,由sql回放组件对采样结果中包含的sql语句进行清洗,再对清洗结果中的sql语句进行回放,以在清洗结果所包含的sql语句中添加sql代理执行标记,即数据存储空间的空间标识,并由sql代理执行组件将添加标记的sql语句发送至协议解析sql转换组件进行解析(进行sql转换);然后在解析完成后,即可根据解析结果中的virtual_id,确定待处理的目标虚拟表,然后可执行转换后的sql语句,以对仿真环境数据库中该目标虚拟表中的仿真数据进行处理,生成对应的第二处理结果(转换后sql1的执行结果),然后可通过将第一处理结果和第二处理结果进行比对,以确定二者是否一致的方式,确定sql语句的执行成功率。其中,在比对一致的情况下,可确定sql1的执行结果为执行成功,在比对不一致的情况下,可确定sql1的执行结果为执行失败,然后可将sql语句中执行成功的sql语句的数量,与sql语句总数的比值,作为sql语句的执行成功率,该sql语句执行成功率即可用于评估数据库代理组件的代理能力,且其代理能力可与sql语句执行成功率成正比。
120.其中,对于sql语句采样功能,采样数据分布在每个单机上,保证每个应用的sql请求都有机会写入到数据流管道中,通过流式数据处理方式,对sql语句进行批量清洗,清洗完成后,对sql语句进行回放,回放时需要带上查询虚拟表的标记,即数据存储空间的空间标识,通过这个标记可触发sql转换功能,以由数据库代理组件按照预设解析协议规则对sql语句进行解析,并根据解析结果确定仿真环境数据库中待处理的第二数据表(虚拟表),然后执行sql语句,以对第二数据表中的仿真数据进行处理,生成第二处理结果;sql语句执行完成后,需要做结果校验,具体即将第一处理结果与第二处理结果进行一致性校验,根据校验结果给出执行成功率。
121.因此,在该链路中,测试或者开发用户不需要直接参与进来对数据库代理组件的代理能力进行验证,同时由于采样的sql语句都是在仿真环境实际使用的sql语句,保证了数据的真实性。
122.在该链路中,实际没有影响仿真常态化流量在数据库中执行的情况,有利于保证现有仿真环境的稳定性。
123.可见,通过这种数据处理方式,测试或者开发用户不需要直接参与进来做数据库
代理组件的验证,减少了人工成本;回放sql和常态化sql的执行过程实现了隔离,运行时不会影响到仿真环境的稳定性;通过结果校验可以比对出实际结果和预期执行结果,有效获取数据库代理组件的代理成功率;并且由于上述流程是通用流程,不同的应用均可以进行验证,可以有效获取应用的覆盖情况。
124.本说明书一个实施例通过获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果,确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句,根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
125.本说明书实施例先通过执行初始sql语句,以对数据库的第一数据表中的数据进行处理,生成第一处理结果,然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,进行sql回放,即为该初始sql语句添加空间标识,以使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理,生成第二处理结果,然后根据第一处理结果和第二处理结果确定目标业务的处理结果,有利于保证能够对数据库代理组件的代理能力做完整的覆盖性验证,从而提高验证结果的准确性。
126.下述结合附图4,以本说明书提供的数据处理方法在实际场景的应用为例,对所述数据处理方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种数据处理方法的处理过程流程图,具体步骤包括步骤402至步骤422。
127.步骤402,通过数据库代理组件获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与目标业务相关的第一数据表进行处理,生成第一处理结果。
128.步骤404,通过sql采样组件按照预设采样周期,对初始sql语句进行采样处理。
129.步骤406,通过sql回放组件对采样结果中包含的初始sql语句进行清洗,生成中间sql语句。
130.步骤408,通过sql回放组件确定目标用户在数据库中的数据存储空间。
131.步骤410,在中间sql语句中添加数据存储空间的空间标识,生成目标sql语句。
132.步骤412,通过sql回放组件将目标sql语句发送至sql代理执行组件。
133.步骤414,通过sql代理执行组件调用数据库代理组件。
134.步骤416,通过数据库代理组件按照预设协议解析规则对目标sql语句进行解析,并根据解析结果中包含的空间标识,确定数据库中待处理的第二数据表。
135.步骤418,对解析结果进行语法检测。
136.步骤420,在检测通过的情况下,执行目标sql语句,以对第二数据表进行处理,生成第二处理结果。
137.步骤422,将第一处理结果与第二处理结果进行比对,并根据比对结果确定目标业务的处理结果。
138.本说明书实施例先通过执行初始sql语句,以对数据库的第一数据表中的数据进行处理,生成第一处理结果,然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,进行sql回放,即为该初始sql语句添加空间标识,以使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理,生成第
二处理结果,然后根据第一处理结果和第二处理结果确定目标业务的处理结果,有利于保证能够对数据库代理组件的代理能力做完整的覆盖性验证,从而提高验证结果的准确性。
139.与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图5示出了本说明书一个实施例提供的一种数据处理装置的示意图。如图5所示,该装置包括:
140.获取模块502,被配置为获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果;
141.生成模块504,被配置为确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句;
142.处理模块506,被配置为根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果;
143.确定模块508,被配置为根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
144.可选地,所述获取模块502,进一步被配置为:
145.通过数据库代理组件获取并执行目标用户针对目标业务提交的初始sql语句;
146.相应地,所述生成模块504,进一步被配置为:
147.通过sql回放组件确定所述目标用户在所述数据库中的数据存储空间。
148.可选地,所述处理模块506,进一步被配置为:
149.通过所述数据库代理组件及所述目标sql语句,确定所述数据库中待处理的第二数据表。
150.可选地,所述处理模块506,进一步被配置为:
151.通过所述数据库代理组件按照预设协议解析规则对所述目标sql语句进行解析,并根据解析结果中包含的所述空间标识,确定所述数据库中待处理的第二数据表。
152.可选地,所述数据处理装置,还包括采样模块,被配置为:
153.通过sql采样组件按照预设采样周期,对所述初始sql语句进行采样处理;
154.相应地,所述生成模块504,进一步被配置为:
155.通过sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在采样结果包含的初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
156.可选地,所述数据处理装置,还包括发送模块,被配置为:
157.通过所述sql回放组件将所述目标sql语句发送至sql代理执行组件;
158.通过所述sql代理执行组件调用数据库代理组件,并通过所述数据库代理组件根据所述目标sql语句确定所述数据库中待处理的第二数据表。
159.可选地,所述生成模块504,进一步被配置为:
160.通过sql回放组件对采样结果中包含的初始sql语句进行清洗,生成中间sql语句;
161.通过所述sql回放组件确定所述目标用户在所述数据库中的数据存储空间,并在所述中间sql语句中添加所述数据存储空间的空间标识,生成目标sql语句。
162.可选地,所述生成模块504,进一步被配置为:
163.通过sql回放组件对所述采样结果中包含的初始sql语句进行分类,生成对应的分类结果;
164.按照预设数量阈值对所述分类结果中、每个分类结果包含的初始sql语句进行筛
选,生成中间sql语句。
165.可选地,所述处理模块506,进一步被配置为:
166.对所述解析结果进行语法检测;
167.在检测通过的情况下,执行所述目标sql语句;
168.相应地,所述确定模块508,进一步被配置为:
169.将所述第一处理结果与所述第二处理结果进行比对,并根据比对结果确定所述目标业务的处理结果。
170.本说明书一个实施例提供的数据处理装置,通过获取模块获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果;通过生成模块确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句;通过处理模块根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果;通过确定模块根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
171.本说明书实施例通过获取并执行目标用户针对目标业务提交的初始sql语句,对数据库中与所述目标业务相关的第一数据表进行处理,生成第一处理结果,确定所述目标用户在所述数据库中的数据存储空间,并在所述初始sql语句中添加所述数据存储空间的空间标识,生成目标sql语句,根据所述目标sql语句确定所述数据库中待处理的第二数据表,并执行所述目标sql语句,对所述第二数据表进行处理,生成第二处理结果,根据所述第一处理结果及所述第二处理结果确定所述目标业务的处理结果。
172.本说明书实施例先通过执行初始sql语句,以对数据库的第一数据表中的数据进行处理,生成第一处理结果,然后在确定初始sql语句中不包含数据存储空间的空间标识的情况下,进行sql回放,即为该初始sql语句添加空间标识,以使得数据库代理组件可根据该空间标识对数据库中该数据存储空间的仿真数据(第二数据表中的数据)进行处理,生成第二处理结果,然后根据第一处理结果和第二处理结果确定目标业务的处理结果,有利于保证能够对数据库代理组件的代理能力做完整的覆盖性验证,从而提高验证结果的准确性。
173.上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
174.图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
175.计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
176.在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部
件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
177.计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
178.其中,所述存储器610用于存储计算机可执行指令,处理器620用于执行如下计算机可执行指令以用于实现所述数据处理方法的步骤。
179.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
180.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于实现所述数据处理方法的步骤。
181.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
182.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
183.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
184.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
185.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
186.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施
例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1