一种数据的校验方法、装置以及存储介质与流程

文档序号:35673266发布日期:2023-10-08 00:11阅读:19来源:国知局
一种数据的校验方法、装置以及存储介质与流程

本技术涉及计算机,尤其涉及一种数据的校验方法、装置以及存储介质。


背景技术:

1、随着计算机技术的发展与数据量的飞速增长,数据库的使用越来越普遍。用户在使用数据库的过程中,时常会遇到需要比较主从数据库一致性的场景,比如在修复了主从同步问题之后需要确认数据是否一致,或者在数据迁移之后校验迁移数据是否正确等。

2、一般,对于数据校验的计算都是依赖于数据库实例本身的函数以及资源(如cpu、内存等)来进行计算。

3、但是,数据库的计算资源有限,在大量数据的校验场景中,容易出现过载等计算资源不足的问题,影响数据校验的稳定性。


技术实现思路

1、有鉴于此,本技术提供一种数据的校验方法,可以提高数据校验的稳定性。

2、本技术第一方面提供一种数据的校验方法,可以应用于终端设备中包含数据的校验功能的系统或程序中,具体包括:

3、获取主数据库中执行的源实例所对应的第一数据表;

4、将所述第一数据表输入外部实例,并基于所述外部实例对所述第一数据表进行中立数据形式的转换,以得到第一字节流数据,所述外部实例采用的计算资源与所述源实例采用的计算资源不同;

5、对所述第一字节流数据进行校验,以将对应的校验结果写入第一校验表;

6、执行钩子程序,以获取从数据库中执行的目的实例所对应的第二数据表;

7、将所述第二数据表输入所述外部实例,并基于所述外部实例对所述第二数据表进行所述中立数据形式的转换,以得到第二字节流数据,所述外部实例采用的计算资源与所述目的实例采用的计算资源不同;

8、对所述第二字节流数据进行校验,以将对应的校验结果写入第二校验表;

9、基于所述第一校验表与所述第二校验表进行比对,以确定目标校验结果。

10、可选的,在本技术一些可能的实现方式中,所述将所述第一数据表输入外部实例,并基于所述外部实例对所述第一数据表进行中立数据形式的转换,以得到第一字节流数据,包括:

11、将所述第一数据表输入所述外部实例,并对所述第一数据表对应的数据配置共享锁,所述共享锁用于指示所述第一数据表对应的数据不被更改;

12、基于所述外部实例对配置共享锁后的所述第一数据表进行中立数据形式的转换,以得到所述第一字节流数据。

13、可选的,在本技术一些可能的实现方式中,所述基于所述外部实例对配置共享锁后的所述第一数据表进行中立数据形式的转换,以得到所述第一字节流数据,包括:

14、确定所述第一数据表的数据类型

15、基于类型对照表获取所述第一数据块的数据类型所对应的中间数据类型;

16、基于所述中间数据类型对所述第一数据块进行中立数据形式的转换,以得到所述第一字节流数据。

17、可选的,在本技术一些可能的实现方式中,所述将所述第一数据表输入所述外部实例,并对所述第一数据表对应的数据配置共享锁,包括:

18、将所述第一数据表输入所述外部实例,并确定所述第一数据表对应的区间参数;

19、基于所述区间参数配置所述共享锁,以对所述第一数据表对应的数据配置共享锁。

20、可选的,在本技术一些可能的实现方式中,所述对所述第一字节流数据进行校验,以将对应的校验结果写入第一校验表,包括:

21、确定所述第一字节流数据中的数据块;

22、依次对所述第一字节流数据中的数据块进行循环冗余计算,以得到循环冗余值;

23、确定所述第一字节流数据中的数据块对应的行数信息;

24、将所述行数信息与所述循环冗余值进行关联,以将关联后的数据作为校验结果写入所述第一校验表。

25、可选的,在本技术一些可能的实现方式中,所述依次对所述第一字节流数据中的数据块进行循环冗余计算,以得到循环冗余值,包括:

26、确定所述第一字节流数据中第一数据块的左边界;

27、获取所述第一数据块的右边界,并对第二数据块的左边界进行确定;

28、若确定存在所述第二数据块的左边界,则对所述第一数据块的左边界和所述第一数据块的右边界之间的数据进行循环冗余计算,以得到所述循环冗余值。

29、可选的,在本技术一些可能的实现方式中,所述方法还包括:

30、若确定不存在所述第二数据块的左边界,则获取所述第一字节流数据中的最大值;

31、基于所述第一字节流数据中的最大值作为所述第一数据块的右边界。

32、本技术第二方面提供一种数据的校验装置,包括:

