CN114969063A - 数据库校验方法、装置及非瞬时性计算机可读存储介质 - Google Patents
数据库校验方法、装置及非瞬时性计算机可读存储介质 Download PDFInfo
- Publication number
- CN114969063A CN114969063A CN202110216653.3A CN202110216653A CN114969063A CN 114969063 A CN114969063 A CN 114969063A CN 202110216653 A CN202110216653 A CN 202110216653A CN 114969063 A CN114969063 A CN 114969063A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- same
- table name
- consistency check
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据库校验方法、装置及非瞬时性计算机可读存储介质,涉及数据库技术领域。其中的数据库校验方法包括:确定第一数据库和第二数据库中的各个数据表的文件大小;分别将各个数据表划分为大数据表和小数据表;基于特征值对具有相同表名的小数据表进行一致性校验;基于大数据平台对具有相同表名的大数据表进行一致性校验;根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。本公开能够减少数据库一致性校验过程中的时间消耗和资源消耗,提升数据库一致性校验的工作效率。
Description
技术领域
本公开涉及数据库技术领域,特别涉及一种数据库校验方法、装置及非瞬时性计算机可读存储介质。
背景技术
为保障数据库系统的高可靠性,数据库集群可以采取主备架构或分布式架构。然而,如果数据库集群中各个数据库的数据不一致,会降低数据库集群的性能,甚至导致数据库集群不可用。
为确保数据库集群中各个数据库的数据一致,需要对各个数据库中的数据进行一致性校验。在一致性校验不通过时,对数据库中存在数据差异的位置进行定位,以便进行数据修复。
发明内容
本公开解决的一个技术问题是,如何提升数据库一致性校验的工作效率。
根据本公开的一个方面,提供了一种数据库校验方法,包括:确定第一数据库和第二数据库中的各个数据表的文件大小;分别将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表,其中,大数据表的文件大小大于预设值,小数据表的文件大小不大于预设值;分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于特征值对具有相同表名的小数据表进行一致性校验;分别将第一数据库和第二数据库中具有相同数据表名的大数据表上传至大数据平台,并基于大数据平台对具有相同表名的大数据表进行一致性校验;根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。
在一些实施例中,基于大数据平台对具有相同表名的大数据表进行一致性校验包括:在大数据平台运行一致性校验脚本,分别对具有相同表名的大数据表的数据行按照相同的主键值顺序进行排序,并对具有相同表名的大数据表进行数据对比,以确定具有相同表名的大数据表中存在数据差异的各个数据行的主键值;从大数据平台下载存在数据差异的各个数据行的主键值。
在一些实施例中,分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于特征值对具有相同表名的小数据表进行一致性校验包括:分别对具有相同表名的小数据表的数据行按照相同的主键值顺序进行排序;分别对排序后的具有相同表名的小数据表按照预设的行数进行分组,并分别为分组得到的数据组按照相同的顺序标记组号;分别对具有相同组号的数据组中的每行数据按照相同的列名进行排序;计算各个数据组的哈希值,并比较具有相同组号的数据组的哈希值,以确定具有相同表名的小数据表中存在数据差异的各对数据组;对存在数据差异的每对数据组,计算各个数据行的哈希值,并对比各个数据行的哈希值,以确定具有相同表名的小数据表中存在数据差异的各个数据行;输出具有相同表名的小数据表中存在数据差异的各个数据行的主键值。
在一些实施例中,计算各个数据组的哈希值包括:将各个数据组中的各列数据转换成字符串格式并进行拼接;计算拼接后的各个数据组的哈希值;计算各个数据行的哈希值包括:将各个数据行中的各列数据转换成字符串格式并进行拼接;计算拼接后的各个数据行的哈希值。
在一些实施例中,确定第一数据库和第二数据库的一致性校验结果包括:在各个具有相同表名的小数据表的一致性校验通过、且各个具有相同表名的大数据表的一致性校验通过的情况下,确定第一数据库和第二数据库的一致性校验通过;在各个具有相同表名的小数据表的一致性校验不通过、或各个具有相同表名的大数据表的一致性校验不通过的情况下,根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库中存在数据差异的各个数据行的主键值。
根据本公开的另一个方面,提供了一种数据库校验装置,包括:文件大小确定模块,被配置为确定第一数据库和第二数据库中的各个数据表的文件大小;数据表划分模块,被配置为:分别将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表,其中,大数据表的文件大小大于预设值,小数据表的文件大小不大于预设值;小数据表校验模块,被配置为:分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于特征值对具有相同表名的小数据表进行一致性校验;大数据表校验模块,被配置为:分别将第一数据库和第二数据库中具有相同数据表名的大数据表上传至大数据平台,并基于大数据平台对具有相同表名的大数据表进行一致性校验;校验结果确定模块,被配置为:根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。
在一些实施例中,大数据表校验模块被配置为:在大数据平台运行一致性校验脚本,分别对具有相同表名的大数据表的数据行按照相同的主键值顺序进行排序,并对具有相同表名的大数据表进行数据对比,以确定具有相同表名的大数据表中存在数据差异的各个数据行的主键值;从大数据平台下载存在数据差异的各个数据行的主键值。
在一些实施例中,小数据表校验模块被配置为:分别对具有相同表名的小数据表的数据行按照相同的主键值顺序进行排序;分别对排序后的具有相同表名的小数据表按照预设的行数进行分组,并分别为分组得到的数据组按照相同的顺序标记组号;分别对具有相同组号的数据组中的每行数据按照相同的列名进行排序;计算各个数据组的哈希值,并比较具有相同组号的数据组的哈希值,以确定具有相同表名的小数据表中存在数据差异的各对数据组;对存在数据差异的每对数据组,计算各个数据行的哈希值,并对比各个数据行的哈希值,以确定具有相同表名的小数据表中存在数据差异的各个数据行;输出具有相同表名的小数据表中存在数据差异的各个数据行的主键值。
在一些实施例中,小数据表校验模块被配置为:将各个数据组中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据组的哈希值;将各个数据行中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据行的哈希值。
在一些实施例中,校验结果确定模块被配置为:在各个具有相同表名的小数据表的一致性校验通过、且各个具有相同表名的大数据表的一致性校验通过的情况下,确定第一数据库和第二数据库的一致性校验通过;在各个具有相同表名的小数据表的一致性校验不通过、或各个具有相同表名的大数据表的一致性校验不通过的情况下,根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库中存在数据差异的各个数据行的主键值。
根据本公开的又一个方面,提供了又一种数据库校验装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述的数据库校验方法。
根据本公开的再一个方面,提供了一种非瞬时性计算机可读存储介质,其中,非瞬时性计算机可读存储介质存储有计算机指令,指令被处理器执行时实现前述的数据库校验方法。
本公开能够减少数据库一致性校验过程中的时间消耗和资源消耗,提升数据库一致性校验的工作效率。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开一些实施例的数据库校验方法的流程示意图。
图2示出了对大数据表进行一致性校验的一些实施例的流程示意图。
图3示出了对小数据表进行一致性校验的一些实施例的流程示意图。
图4示出了本公开一些实施例的数据库校验装置的结构示意图。
图5示出了本公开另一些实施例的数据库校验装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
发明人研究发现,在传统的数据库一致性校验和数据库差异定位过程中,首先计算各个数据库中数据的特征值(比如MD5摘要特征值,crc32冗余校验特征值,哈希值等等),然后比较各个数据库的特征值是否一致。若不一致,则计算各个数据库中行数据的特征值,并比较各个行数据的特征值是否一致,以定位数据差异的位置。
然而,在数据库中数据较多,或者数据库中数据不一致程度较大的情况下,传统方法的时间消耗和资源消耗(包括处理器消耗、内存控件消耗)较多,不仅导致数据库一致性校验的工作效率较低,甚至可能影响数据库集群的性能。有鉴于此,本公开提供了数据库校验方法,能够减少数据库一致性校验过程中的时间消耗和资源消耗,提升数据库一致性校验的工作效率。
首先结合图1描述本公开数据库校验方法的一些实施例。
图1示出了本公开一些实施例的数据库校验方法的流程示意图。如图1所示,该方法包括步骤S101~步骤S105。
在步骤S101中,确定第一数据库和第二数据库中的各个数据表的文件大小。
例如,对于MySQL数据库,运行SQL语句“show table status from name OfDataBase”即可获取所有数据表的文件大小Data_length。
在步骤S102中,分别将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表。
根据所有数据表的文件大小Data_length,可以将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表。其中,大数据表的文件大小大于预设值,小数据表的文件大小不大于预设值。
在步骤S103中,分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于特征值对具有相同表名的小数据表进行一致性校验。
该步骤在执行过程中主要包括数据行排序、数据行分组、数据列排序、数据格式转换、数据拼接、特征值计算、特征值比较、数据差异定位。具体的实现过程在后文以单独的实施例进行详细介绍。
在步骤S104中,分别将第一数据库和第二数据库中具有相同数据表名的大数据表上传至大数据平台,并基于大数据平台对具有相同表名的大数据表进行一致性校验。
该步骤在执行过程中主要包括数据表导出、数据表上传、数据差异定位。具体的实现过程在后文以单独的实施例进行详细介绍。
在步骤S105中,根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。
例如,在各个具有相同表名的小数据表的一致性校验通过、且各个具有相同表名的大数据表的一致性校验通过的情况下,确定第一数据库和第二数据库的一致性校验通过。
再比如,在各个具有相同表名的小数据表的一致性校验不通过、或各个具有相同表名的大数据表的一致性校验不通过的情况下,根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库中存在数据差异的各个数据行的主键值。本领域技术人员能够理解,每个数据行与主键值之间具有一一映射关系。
上述实施例对数据库中的大数据表和小数据表进行了划分,并采用不同策略对数据库中的大数据表和小数据表进行一致性校验和数据差异定位。采用大数据平台对数据库中的大数据表进行一致性校验和数据差异定位,不仅减少了数据库一致性校验过程中的时间消耗和资源消耗,还提升了数据库一致性校验和数据差异定位的工作效率,保障了数据库集群的性能。
下面结合图2描述对大数据表进行一致性校验的一些实施例。
图2示出了对大数据表进行一致性校验的一些实施例的流程示意图。如图2所示,该方法包括步骤S2041~步骤S2045。
在步骤S2041中,分别从第一数据库和第二数据库中导出具有相同表名的大数据表,并上传至大数据平台。
具有相同表名的大数据表的个数可以为多个。为便于描述技术方案,从一个大数据表的角度进行具体的解释和说明。假设将第一数据库中的大数据表A导出至文件basea.txt,将第二数据库中的大数据表A导出至文件baseb.txt。basea.txt和baseb.txt中的数据内容具体举例如下:
basea.txt
1,“小明”,“男”,“aaa”
2,“小花”,“女”,“bbb”
3,“小王”,“男”,“ccc”
baseb.txt
1,“小明”,“男”,“AAA”
2,“小花”,“男”,“bbb”
3,“小王”,“男”,“ccc”
然后,将basea.txt和baseb.txt上传至大数据平台的指定目录,例如上传至Hadoop平台的hdfs(Hadoop file system,Hadoop文件系统)下。
在步骤S2042中,分别对具有相同表名的大数据表的数据行按照相同的主键值顺序进行排序。
例如,分别对第一数据库的大数据表A和第二数据库的大数据表A的数据行按照相同的主键值顺序进行排序。
在步骤S2043中,应用大数据平台,运行一致性校验脚本。
一致性校验脚本(例如Spark脚本)具体举例如下:
val rddBaseA=source.textFile("/basea.txt").map(x=>(x.split(",")(0),x))
val rddBaseB=source.textFile("/baseb.txt").map(x=>(x.split(",")(0),x))
val difference=rddBaseA.cogroup(rddBaseB).filter(x=>x._2._1!=x._2._2)
val differenceKey=difference.keys()
differenceKey.collect
该一致性校验脚本实现对具有相同表名的大数据表进行数据对比,以确定具有相同表名的大数据表中存在数据差异的各个数据行的主键值。
确定存在数据差异的数据行的主键值后,能够定位存在数据差异的数据行。如果不存在数据差异的数据行,则大数据表A的一致性校验通过。
在步骤S2044中,从大数据平台下载存在数据差异的各个数据行的主键值。
采用大数据平台对数据库中的大数据表进行一致性校验和数据差异定位,不仅减少了数据库一致性校验过程中的时间消耗和资源消耗,还提升了数据库一致性校验和数据差异定位的工作效率。同时,由于大数据平台在对大数据表进行一致性校验的过程中就能够定位存在数据差异的数据行,因此进一步提升了数据库一致性校验和数据差异定位的工作效率。
下面结合图3描述对小数据表进行一致性校验的一些实施例。
图3示出了对小数据表进行一致性校验的一些实施例的流程示意图。如图3所示,该方法包括步骤S3031~步骤S3036。
在步骤S3031中,分别对具有相同表名的小数据表的数据行按照相同的主键值顺序进行排序。
例如,分别对第一数据库的小数据表B和第二数据库的小数据表B的数据行按照相同的主键值顺序进行排序。
在步骤S3032中,分别对排序后的具有相同表名的小数据表按照预设的行数进行分组,并分别为分组得到的数据组按照相同的顺序标记组号。
例如,以每组2000个数据行对排序后的第一数据库的小数据表B进行分组,并以每组2000个数据行对排序后的第二数据库的小数据表B进行分组。然后按照相同的顺序,为第一数据库的小数据表B的各个数据组标号1~N,并为第二数据库的小数据表B的各个数据组标号1~N。
在步骤S3033中,分别对具有相同组号的数据组中的每行数据按照相同的列名进行排序。
对每行数据按照相同的列名进行排序,能够保障数据组中每行数据在列方向上具有相同的顺序。
在步骤S3034中,计算各个数据组的哈希值,并比较具有相同组号的数据组的哈希值,以确定具有相同表名的小数据表中存在数据差异的各对数据组。
例如,将各个数据组中的各列数据转换成字符串格式并进行拼接。拼接时,可以采用特殊的分隔符。然后,计算拼接后的各个数据组的哈希值。若所有相同组号的数据组的哈希值一致,则小数据表B的一致性检验通过;否则,小数据表B的一致性检验不通过,并将哈希值不一致的组号记录下来,以对哈希值不一致的数据组进行数据差异定位。
在步骤S3035中,对存在数据差异的每对数据组,计算各个数据行的哈希值,并对比各个数据行的哈希值,以确定具有相同表名的小数据表中存在数据差异的各个数据行。
例如,将各个数据行中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据行的哈希值。
在步骤S3036中,输出具有相同表名的小数据表中存在数据差异的各个数据行的主键值。
上述实施例通过划分数据组和哈希值计算,更进一步的提升了数据库一致性校验和数据差异定位的工作效率。
下面结合图4描述本公开数据库校验装置的一些实施例。
图4示出了本公开一些实施例的数据库校验装置的结构示意图。如图4所示,数据库校验装置40包括:文件大小确定模块401,被配置为确定第一数据库和第二数据库中的各个数据表的文件大小;数据表划分模块402,被配置为:分别将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表,其中,大数据表的文件大小大于预设值,小数据表的文件大小不大于预设值;小数据表校验模块403,被配置为:分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于特征值对具有相同表名的小数据表进行一致性校验;大数据表校验模块404,被配置为:分别将第一数据库和第二数据库中具有相同数据表名的大数据表上传至大数据平台,并基于大数据平台对具有相同表名的大数据表进行一致性校验;校验结果确定模块405,被配置为:根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。
在一些实施例中,校验结果确定模块405被配置为:在各个具有相同表名的小数据表的一致性校验通过、且各个具有相同表名的大数据表的一致性校验通过的情况下,确定第一数据库和第二数据库的一致性校验通过;在各个具有相同表名的小数据表的一致性校验不通过、或各个具有相同表名的大数据表的一致性校验不通过的情况下,根据各个具有相同表名的小数据表的一致性校验结果以及各个具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库中存在数据差异的各个数据行的主键值。
上述实施例对数据库中的大数据表和小数据表进行了划分,并采用不同策略对数据库中的大数据表和小数据表进行一致性校验和数据差异定位。采用大数据平台对数据库中的大数据表进行一致性校验和数据差异定位,不仅减少了数据库一致性校验过程中的时间消耗和资源消耗,还提升了数据库一致性校验和数据差异定位的工作效率,保障了数据库集群的性能。
在一些实施例中,大数据表校验模块404被配置为:在大数据平台运行一致性校验脚本,分别对具有相同表名的大数据表的数据行按照相同的主键值顺序进行排序,并对具有相同表名的大数据表进行数据对比,以确定具有相同表名的大数据表中存在数据差异的各个数据行的主键值;从大数据平台下载存在数据差异的各个数据行的主键值。
采用大数据平台对数据库中的大数据表进行一致性校验和数据差异定位,不仅减少了数据库一致性校验过程中的时间消耗和资源消耗,还提升了数据库一致性校验和数据差异定位的工作效率。同时,由于大数据平台在对大数据表进行一致性校验的过程中就能够定位存在数据差异的数据行,因此进一步提升了数据库一致性校验和数据差异定位的工作效率。
在一些实施例中,小数据表校验模块403被配置为:分别对具有相同表名的小数据表的数据行按照相同的主键值顺序进行排序;分别对排序后的具有相同表名的小数据表按照预设的行数进行分组,并分别为分组得到的数据组按照相同的顺序标记组号;分别对具有相同组号的数据组中的每行数据按照相同的列名进行排序;计算各个数据组的哈希值,并比较具有相同组号的数据组的哈希值,以确定具有相同表名的小数据表中存在数据差异的各对数据组;对存在数据差异的每对数据组,计算各个数据行的哈希值,并对比各个数据行的哈希值,以确定具有相同表名的小数据表中存在数据差异的各个数据行;输出具有相同表名的小数据表中存在数据差异的各个数据行的主键值。
在一些实施例中,小数据表校验模块403被配置为:将各个数据组中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据组的哈希值;将各个数据行中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据行的哈希值。
上述实施例通过划分数据组和哈希值计算,更进一步的提升了数据库一致性校验和数据差异定位的工作效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
下面结合图5描述本公开数据库校验装置的另一些实施例。
图5示出了本公开另一些实施例的数据库校验装置的结构示意图。如图5所示,数据库校验装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行前述任意一些实施例中的数据库校验方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
数据库校验装置50还可以包括输入输出接口530、网络接口540、存储接口550等。这些接口530、540、550以及存储器510和处理器520之间例如可以通过总线560连接。其中,输入输出接口530为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口540为各种联网设备提供连接接口。存储接口550为SD卡、U盘等外置存储设备提供连接接口。
本公开还包括一种非瞬时性计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一些实施例中的数据库校验方法。
前述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (12)
1.一种数据库校验方法,包括:
确定第一数据库和第二数据库中的各个数据表的文件大小;
分别将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表,其中,大数据表的文件大小大于预设值,小数据表的文件大小不大于预设值;
分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于所述特征值对所述具有相同表名的小数据表进行一致性校验;
分别将第一数据库和第二数据库中具有相同数据表名的大数据表上传至大数据平台,并基于大数据平台对所述具有相同表名的大数据表进行一致性校验;
根据各个所述具有相同表名的小数据表的一致性校验结果以及各个所述具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。
2.根据权利要求1所述的数据库校验方法,其中,所述基于大数据平台对所述具有相同表名的大数据表进行一致性校验包括:
在大数据平台运行一致性校验脚本,分别对所述具有相同表名的大数据表的数据行按照相同的主键值顺序进行排序,并对所述具有相同表名的大数据表进行数据对比,以确定所述具有相同表名的大数据表中存在数据差异的各个数据行的主键值;
从大数据平台下载所述存在数据差异的各个数据行的主键值。
3.根据权利要求1所述的数据库校验方法,其中,所述分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于所述特征值对所述具有相同表名的小数据表进行一致性校验包括:
分别对所述具有相同表名的小数据表的数据行按照相同的主键值顺序进行排序;
分别对排序后的所述具有相同表名的小数据表按照预设的行数进行分组,并分别为分组得到的数据组按照相同的顺序标记组号;
分别对具有相同组号的数据组中的每行数据按照相同的列名进行排序;
计算各个数据组的哈希值,并比较具有相同组号的数据组的哈希值,以确定所述具有相同表名的小数据表中存在数据差异的各对数据组;
对存在数据差异的每对数据组,计算各个数据行的哈希值,并对比各个数据行的哈希值,以确定所述具有相同表名的小数据表中存在数据差异的各个数据行;
输出所述具有相同表名的小数据表中存在数据差异的各个数据行的主键值。
4.根据权利要求3所述的数据库校验方法,其中,
所述计算各个数据组的哈希值包括:将各个数据组中的各列数据转换成字符串格式并进行拼接;计算拼接后的各个数据组的哈希值;
所述计算各个数据行的哈希值包括:将各个数据行中的各列数据转换成字符串格式并进行拼接;计算拼接后的各个数据行的哈希值。
5.根据权利要求1所述的数据库校验方法,其中,所述确定第一数据库和第二数据库的一致性校验结果包括:
在各个所述具有相同表名的小数据表的一致性校验通过、且各个所述具有相同表名的大数据表的一致性校验通过的情况下,确定第一数据库和第二数据库的一致性校验通过;
在各个所述具有相同表名的小数据表的一致性校验不通过、或各个所述具有相同表名的大数据表的一致性校验不通过的情况下,根据各个所述具有相同表名的小数据表的一致性校验结果以及各个所述具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库中存在数据差异的各个数据行的主键值。
6.一种数据库校验装置,包括:
文件大小确定模块,被配置为确定第一数据库和第二数据库中的各个数据表的文件大小;
数据表划分模块,被配置为:分别将第一数据库和第二数据库中的各个数据表划分为大数据表和小数据表,其中,大数据表的文件大小大于预设值,小数据表的文件大小不大于预设值;
小数据表校验模块,被配置为:分别提取第一数据库和第二数据库中具有相同表名的小数据表的特征值,并基于所述特征值对所述具有相同表名的小数据表进行一致性校验;
大数据表校验模块,被配置为:分别将第一数据库和第二数据库中具有相同数据表名的大数据表上传至大数据平台,并基于大数据平台对所述具有相同表名的大数据表进行一致性校验;
校验结果确定模块,被配置为:根据各个所述具有相同表名的小数据表的一致性校验结果以及各个所述具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库的一致性校验结果。
7.根据权利要求6所述的数据库校验装置,其中,所述大数据表校验模块被配置为:
在大数据平台运行一致性校验脚本,分别对所述具有相同表名的大数据表的数据行按照相同的主键值顺序进行排序,并对所述具有相同表名的大数据表进行数据对比,以确定所述具有相同表名的大数据表中存在数据差异的各个数据行的主键值;
从大数据平台下载所述存在数据差异的各个数据行的主键值。
8.根据权利要求6所述的数据库校验装置,其中,所述小数据表校验模块被配置为:
分别对所述具有相同表名的小数据表的数据行按照相同的主键值顺序进行排序;
分别对排序后的所述具有相同表名的小数据表按照预设的行数进行分组,并分别为分组得到的数据组按照相同的顺序标记组号;
分别对具有相同组号的数据组中的每行数据按照相同的列名进行排序;
计算各个数据组的哈希值,并比较具有相同组号的数据组的哈希值,以确定所述具有相同表名的小数据表中存在数据差异的各对数据组;
对存在数据差异的每对数据组,计算各个数据行的哈希值,并对比各个数据行的哈希值,以确定所述具有相同表名的小数据表中存在数据差异的各个数据行;
输出所述具有相同表名的小数据表中存在数据差异的各个数据行的主键值。
9.根据权利要求8所述的数据库校验装置,其中,所述小数据表校验模块被配置为:
将各个数据组中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据组的哈希值;
将各个数据行中的各列数据转换成字符串格式并进行拼接,并计算拼接后的各个数据行的哈希值。
10.根据权利要求6所述的数据库校验装置,其中,所述校验结果确定模块被配置为:
在各个所述具有相同表名的小数据表的一致性校验通过、且各个所述具有相同表名的大数据表的一致性校验通过的情况下,确定第一数据库和第二数据库的一致性校验通过;
在各个所述具有相同表名的小数据表的一致性校验不通过、或各个所述具有相同表名的大数据表的一致性校验不通过的情况下,根据各个所述具有相同表名的小数据表的一致性校验结果以及各个所述具有相同表名的大数据表的一致性校验结果,确定第一数据库和第二数据库中存在数据差异的各个数据行的主键值。
11.一种数据库校验装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至5中任一项所述的数据库校验方法。
12.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至5中任一项所述的数据库校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216653.3A CN114969063A (zh) | 2021-02-26 | 2021-02-26 | 数据库校验方法、装置及非瞬时性计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216653.3A CN114969063A (zh) | 2021-02-26 | 2021-02-26 | 数据库校验方法、装置及非瞬时性计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969063A true CN114969063A (zh) | 2022-08-30 |
Family
ID=82973560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110216653.3A Pending CN114969063A (zh) | 2021-02-26 | 2021-02-26 | 数据库校验方法、装置及非瞬时性计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969063A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251460A (zh) * | 2023-08-10 | 2023-12-19 | 上海栈略数据技术有限公司 | 图数据库和关系数据库的数据一致性校验系统 |
CN117520306A (zh) * | 2023-11-20 | 2024-02-06 | 中移互联网有限公司 | 数据校验方法、装置及电子设备 |
-
2021
- 2021-02-26 CN CN202110216653.3A patent/CN114969063A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251460A (zh) * | 2023-08-10 | 2023-12-19 | 上海栈略数据技术有限公司 | 图数据库和关系数据库的数据一致性校验系统 |
CN117251460B (zh) * | 2023-08-10 | 2024-04-05 | 上海栈略数据技术有限公司 | 图数据库和关系数据库的数据一致性校验系统 |
CN117520306A (zh) * | 2023-11-20 | 2024-02-06 | 中移互联网有限公司 | 数据校验方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739894B (zh) | 补充元数据描述的方法、装置、设备及存储介质 | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN114969063A (zh) | 数据库校验方法、装置及非瞬时性计算机可读存储介质 | |
CN105930479A (zh) | 一种数据倾斜处理方法及装置 | |
CN105187533A (zh) | 一种数据传输的方法及装置 | |
CN106682036A (zh) | 一种数据交换系统及其交换方法 | |
Tan et al. | Hadoop framework: impact of data organization on performance | |
CN114035827A (zh) | 应用程序更新方法、装置、设备及存储介质 | |
CN104182347A (zh) | 一种基于自动化测试平台的测试需求自动分析方法 | |
CN114706564A (zh) | 软件包制作方法、装置、电子设备及存储介质 | |
CN112416907A (zh) | 一种数据库表数据导入导出方法、终端设备及存储介质 | |
CN106940711B (zh) | 一种url检测方法及检测装置 | |
US7849289B2 (en) | Distributed memory type information processing system | |
CN115952185B (zh) | 一种数据处理方法及装置、设备及存储介质 | |
CN112860954A (zh) | 实时计算的方法以及实时计算系统 | |
CN106843822B (zh) | 一种执行代码生成方法及设备 | |
CN104885060A (zh) | 数据漏更新检查装置、数据漏更新检查方法、数据漏更新检查程序 | |
CN106326310B (zh) | 一种手机客户端软件的资源加密更新方法 | |
CN108574585A (zh) | 一种系统故障解决方案获取方法及装置 | |
CN113626510A (zh) | 交易核对方法、装置、电子设备及存储介质 | |
CN111538750A (zh) | 一种信息还原方法、装置、计算机系统及可读存储介质 | |
CN110825453A (zh) | 基于大数据平台的数据处理方法及装置 | |
CN107589982B (zh) | 一种虚拟机从VMware迁移到KVM的方法 | |
CN111097175B (zh) | 一种模拟器的确定方法、装置及存储介质 | |
CN114153647B (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 |