CN112579344A - 数据处理方法、装置及设备 - Google Patents

数据处理方法、装置及设备 Download PDF

Info

Publication number
CN112579344A
CN112579344A CN201910931410.0A CN201910931410A CN112579344A CN 112579344 A CN112579344 A CN 112579344A CN 201910931410 A CN201910931410 A CN 201910931410A CN 112579344 A CN112579344 A CN 112579344A
Authority
CN
China
Prior art keywords
data
target data
target
backup
data table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910931410.0A
Other languages
English (en)
Inventor
林斐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201910931410.0A priority Critical patent/CN112579344A/zh
Publication of CN112579344A publication Critical patent/CN112579344A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及数据库处理技术领域,具体而言,涉及一种数据处理方法、装置及设备。该方法能够根据第一标识从测试数据库中查找出第一目标数据表,并根据第一目标数据表中的每列的列名和类型,为第一目标数据表创建第一备份表,然后将第一目标数据表中的数据拷贝至第一备份表中。如此,在进行程序测试时,无需将整个测试数据库进行备份,只需要将第一目标数据表进行备份即可,有效减少了耗时,此外,由于测试数据库中存储的数据能够直接为程序测试所使用,因此将第一目标数据表中的数据拷贝至第一备份表之后,能够直接将第一目标数据表中的数据用于程序测试,无需在测试数据库的基础上再增设一个数据库,有效降低了成本。

Description