33、获取单元,用于获取主数据库中执行的源实例所对应的第一数据表;

34、输入单元,用于将所述第一数据表输入外部实例,并基于所述外部实例对所述第一数据表进行中立数据形式的转换,以得到第一字节流数据,所述外部实例采用的计算资源与所述源实例采用的计算资源不同;

35、校验单元,用于对所述第一字节流数据进行校验,以将对应的校验结果写入第一校验表;

36、所述获取单元,还用于执行钩子程序,以获取从数据库中执行的目的实例所对应的第二数据表;

37、所述输入单元,还用于将所述第二数据表输入所述外部实例,并基于所述外部实例对所述第二数据表进行所述中立数据形式的转换,以得到第二字节流数据,所述外部实例采用的计算资源与所述目的实例采用的计算资源不同;

38、所述校验单元,还用于对所述第二字节流数据进行校验,以将对应的校验结果写入第二校验表;

39、所述校验单元,还用于基于所述第一校验表与所述第二校验表进行比对,以确定目标校验结果。

40、可选的,在本技术一些可能的实现方式中,所述输入单元,具体用于将所述第一数据表输入所述外部实例,并对所述第一数据表对应的数据配置共享锁,所述共享锁用于指示所述第一数据表对应的数据不被更改;

41、所述输入单元,具体用于基于所述外部实例对配置共享锁后的所述第一数据表进行中立数据形式的转换,以得到所述第一字节流数据。

42、可选的,在本技术一些可能的实现方式中,所述输入单元,具体用于确定所述第一数据表的数据类型

43、所述输入单元,具体用于基于类型对照表获取所述第一数据块的数据类型所对应的中间数据类型;

44、所述输入单元,具体用于基于所述中间数据类型对所述第一数据块进行中立数据形式的转换,以得到所述第一字节流数据。

45、可选的,在本技术一些可能的实现方式中,所述输入单元,具体用于将所述第一数据表输入所述外部实例,并确定所述第一数据表对应的区间参数;

46、所述输入单元,具体用于基于所述区间参数配置所述共享锁,以对所述第一数据表对应的数据配置共享锁。

47、可选的,在本技术一些可能的实现方式中,所述校验单元,具体用于确定所述第一字节流数据中的数据块;

48、所述校验单元,具体用于依次对所述第一字节流数据中的数据块进行循环冗余计算,以得到循环冗余值;

49、所述校验单元,具体用于确定所述第一字节流数据中的数据块对应的行数信息;

50、所述校验单元,具体用于将所述行数信息与所述循环冗余值进行关联,以将关联后的数据作为校验结果写入所述第一校验表。

51、可选的,在本技术一些可能的实现方式中,所述校验单元,具体用于确定所述第一字节流数据中第一数据块的左边界;

52、所述校验单元,具体用于获取所述第一数据块的右边界,并对第二数据块的左边界进行确定;

53、所述校验单元,具体用于若确定存在所述第二数据块的左边界,则对所述第一数据块的左边界和所述第一数据块的右边界之间的数据进行循环冗余计算,以得到所述循环冗余值。

54、可选的,在本技术一些可能的实现方式中,所述校验单元,具体用于若确定不存在所述第二数据块的左边界,则获取所述第一字节流数据中的最大值;

55、所述校验单元,具体用于基于所述第一字节流数据中的最大值作为所述第一数据块的右边界。

56、本技术第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的数据的校验方法。

57、本技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的数据的校验方法。

58、根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或者第一方面的各种可选实现方式中提供的数据的校验方法。

59、从以上技术方案可以看出,本技术实施例具有以下优点:

60、通过获取主数据库中执行的源实例所对应的第一数据表;然后将第一数据表输入外部实例,并基于外部实例对第一数据表进行中立数据形式的转换,以得到第一字节流数据,该外部实例采用的计算资源与源实例采用的计算资源不同;并对第一字节流数据进行校验,以将对应的校验结果写入第一校验表;进一步的执行钩子程序,以获取从数据库中执行的目的实例所对应的第二数据表;然后将第二数据表输入外部实例,并基于外部实例对第二数据表进行中立数据形式的转换,以得到第二字节流数据,外部实例采用的计算资源与目的实例采用的计算资源不同;并对第二字节流数据进行校验,以将对应的校验结果写入第二校验表;进而基于第一校验表与第二校验表进行比对,以确定目标校验结果。从而实现体外的数据校验过程,由于外部实例的校验计算过程不会占用主数据库的实例计算资源,且通中立数据形式可以匹配不同类型的数据库进行数据校验,提高了数据校验的稳定性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1