一种松散式数据一致性校验方法

文档序号:8487915阅读:661来源:国知局
一种松散式数据一致性校验方法
【技术领域】
[0001]本发明涉及数据库维护技术,特别涉及一种松散式数据一致性校验方法。
【背景技术】
[0002]在数据库技术的应用领域,在多个存储设备、终端间进行数据复制时,通常是直接从源存储设备中读取数据后通过中间存储媒介或网络存储至目的存储设备上。数据在实际传输过程中可能会存在数据被篡改或者丢失等情况。因此,在对数据库中的数据进行备份的时候,需要对数据的完整性进行验证,以确保数据的安全性。
[0003]为了对数据的完整性进行验证,目前采用的方法主要有:
[0004]1、比较数据库大小:对数据库记录的数据数量进行比较,或者对数据文件的大小进行比较。
[0005]2、对每条数据库记录计算校验码,并比较校验码是否一致。
[0006]上述方案中,通过在完成数据复制后分别将源存储设备和目的存储设备中的数据进行一致性验证,这种一致性比较方法需要先将数据分别读取出来,因此在海量数据处理的应用场景下,会存在数据传输开销大、校验延时大等问题,不适应于进行海量数据的处理。
[0007]校验码的计算可以很好的检查主、备数据库的记录是否一致,但目前市面上有很多数据校验算法对于数据表的先后,行列之间的顺序位置要求严格,即主、备数据行或者列在计算的时候位置不一致,就会出现校验值不一致的情况。因此,需要有一种更加简易的校验值生成算法,能够忽略数据表的先后顺序,数据行或者列的先后顺序,使校验值生成方式更加灵活,并使数据校验相较之更加便利。

【发明内容】