数据处理方法、装置及设备
技术领域
本发明涉及数据库处理技术领域,具体而言,涉及一种数据处理方法、装置及设备。
背景技术
随着科技的发展,数据库的使用越来越广泛。在实际应用中,会基于数据库中存储的数据对数据处理类的程序或脚本进行调试或测试。因此,现有技术会基于数据库对测试环境数据进行备份,以实现对程序或脚本的测试。但是现有的对测试环境数据进行备份的方法耗时长且成本高。
发明内容
为了至少克服现有技术中的上述不足,本发明的目的之一在于提供数据处理方法、装置及设备。
本发明实施例提供了一种数据处理方法,应用于测试数据库,所述测试数据库中存储有测试所需的数据,所述方法包括:
获取第一标识;其中,所述第一标识是所述测试数据库中需要进行备份的数据表的标识;
根据所述第一标识,从所述测试数据库中查找出第一目标数据表;
确定出所述第一目标数据表中的每列的列名和类型;
根据所述每列的列名和类型,为所述第一目标数据表创建第一备份表;
将所述第一目标数据表中的数据拷贝至所述第一备份表中。
在一种可选的方式中,所述根据所述第一标识,从所述测试数据库中查找出第一目标数据表,确定出所述第一目标数据表中的每列的列名和类型,包括:
根据查询语句,从所述测试数据库的系统表中获取与所述第一标识对应的第一目标数据表,并根据所述查询语句从所述系统表中确定出所述第一目标数据表中的每列的列名和类型。
在一种可选的方式中,在获取第一标识之前,所述方法还包括:
确定出需要进行测试的目标程序和/或目标脚本;
根据所述目标程序和/或目标脚本,从测试数据库的所有数据表中确定出需要进行备份的数据表。
在一种可选的方式中,所述方法还包括:
接收第一测试请求;
根据所述第一测试请求,从历史测试请求资源中确定出与所述第一测试请求相对应的编码验证信息,将所述编码验证信息进行发送;其中,不同的测试请求的编码验证信息分别采用不同的编码向量进行预编码;
接收第二测试请求,所述第二测试请求是根据所述编码验证信息得到的,所述第二测试请求信息中包括第二标识;
判断所述第二标识与所述第一标识是否一致,若一致,采用所述第一目标数据表中的数据对目标程序和/或目标脚本进行测试。
本发明实施例提供了一种数据处理方法,应用于测试数据库,所述方法包括:
获取第三标识;其中,所述第三标识是所述测试数据库中需要进行恢复的数据表的标识,所述测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表;
根据所述第三标识,从所述测试数据库中查找出第二目标数据表;
删除所述第二目标数据表中的数据;
从所述测试数据库中查找出与所述第二目标数据表对应的第二备份表,所述第二备份表是根据上述的数据处理方法创建的;
将所述第二备份表中的数据拷贝至所述第二目标数据表中,所述第二备份表中的数据是根据上述的数据处理方法得到的。
在一种可选的方式中,所述将所述第二备份表中的数据拷贝至所述第二目标数据表中,包括:
判断所述第二备份表的表结构与所述第二目标数据表的表结构是否一致;
在所述第二备份表的表结构与所述第二目标数据表的表结构的一致时,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
在所述第二备份表的表结构与所述第二目标数据表的表结构不一致时,以所述第二目标数据表的表结构为参考,将所述第二备份表的表结构进行调整,得到当前表结构,所述当前表结构与所述第二目标数据表的表结构一致;
按照所述当前表结构的格式,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
将完成了数据拷贝的所述第二目标数据表的表结构进行调整,得到初始表结构,所述初始表结构与所述第二备份表的表结构一致。
本发明实施例提供了一种数据处理装置,应用于测试数据库,所述测试数据库中存储有测试所需的数据,所述装置包括:
第一获取单元,用于获取第一标识;其中,所述第一标识是所述测试数据库中需要进行备份的数据表的标识;
第一查找单元,用于根据所述第一标识,从所述测试数据库中查找出第一目标数据表;
第一确定单元,用于确定出所述第一目标数据表中的每列的列名和类型;
创建单元,用于根据所述每列的列名和类型,为所述第一目标数据表创建第一备份表;
备份单元,用于将所述第一目标数据表中的数据拷贝至所述第一备份表中。
本发明实施例提供了一种数据处理装置,应用于测试数据库,所述装置包括:
第二获取单元,用于获取第三标识;其中,所述第三标识是所述测试数据库中需要进行恢复的数据表的标识,所述测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表;
第二查找单元,用于根据所述第二标识,从所述测试数据库中查找出第二目标数据表;
删除单元,用于删除所述第二目标数据表中的数据;
第二确定单元,用于从所述测试数据库中查找出与所述第二目标数据表对应的第二备份表,所述第二备份表是根据上述的数据处理方法创建的;
恢复单元,用于将所述第二备份表中的数据拷贝至所述第二目标数据表中,所述第二备份表中的数据是根据上述的数据处理方法得到的。
本发明实施例提供了一种设备,包括处理器以及与所述处理器连接的存储器和总线;其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述的数据处理方法。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述的数据处理方法。
本发明实施例所提供的数据处理方法、装置及设备,能够根据第一标识从测试数据库中查找出第一目标数据表,并根据第一目标数据表中的每列的列名和类型,为第一目标数据表创建第一备份表,然后将第一目标数据表中的数据拷贝至第一备份表中。如此,在进行程序测试时,无需将整个测试数据库进行备份,只需要将第一目标数据表进行备份即可,有效减少了耗时,此外,由于测试数据库中存储的数据能够直接为程序测试所使用,因此将第一目标数据表中的数据拷贝至第一备份表之后,能够直接将第一目标数据表中的数据用于程序测试,无需在测试数据库的基础上再增设一个数据库,有效降低了成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的一种数据处理方法的流程图。
图2为本发明实施例所提供的一种数据处理方法的另一流程图。
图3为本发明实施例所提供的一种数据处理装置的功能单元框图。
图4为本发明实施例所提供的一种数据处理装置的另一功能单元框图。
图5为本发明实施例所提供的一种设备的方框示意图。
图标:
20-数据处理装置;211-第一获取单元;212-第一查找单元;213-第一确定单元;214-创建单元;215-备份单元;216-待备份数据表确定单元;217-测试单元;221-第二获取单元;222-第二查找单元;223-删除单元;224-第二确定单元;225-恢复单元;
70-设备;701-处理器;702-存储器;703-总线。
具体实施方式
下面将参照附图更详细地描述本发明公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据处理方法、装置及设备,用以改善现有的对测试环境数据进行备份的方法耗时长且成本高的技术问题。
本发明实施例提供的一种数据处理方法、装置及设备为解决上述技术问题,总体思路如下:
获取第一标识;其中,第一标识是测试数据库中需要进行备份的数据表的标识;根据第一标识,从测试数据库中查找出第一目标数据表;确定出第一目标数据表中的每列的列名和类型;根据每列的列名和类型,为第一目标数据表创建第一备份表;将第一目标数据表中的数据拷贝至所述第一备份表中;其中,测试数据库中存储有测试所需的数据。如此,在进行程序测试时,无需将整个测试数据库进行备份,只需要将第一目标数据表进行备份即可,有效减少了耗时,此外,由于测试数据库中存储的数据能够直接为程序测试所使用,因此将第一目标数据表中的数据拷贝至第一备份表之后,能够直接将第一目标数据表中的数据用于程序测试,无需在测试数据库的基础上再增设一个数据库,有效降低了成本。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
本发明实施例提供了一种数据处理方法。图1为根据本发明一个实施例提供的一种数据处理方法的流程图,该方法应用于测试数据库,其中,测试数据库中存储有测试所需的数据,具体地,测试数据库中存储的数据能够直接用于程序测试,如此,无需再将测试数据库中的数据重新拷贝到新的数据库,减少了数据库的使用,从而有效降低了成本。该方法包括以下步骤:
S21,获取第一标识。
S22,根据第一标识,从测试数据库中查找出第一目标数据表。
S23,确定出第一目标数据表中的每列的列名和类型。
S24,根据每列的列名和类型,为第一目标数据库创建第一备份表。
S25,将第一目标数据表中的数据拷贝至第一备份表中。
在本实施例中,测试数据库中具备测试所需的数据,可以理解,测试数据库可以根据生产环境数据库得到,也可以通过数据构造方法得到,还可以通过其他方法得到,在此不作限定。
常见的对测试数据进行处理的方法主要分为以下两种:
1)对于云下的数据库,以云下的数据库为一个原始模板,通过文件拷贝的方式将云下的数据库进行拷贝,然后挂载到一个新的数据库。
2)对于云上的数据库,以云上的数据库为一个原始模板,复制出一个新的数据库。
可以理解,通过上述两种方法可以得到新的数据库,但是对云下的数据库和云上的数据库而言,原始模板大多是生产环境的数据库,生产环境的数据库与测试环境的数据库存在差异,通过上面两种方法得到的新的数据库是承担了测试环境初始状态快照的角色,具体地,通过上面两种方法得到的新的数据库是一个静止的快照,不能直接用于运行数据处理程序和脚本,也就是说,无法对新的数据库中的数据进行任何操作。因此,每次运行程序或脚本来进行测试的时候,需要将新的数据库(初始状态快照数据库)再进行一次复制,从而得到测试数据库。由此可见,常见的对测试数据进行处理的方法需要两个数据库,一个是初始状态快照数据库,另一个是测试数据库,由于数据库的计费是按照个数进行的,因此,常见的对测试数据进行处理的方法成本高,且常见的对测试数据进行处理的方法是将整个数据库进行备份和拷贝,耗时较长。
在本实施例中,由于测试数据库中具备测试所需的数据,因此,测试数据库可以直接用于程序或脚本测试,无需额外增设一个初始状态快照数据库,有效减少了成本。此外,基于本实施例的测试数据库进行的备份并不是将整个测试数据库进行备份,而是根据第一标识对测试数据库中的第一目标数据表进行备份,如此,能够有效减少数据备份的耗时,提高数据备份的效率。
在S21中,第一标识是测试数据库中需要进行备份的数据表的标识。其中,标识可以是数据表的表名,也可以是数据表在测试数据库中的设定ID,在此不作限定。
具体地,在获取第一标识之前,测试数据库中需要进行备份的数据表通过以下方法确定:
S201,确定出需要进行测试的目标程序和/或目标脚本;
S202,根据目标程序和/或目标脚本,从测试数据库的所有数据表中确定出需要进行备份的数据表。
通过S201-S202,能够根据实际进行测试的目标程序和/或目标脚本确定出需要进行备份的数据表,避免了对测试数据库的所有数据表进行备份,能够有针对性地进行数据表的备份,提高备份的效率,减少了备份的额耗时。
在本实施例中,可以将第一标识写入配置文件中,或写入指定的数据表中,然后在执行上述数据处理方法时从配置文件或者指定的数据表中读取第一标识。具体地,在执行S21时,可以从测试数据库的配置文件或者指定的数据表中读取第一标识。通过将第一标识写入配置文件中或写入指定的数据表中,能够避免在执行上述数据处理方法时逐一向测试数据库输入第一标识,能够更加高效、快速地获取第一标识。
在S21中,第一标识的数量可以为一个,也可以为多个,在此不作限定,为便于后续说明,本实施例以一个第一标识进行说明,当然,在具体实施时,并不限于一个第一标识。
在S22中,根据第一标识,从测试数据库中查找出第一目标数据表,具体包括下内容:根据查询语句,从测试数据库的系统表中获取第一标识对应的第一目标数据表。
在本实施例中,系统表可以为sys.columns表。
在S23中,可以根据查询语句,从sys.columns表中确定出第一目标数据表中的每列的列名和类型。
在本实施例中,S22和S23也可以理解为:从测试数据库的系统表中获取第一标识对应的第一目标数据表的所有列以及每个列的列名和类型。
在本实施例中,从测试数据库的系统表中获取第一标识对应的第一目标数据表的所有列以及每个列的列名和类型,可以理解为:根据第一标识,在sys.columns表中进行查询,得到第一目标数据表的所有列以及每个列的列名和类型。在查询结果中,name为列名,system_type_id为列的类型,max_length字段代表列的长度(若该列的类型可以指定长度)。
具体地,从测试数据库的系统表中获取第一标识对应的第一目标数据表的所有列以及每个列的列名和类型的查询语句可以如下:
SELECT name,system_type_id,max_length FROM sys.columns WHERE object_id=OBJECT_ID('表名')
可以理解,上述查询语句仅为本实施例的一个示例,在具体实施过程中,还可以通过其他查询语句对第一目标数据表的所有列以及每个列的列名和类型进行查询,在此不作限定。
通过S23,能够准确确定出需要备份的第一目标数据表,在后续进行数据备份时,仅需要对第一目标数据表进行备份即可,无需对整个测试数据库进行备份,提高了数据备份的效率,减小了数据备份的耗时。
在S24中,根据每列的列名和类型,为第一目标数据表创建第一备份表具体包括以下内容:根据设定映射规则,构造建表语句;根据建表语句,为第一目标数据表创建第一备份表。
在S24中,设定映射规则是根据第一目标数据表的第一标识和第一备份表的标识设置的,其中,设定映射规则可以有多种。在本实施例中,设定映射规则为:为第一目标数据表的第一标识添加后缀“_Temp”作为第一备份表的标识。例如,第一目标数据表的第一标识为“表名”,则第一备份表的标识为“表名_Temp”,进一步地,建表语句可以为:
CREATE TABLE[表名_Temp]
(
列名1列1的类型(列长度),
列名2列2的类型,
……
)
通过S24,能够根据设定映射规则,构造建表语句,并根据建表语句,为第一目标数据表创建第一备份表,如此,能够为第一目标数据表准确地创建第一备份表,且第一目标数据表的第一标识和第一备份表的标识之间存在设定映射规则,当第一目标数据表的数量为多个时,能够保证第一目标数据表和第一备份表的准确对应,从而提高后续数据备份的准确性,避免数据备份出现偏差。
应当理解,上述设定映射规则仅用于举例,并不是对本方案的限定。在一些情况下,也可以为第一目标数据表的第一标识添加前缀,只要保证第一目标数据表的第一标识和第一备份表的标识不同且存在一一对应关系即可。
在S22-S24中,能够基于测试数据库识别第一目标数据表的表结构,从而创建同构的第一备份表,无需提前确定出第一目标数据表和第一备份表的具体表结构,也无需确定测试数据库是云下数据库还是云上数据库,提高了创建备份表的效率和灵活性,有效减少了时间成本。
在S25中,将第一目标数据表中的数据拷贝至第一备份表中,具体包括:按照设定映射规则,将第一目标数据表中的数据拷贝至第一备份表中。
请结合参阅S24,可以按照第一目标数据表的第一标识与第一备份表的标识的对应关系,将第一目标数据表中的数据拷贝至第一备份表中,如此,能够保证数据拷贝(备份)的准确性。例如,若第一目标数据表的第一标识为A,则可以将第一目标数据表的数据拷贝至标识为A_Temp的第一备份表中,在拷贝时,可以根据列名进行拷贝。
在S25中,为了避免大量数据的的传输开销,可以采用sql脚本将第一目标数据表中的数据拷贝至第一备份表中。具体地,sql脚本可以为:
INSERT INTO…SELECT…
通过S25,能够将第一目标数据表中的数据拷贝至第一备份表,而不是将测试数据库中的所有数据进行备份,能够有效减小IO、磁盘等资源的占用和开销,提高备份的速度和效率,减小备份的耗时。
此外,将第一目标数据表中的数据拷贝至第一备份表中之后,上述数据处理方法还可以包括以下步骤:
S261,接收第一测试请求。
S262,根据第一测试请求,从历史测试请求资源中确定出与第一测试请求相对应的编码验证信息,将编码验证信息进行发送;其中,不同的测试请求的编码验证信息分别采用不同的编码向量进行预编码。
S263,接收第二测试请求,第二测试请求是根据编码验证信息得到的,第二测试请求信息中包括第二标识。
S264,判断第二标识与第一标识是否一致,若一致,采用第一目标数据表中的数据对目标程序和/或目标脚本进行测试,否则,拒绝采用第一目标数据表中的数据对目标程序和/或目标脚本进行测试。
在本实施例中,目标程序和/或目标脚本是用于程序测试的,由于测试数据库中的数据能够直接用于测试,因此,可以直接基于第一目标数据表中的数据对目标程序和/或目标脚本进行测试,无需额外备份一个数据库用于测试,有效减少了数据库的数量,进而减少了成本。
通过S261-S264,能够在进行测试之前对第一测试请求进行验证,且验证的方法是通过编码验证信息实现的,如此,在确保对第一测试请求的可靠验证的前提下,能够提高第一测试请求、编码验证信息和第二测试请求的传输效率,从而能够快速地响应测试请求,提高测试的效率。
在图1所示的数据处理方法中,拷贝(备份)功能在首次运行测试之前使用。可以理解,上述的测试数据库还具有数据恢复功能,数据恢复功能是在后续的每次运行测试之前使用。
具体地,图1所示的数据处理方法是在测试数据库的起始阶段使用,在起始阶段,测试数据库中不存在备份表。下面示出的具有数据恢复功能的数据处理方法是在测试数据库中存在备份表的情况下执行。
本发明实施例提供了一种数据处理方法。图2为根据本发明一个实施例提供的一种数据处理方法的流程图,该方法应用于上述的测试数据库,该测试数据库中存在备份表,该方法包括以下步骤:
S31,获取第三标识。
S32,根据第三标识,从测试数据库中查找出第二目标数据表。
S33,删除第二目标数据表中的数据。
S34,从测试数据库中查找出与第二目标数据表对应的第二备份表。
S35,将第二备份表中的数据拷贝至第二目标数据表中。
可以理解,图2所示的数据处理方法是对测试数据库中的第二目标数据表中的数据进行恢复,在S31中,第三标识是测试数据库中需要进行恢复的数据表的标识,测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表。
其中,第二备份表是第二目标数据表的备份表,第二备份表是根据S21-S25所示的数据处理方法创建的,第二备份表中的数据是根据S21-S25所示的数据处理方法得到的。具体地,第二备份表和第二目标数据表均存在于测试数据库中,且测试数据库在执行图2所示的数据处理方法之前已经完成了将第二目标数据表的数据备份至第二备份表。
可以理解,在执行图2所示的数据处理方法之前,测试数据库可以采用第二目标数据表中的数据进行目标程序和/或目标脚本的运行测试,在完成运行测试之后,第二目标数据表中的数据可能发生变化,为了实现测试数据库的还原,以便于后续继续进行使用,可以采用图2所示的数据处理方法对第二目标数据表中的数据进行恢复。
在S32中,根据第三标识,从测试数据库中查找出第二目标数据表的实现原理与S22的实现原理类似,因此在此不作更多说明。
在S33中,在第二数据表中的数据规模较大时,为了提高删除第二目标数据表中的数据的速度,提高数据恢复的效率,可以采用目标语句对第二目标数据表中的数据进行删除,在本实施例中,目标语句可以为TRUNCATE TABLE[第二目标数据表的表名]。
在S34中,从测试数据库中查找出与第二目标数据表对应的第二备份表,具体可以通过以下方式实现:根据第二目标数据表的第三标识与第二备份表的标识的设定映射规则,查找出第二备份表。例如,第二目标数据表的第三标识为“B”,第二备份表的标识为“Temp_B”,则可以确定第二目标数据表的第三标识与第二备份表的标识的设定映射规则为前缀“Temp_”,进一步地,根据第二目标数据表“B”查找出第二备份表“Temp_B”。
在S35中,将第二备份表中的数据拷贝至第二目标数据表中,具体可以通过以下方式实现:
按照第二目标数据表的第三标识与第二备份表的标识的对应关系,将第二备份表中的数据拷贝至第二目标数据表中,如此,能够保证数据拷贝(备份)的准确性。进一步地,为了避免大量数据的的传输开销,可以采用sql脚本将第二备份表中的数据拷贝至第二目标数据表中。
可以理解,在一些测试环境下,第二目标数据表在完成测试后可能存在自增列,在这种情况下是不允许指定自增列的值来插入的,也就不能如备份功能一样直接进行数据拷贝。因此,为了能够确保将第二备份表中的数据完整地拷贝至第二目标数据表中以实现对第二目标数据表的完整恢复,在S35中,将第二备份表中的数据拷贝至第二目标数据表中,具体还可以通过以下方式实现:
S351,判断第二备份表的表结构与第二目标数据表的表结构是否一致。
S352,在第二备份表的表结构与第二目标数据表的表结构的一致时,将第二备份表中的数据拷贝至第二目标数据表中。
S353,在第二备份表的表结构与第二目标数据表的表结构不一致时,以第二目标数据表的表结构为参考,将第二备份表的表结构进行调整,得到当前表结构,当前表结构与第二目标数据表的表结构一致。
S354,按照当前表结构的格式,将第二备份表中的数据拷贝至第二目标数据表中。
S355,将完成了数据拷贝的第二目标数据表的表结构进行调整,得到初始表结构,初始表结构与第二备份表的表结构一致。
通过S351-S355,当第二目标数据表的表结构在完成测试后发生改变时,能够以第二目标数据表的表结构为参考,对第二备份表的表结构进行调整,然后在进行备份,如此,能够确保将第二备份表中的数据完整地拷贝至第二目标数据表中。此外,将第二备份表中的数据拷贝至第二目标数据表之后,还能够将第二目标数据表的表结构进行调整,得到初始表结构,能够实现对第二目标数据表的完整恢复,避免因测试导致第二目标数据表的表结构出现变化,使得后续的测试能够基于最原始的第二目标数据表进行。
在本实施例中,S351-S355所示的方法可以理解为自增列插入,具体地,可以在将第二备份表中的数据拷贝至第二目标数据表之前开启自增列插入,在将第二备份表中的数据拷贝至第二目标数据表之后关闭自增列插入。
在S35中,可以通过以下脚本实现自增列插入的开启和关闭:
SET IDENTITY_INSERT[原表名字]ON
INSERT INTO[原表名字](列1名字,列2名字…)SELECT列1名字,列2名字…FROM[备份表名字]
SET IDENTITY_INSERT[原表名字]OFF
通过S31-S35,能够将测试数据库中指定的数据表进行恢复,而不是将整个数据库进行恢复,能够有效减小IO、磁盘等资源的占用和开销,提高备份的速度和效率,减小备份的耗时。
通过图1和图2所示的数据处理方法,仅需要一个测试数据库便能够实现数据的备份和恢复,无需额外增设数据库,有效减少了成本,此外,数据的备份和恢复是基于测试数据库中指定的数据表进行的,因此,能够有效减小IO、磁盘等资源的占用和开销,提高备份的速度和效率,减小备份的耗时。进一步地,由于上述方法能够基于测试数据库识别指定的数据表的表结构,从而创建同构的备份表,提高了创建备份表的效率,有效减少了时间成本。
通过图1和图2所示的数据处理方法,能够一键触发数据备份和恢复,提高数据备份和恢复的便捷性。
本发明实施例提供了一种数据处理装置20。图3为根据本发明一个实施例提供的一种数据处理装置20的功能单元框图,该数据处理装置20包括:
第一获取单元211,用于获取第一标识;其中,所述第一标识是所述测试数据库中需要进行备份的数据表的标识;
第一查找单元212,用于根据所述第一标识,从所述测试数据库中查找出第一目标数据表;
第一确定单元213,用于确定出所述第一目标数据表中的每列的列名和类型;
创建单元214,用于根据所述每列的列名和类型,为所述第一目标数据表创建第一备份表;
备份单元215,用于将所述第一目标数据表中的数据拷贝至所述第一备份表中。
在一种可选的方式中,第一查找单元212,用于:
根据查询语句,从所述测试数据库的系统表中获取与所述第一标识对应的第一目标数据表,并根据所述查询语句从所述系统表中确定出所述第一目标数据表中的每列的列名和类型。
在一种可选的方式中,上述查询语句可以为:
SELECT name,system_type_id,max_length FROM sys.columns WHERE object_id=OBJECT_ID,所述系统表为sys.columns表,所述列名为name,所述类型为system_type_id。
在一种可选的方式中,数据处理装置20还包括待备份数据表确定单元216,用于:
确定出需要进行测试的目标程序和/或目标脚本;
根据所述目标程序和/或目标脚本,从测试数据库的所有数据表中确定出需要进行备份的数据表。
在一种可选的方式中,数据处理装置20还包括测试单元217,用于:
接收第一测试请求;
根据所述第一测试请求,从历史测试请求资源中确定出与所述第一测试请求相对应的编码验证信息,将所述编码验证信息进行发送;其中,不同的测试请求的编码验证信息分别采用不同的编码向量进行预编码;
接收第二测试请求,所述第二测试请求是根据所述编码验证信息得到的,所述第二测试请求信息中包括第二标识;
判断所述第二标识与所述第一标识是否一致,若一致,采用所述第一目标数据表中的数据对目标程序和/或目标脚本进行测试。
本发明实施例提供了一种数据处理装置20。图4为根据本发明一个实施例提供的一种数据处理装置20的另一功能单元框图,包括:
第二获取单元221,用于获取第三标识;其中,所述第三标识是所述测试数据库中需要进行恢复的数据表的标识,所述测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表。
第二查找单元222,用于根据所述第二表名,从所述测试数据库中查找出第二目标数据表。
删除单元223,用于删除所述第二目标数据表中的数据。
第二确定单元224,用于从所述测试数据库中查找出与所述第二目标数据表对应的第二备份表,所述第二备份表是根据上述的数据处理方法创建的。
恢复单元225,用于将所述第二备份表中的数据拷贝至所述第二目标数据表中,第二备份表中的数据是根据上述的数据处理方法得到的。
在一种可选的方式中,恢复单元225,用于:
判断所述第二备份表的表结构与所述第二目标数据表的表结构是否一致;
在所述第二备份表的表结构与所述第二目标数据表的表结构的一致时,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
在所述第二备份表的表结构与所述第二目标数据表的表结构不一致时,以所述第二目标数据表的表结构为参考,将所述第二备份表的表结构进行调整,得到当前表结构,所述当前表结构与所述第二目标数据表的表结构一致;
按照所述当前表结构的格式,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
将完成了数据拷贝的所述第二目标数据表的表结构进行调整,得到初始表结构,所述初始表结构与所述第二备份表的表结构一致。
所述数据处理装置20包括处理器和存储器,上述第一获取单元211、第一查找单元212、第一确定单元213、创建单元214、备份单元215、待备份数据表确定单元216、测试单元217、第二获取单元221、第二查找单元222、删除单元223、第二确定单元224和恢复单元225等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来减少对测试环境数据进行备份和恢复的耗时,降低对测试环境数据进行备份和恢复的成本。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据处理方法。
本发明实施例提供了一种设备,如图5所示,设备70包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的数据处理方法。本文中的设备70可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获取第一标识;其中,所述第一标识是所述测试数据库中需要进行备份的数据表的标识;
根据所述第一标识,从所述测试数据库中查找出第一目标数据表;
确定出所述第一目标数据表中的每列的列名和类型;
根据所述每列的列名和类型,为所述第一目标数据表创建第一备份表;
将所述第一目标数据表中的数据拷贝至所述第一备份表中。
在一种可选的方式中,所述根据所述第一标识,从所述测试数据库中查找出第一目标数据表,确定出所述第一目标数据表中的每列的列名和类型,包括:
根据查询语句,从所述测试数据库的系统表中获取与所述第一标识对应的第一目标数据表,并根据所述查询语句从所述系统表中确定出所述第一目标数据表中的每列的列名和类型。
在一个可选的实施方式中,上述查询语句可以为:
SELECT name,system_type_id,max_length FROM sys.columns WHERE object_id=OBJECT_ID,所述系统表为sys.columns表,所述列名为name,所述类型为system_type_id。
在一种可选的方式中,在获取第一标识之前,所述方法还包括:
确定出需要进行测试的目标程序和/或目标脚本;
根据所述目标程序和/或目标脚本,从测试数据库的所有数据表中确定出需要进行备份的数据表。
在一种可选的方式中,所述方法还包括:
接收第一测试请求;
根据所述第一测试请求,从历史测试请求资源中确定出与所述第一测试请求相对应的编码验证信息,将所述编码验证信息进行发送;其中,不同的测试请求的编码验证信息分别采用不同的编码向量进行预编码;
接收第二测试请求,所述第二测试请求是根据所述编码验证信息得到的,所述第二测试请求信息中包括第二标识;
判断所述第二标识与所述第一标识是否一致,若一致,采用所述第一目标数据表中的数据对目标程序和/或目标脚本进行测试。
获取第三标识;其中,所述第三标识是所述测试数据库中需要进行恢复的数据表的标识,所述测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表;
根据所述第三标识,从所述测试数据库中查找出第二目标数据表;
删除所述第二目标数据表中的数据;
从所述测试数据库中查找出与所述第二目标数据表对应的第二备份表,所述第二备份表是根据上述的数据处理方法创建的;
将所述第二备份表中的数据拷贝至所述第二目标数据表中,所述第二备份表中的数据是根据上述的数据处理方法得到的。
在一种可选的方式中,所述将所述第二备份表中的数据拷贝至所述第二目标数据表中,包括:
判断所述第二备份表的表结构与所述第二目标数据表的表结构是否一致;
在所述第二备份表的表结构与所述第二目标数据表的表结构的一致时,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
在所述第二备份表的表结构与所述第二目标数据表的表结构不一致时,以所述第二目标数据表的表结构为参考,将所述第二备份表的表结构进行调整,得到当前表结构,所述当前表结构与所述第二目标数据表的表结构一致;
按照所述当前表结构的格式,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
将完成了数据拷贝的所述第二目标数据表的表结构进行调整,得到初始表结构,所述初始表结构与所述第二备份表的表结构一致。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,应用于测试数据库,所述测试数据库中存储有测试所需的数据,所述方法包括:
获取第一标识;其中,所述第一标识是所述测试数据库中需要进行备份的数据表的标识;
根据所述第一标识,从所述测试数据库中查找出第一目标数据表;
确定出所述第一目标数据表中的每列的列名和类型;
根据所述每列的列名和类型,为所述第一目标数据表创建第一备份表;
将所述第一目标数据表中的数据拷贝至所述第一备份表中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述第一标识,从所述测试数据库中查找出第一目标数据表,确定出所述第一目标数据表中的每列的列名和类型,包括:
根据查询语句,从所述测试数据库的系统表中获取与所述第一标识对应的第一目标数据表,并根据所述查询语句从所述系统表中确定出所述第一目标数据表中的每列的列名和类型。
3.根据权利要求1所述的数据处理方法,其特征在于,在获取第一标识之前,所述方法还包括:
确定出需要进行测试的目标程序和/或目标脚本;
根据所述目标程序和/或目标脚本,从测试数据库的所有数据表中确定出需要进行备份的数据表。
4.根据权利要求1-3任一所述的数据处理方法,其特征在于,所述方法还包括:
接收第一测试请求;
根据所述第一测试请求,从历史测试请求资源中确定出与所述第一测试请求相对应的编码验证信息,将所述编码验证信息进行发送;其中,不同的测试请求的编码验证信息分别采用不同的编码向量进行预编码;
接收第二测试请求,所述第二测试请求是根据所述编码验证信息得到的,所述第二测试请求信息中包括第二标识;
判断所述第二标识与所述第一标识是否一致,若一致,采用所述第一目标数据表中的数据对目标程序和/或目标脚本进行测试。
5.一种数据处理方法,其特征在于,应用于测试数据库,所述方法包括:
获取第三标识;其中,所述第三标识是所述测试数据库中需要进行恢复的数据表的标识,所述测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表;
根据所述第三标识,从所述测试数据库中查找出第二目标数据表;
删除所述第二目标数据表中的数据;
从所述测试数据库中查找出与所述第二目标数据表对应的第二备份表,所述第二备份表是根据权利要求1-4任一权项所述的数据处理方法创建的;
将所述第二备份表中的数据拷贝至所述第二目标数据表中,所述第二备份表中的数据是根据权利要求1-4任一权项所述的数据处理方法得到的。
6.根据权利要求5所述的数据处理方法,其特征在于,所述将所述第二备份表中的数据拷贝至所述第二目标数据表中,包括:
判断所述第二备份表的表结构与所述第二目标数据表的表结构是否一致;
在所述第二备份表的表结构与所述第二目标数据表的表结构的一致时,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
在所述第二备份表的表结构与所述第二目标数据表的表结构不一致时,以所述第二目标数据表的表结构为参考,将所述第二备份表的表结构进行调整,得到当前表结构,所述当前表结构与所述第二目标数据表的表结构一致;
按照所述当前表结构的格式,将所述第二备份表中的数据拷贝至所述第二目标数据表中;
将完成了数据拷贝的所述第二目标数据表的表结构进行调整,得到初始表结构,所述初始表结构与所述第二备份表的表结构一致。
7.一种数据处理装置,其特征在于,应用于测试数据库,所述测试数据库中存储有测试所需的数据,所述装置包括:
第一获取单元,用于获取第一标识;其中,所述第一标识是所述测试数据库中需要进行备份的数据表的标识;
第一查找单元,用于根据所述第一标识,从所述测试数据库中查找出第一目标数据表;
第一确定单元,用于确定出所述第一目标数据表中的每列的列名和类型;
创建单元,用于根据所述每列的列名和类型,为所述第一目标数据表创建第一备份表;
备份单元,用于将所述第一目标数据表中的数据拷贝至所述第一备份表中。
8.一种数据处理装置,其特征在于,应用于测试数据库,所述装置包括:
第二获取单元,用于获取第三标识;其中,所述第三标识是所述测试数据库中需要进行恢复的数据表的标识,所述测试数据库中需要进行恢复的数据表是已用于对目标程序和/或目标脚本进行测试的数据表;
第二查找单元,用于根据所述第二标识,从所述测试数据库中查找出第二目标数据表;
删除单元,用于删除所述第二目标数据表中的数据;
第二确定单元,用于从所述测试数据库中查找出与所述第二目标数据表对应的第二备份表,所述第二备份表是根据权利要求1-4任一权项所述的数据处理方法创建的;
恢复单元,用于将所述第二备份表中的数据拷贝至所述第二目标数据表中,所述第二备份表中的数据是根据权利要求1-4任一权项所述的数据处理方法得到的。
9.一种设备,其特征在于,包括处理器以及与所述处理器连接的存储器和总线;其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述权利要求1-4任一项所述的数据处理方法。
10.一种存储介质,其特征在于,其上存储有程序,该程序被处理器执行时实现上述权利要求1-4任一项所述的数据处理方法。
CN201910931410.0A 2019-09-29 2019-09-29 数据处理方法、装置及设备 Pending CN112579344A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910931410.0A CN112579344A (zh) 2019-09-29 2019-09-29 数据处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910931410.0A CN112579344A (zh) 2019-09-29 2019-09-29 数据处理方法、装置及设备