[0008]本发明的目的在于提供一种可以不区分数据表行、列的顺序以及每张数据表的先后顺序,能够对数据表进行实时数据校验,数据传输快、出错率小的数据一致性校验方法。
[0009]为了解决上述技术问题本发明采用了如下技术方案,提供一种松散式数据一致性校验方法,包括如下步骤:数据接收方存储所接收的数据表并标记为未校验,所述数据表携带有时间信息;当接收到数据一致性校验时,提取数据接收方所存储的数据表,依据数据表内数据采用预设的校验值生成方法生成校验值I;依据上一步骤的数据表的时间信息从数据生成方提取相应数据表,并采用预设的校验值生成方法生成校验值II ;数据生成方获取校验值I,检验所述校验值1、校验值II是否一致,若一致则标记数据接收方的所述数据表为已校验,若不一致,则判定该时间信息的数据表传输错误。
[0010]还包括:数据生成方获取数据表传输错误信息,发起更新功能,调用所述检验不一致的时间信息的数据表,。
[0011]所述预设的校验值生成算法包括:
[0012]SOOl:获取数据表内的数值Axy;S002:累加所述数值A xy获取校验值NI ;S003:取每一数值Axy的绝对值,若A xy# O,则取A卩的J次方后的正值并累加,获取校验值N2 ;取数据表内每行数值之和Px,若Px# O,则取P 次方后累加各值,获取校验值N3 ;S004:取数据表内每列数值之和Qy,若Qy# O,则取Q ,的L次方后累加各值,获取校验值N4。
[0013]其中,所述数据接收方实时接收数据生成方发送的数据。
[0014]本发明还公开一种松散式数据一致性校验装置,包括:数据接收方存储单元,存储所接收的数据表并标记为未校验,所述数据表标记有时间信息;第一校验控制单元,当接收到数据一致性校验时,提取数据接收方所存储的数据表,依据数据表内数据采用预设的校验值生成方法生成校验值I ;第二校验控制单元,依据第一校验控制单元的数据表的时间信息从数据生成方提取相应数据表,并采用预设的校验值生成方法生成校验值II;数据生成方校验单元,获取校验值I,检验所述校验值1、验值II是否一致,若一致则将数据接收方的所述数据表标记为已校验,若不一致,则判定该时间信息的数据表传输错误。
[0015]还包括数据生成方更新单元,获取数据表传输错误信息,发起更新功能,调用所述检验不一致的时间信息的数据表。
[0016]其中,所述第一校验控制单元、第二校验控制单元均包括数值获取子单元、校验值NI获取子单元、校验值N2获取子单元、校验值N3获取子单元、校验值N4获取子单元:数值获取子单元获取数据表内的数值Axy;校验值NI获取子单元累加所述数值A xy获取校验值NI ;校验值N2获取子单元,取每一数值Axy的绝对值,若A xy# 0,则取A ^的J次方后的正值并累加,获取校验值N2 ;校验值N3获取子单元,取数据表内每行数值之和Px,若Px# 0,则取K次方后累加各值,获取校验值N3 ;校验值N4获取子单元,取数据表内每列数值之和Qy,若Qy# 0,则取Q ,的L次方后累加各值,获取校验值N4。
[0017]其中,所述数据生成方与数据接收方之间数据表实时传输。
[0018]本发明还公开一种松散式数据一致性校验系统,包括以上所述的松散式数据一致性校验装置。
[0019]本发明的有益效果是:
[0020]一、该方法能够适用于远程的、异构数据库数据同步后数据正确性的校验,如高速公路各级系统数据库相关数据表同步对比,各种缓存数据库同步一致性校验、平台数据同步一致性校验等,其应用范围广泛。
[0021]二、该方法能够实时的对指定的数据表进行数据校验,实时、可靠、方便。
[0022]三、采用上述方法进行数据一致性校验能够不区分行跟列的先后顺序、每张数据表的先后顺序进行实时校验,并且在校验的过程中能够同时校验数据表内数据的准确性,提高数据传输的准确性,防止数据丢包。
【附图说明】
[0023]图1所示为本发明的松散式数据校验方法的数据表A的示意图;
[0024]图2所示为本发明的松散式数据校验方法的数据表B的示意图;
[0025]图3所示为本发明的松散式数据校验方法的流程图;
[0026]图4所示为本发明的松散式数据校验装置的示意图。
【具体实施方式】
[0027]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0028]参阅图3,本发明公开了一种松散式数据一致性校验方法,包括如下步骤:
[0029]SlOO:数据接收方接收数据生成方发送的数据表;
[0030]S200:数据接收方存储所接收的数据表并标记为未校验,所述数据表标记有时间信息;所述的数据接收方可以为高速公路的各级系统数据库相关的端点等,接收方接收数据表后可采用存储设备、存储阵列、云存储、存储软件等存储方式进行数据表存储。在存储数据表时,为该数据表或者数据表内的数据增加一特殊的字段来标记该数据表为未校验,该特殊的字段可以采用字母、数值、特殊符号等,其中数据表内的数据可以为数值型、字母型、字符型等,在计算机内,将不同类型的数据二进制转换形成计算机可识读的数值从而方便后续执行校验。所述数据表内的数据与未校验标记二者之间可以设置分割符以此区分数据表内的数据以及标志。数据表所包含的时间信息可以为时间段,如携带有标记:第一时间段、第二时间段……第N时间段等;时间信息可以为系统自带的时间信息,如可以仅为数据发送时的起始时间或终止时间;时间信息还可以为简单的时间标记如采用字母序号标记、数值序号比较等,以此区分数据表传输的先后顺序。
[0031]S300:由内部或外部控制单元发起数据一致性校验信息,数据一致性校验的发起可由数据生成方或数据接收方来发起,或者可通过外部终端、设备、系统、云端服务器等通过有线或者无线方式发送指令执行该过程。同时可通过指示信息提示用户此时正在进行数据一致性校验,指示信息可采用指示音或者指示灯等来指示。数据一致性校验可针对某一特定时间段的数据表进行校验,即可针对全部数据表进行校验也可针对部分数据表进行校验,不同的数据一致性校验命令将会针对不同的数据表进行数据校验。
[0032]S400:数据接收方接收到数据一致性校验信息时,依据数据一致性校验信息提取所存储的数据表,依据数据表内的数据采用预设的校验值生成方法生成校验值I ;
[0033]在
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1