Publications (1)

Publication Number Publication Date
CN112579344A true CN112579344A (zh) 2021-03-30

Family

ID=75110597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910931410.0A Pending CN112579344A (zh) 2019-09-29 2019-09-29 数据处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN112579344A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179085A1 (en) * 2005-02-04 2006-08-10 International Business Machines Corporation Method, system and computer program product for backing up and recovering a database
CN107463693A (zh) * 2017-08-11 2017-12-12 深圳乐信软件技术有限公司 一种数据处理方法、装置、终端及计算机可读存储介质
CN108121774A (zh) * 2017-12-08 2018-06-05 平安科技(深圳)有限公司 一种数据表备份方法及终端设备
CN109271381A (zh) * 2018-08-21 2019-01-25 中国平安人寿保险股份有限公司 测试数据表的处理方法、装置、计算机设备和存储介质
CN109815252A (zh) * 2018-12-14 2019-05-28 深圳壹账通智能科技有限公司 测试数据生成方法、装置、计算机设备及可读存储介质
CN109815233A (zh) * 2018-12-27 2019-05-28 北京奇艺世纪科技有限公司 一种数据表的处理方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179085A1 (en) * 2005-02-04 2006-08-10 International Business Machines Corporation Method, system and computer program product for backing up and recovering a database
CN107463693A (zh) * 2017-08-11 2017-12-12 深圳乐信软件技术有限公司 一种数据处理方法、装置、终端及计算机可读存储介质
CN108121774A (zh) * 2017-12-08 2018-06-05 平安科技(深圳)有限公司 一种数据表备份方法及终端设备
CN109271381A (zh) * 2018-08-21 2019-01-25 中国平安人寿保险股份有限公司 测试数据表的处理方法、装置、计算机设备和存储介质
CN109815252A (zh) * 2018-12-14 2019-05-28 深圳壹账通智能科技有限公司 测试数据生成方法、装置、计算机设备及可读存储介质
CN109815233A (zh) * 2018-12-27 2019-05-28 北京奇艺世纪科技有限公司 一种数据表的处理方法和系统

Similar Documents

Publication Publication Date Title
US11711420B2 (en) Automated management of resource attributes across network-based services
CN111078667B (zh) 一种数据迁移的方法以及相关装置
CN108268609B (zh) 一种文件路径的建立、访问方法和装置
CN106445643B (zh) 克隆、升级虚拟机的方法及设备
CN106951345A (zh) 一种虚拟机磁盘数据的一致性测试方法及装置
EP3432132B1 (en) Data storage method and device
CN111240892B (zh) 数据备份方法及装置
CN109284066B (zh) 一种数据处理方法、装置、设备及系统
CN106446044B (zh) 存储空间回收方法及装置
CN111143113B (zh) 复制元数据的方法、电子设备和计算机程序产品
CN107357928B (zh) 一种实现存储快照的方法和系统
CN108572888B (zh) 磁盘快照创建方法和磁盘快照创建装置
WO2018059239A1 (zh) 一种文件存储方法及装置
CN109471901B (zh) 一种数据同步方法及装置
CN109977317B (zh) 数据查询方法及装置
CN107357691B (zh) 镜像文件的处理方法及装置
CN113821333A (zh) 安卓应用程序迁移的方法和装置
US10970285B2 (en) Grid topology change in a distributed data grid when iterating on the contents of the data grid
CN109582347B (zh) 一种获取前端代码的方法及装置
CN112579344A (zh) 数据处理方法、装置及设备
CN115391337A (zh) 数据库分区的方法、装置、存储介质及电子设备
CN111737223B (zh) 一种文件拷贝方法、装置、设备及存储介质
CN110968888B (zh) 一种数据处理方法及装置
CN109324931B (zh) 在重复数据删除系统中实现vmware挂载恢复的方法
CN108376104B (zh) 节点调度方法及装置、计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination