CN114564336A - 数据一致性校验方法、装置、设备以及存储介质 - Google Patents

数据一致性校验方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN114564336A
CN114564336A CN202210188080.2A CN202210188080A CN114564336A CN 114564336 A CN114564336 A CN 114564336A CN 202210188080 A CN202210188080 A CN 202210188080A CN 114564336 A CN114564336 A CN 114564336A
Authority
CN
China
Prior art keywords
data
data table
cyclic redundancy
redundancy check
check value
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
CN202210188080.2A
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.)
Pingkai Star Beijing Technology Co ltd
Original Assignee
Pingkai Star Beijing 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 Pingkai Star Beijing Technology Co ltd filed Critical Pingkai Star Beijing Technology Co ltd
Priority to CN202210188080.2A priority Critical patent/CN114564336A/zh
Publication of CN114564336A publication Critical patent/CN114564336A/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据一致性校验方法、装置、设备以及存储介质。该方法包括:将第一数据表和第二数据表中的数据转化为预设格式的中间数据,第一数据表和第二数据表分别存储于第一存储空间和第二存储空间;对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;若第一数据表和第二数据表对应的循环冗余校验值一致,则确定第一数据表和第二数据表中的数据保持一致。采用本申请实施例,可快速确定数据表间的数据一致性,适用性高。

Description

数据一致性校验方法、装置、设备以及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据一致性校验方法、装置、设备以及存储介质。
背景技术
现有的计算机技术领域中,数据迁移备份往往是其中重要的数据处理环节。例如,一份数据放在数据库中供上层程序使用时,这份数据往往还需要迁移备份到其他地方存储,如在操作***以文件形式存储或存储于其他数据库中。在将数据迁移备份存储之后,往往需要对两个不同存储空间中的数据的一致性进行校验。
现有技术在进行数据一致性校验时,往往需要逐一对数据进行比较,数据校验速度慢,适用性差。
发明内容
本申请实施例提供一种数据一致性校验方法、装置、设备以及存储介质,可快速对数据表间的数据一致性进行校验,适用性高。
第一方面,本申请实施例提供一种方法数据一致性校验,该方法包括:
将第一数据表和第二数据表中的数据转化为预设格式的中间数据,上述第一数据表和上述第二数据表分别存储于第一存储空间和第二存储空间;
对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;
若上述第一数据表和上述第二数据表对应的循环冗余校验值一致,则确定上述第一数据表和上述第二数据表中的上述数据保持一致。
第二方面,本申请实施例提供了一种数据一致性校验装置,该装置包括:
数据转化模块,用于将第一数据表和第二数据表中的数据转化为预设格式的中间数据,上述第一数据表和上述第二数据表分别存储于第一存储空间和第二存储空间;
数据计算模块,用于对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;
数据校验模块,用于若上述第一数据表和上述第二数据表对应的循环冗余校验值一致,则确定上述第一数据表和上述第二数据表中的上述数据保持一致。
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;
上述存储器用于存储计算机程序;
上述处理器被配置用于在调用上述计算机程序时,执行本申请实施例提供的数据一致性校验方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本申请实施例提供的数据一致性校验方法。
在本申请实施例中,通过确定第一数据表和第二数据表对应的循环冗余校验值,可基于第一数据表和第二数据表对应的循环冗余校验值,快速确定第一数据表和第二数据表的数据一致性,适用性高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据一致性校验方法的流程示意图;
图2是本申请实施例提供的数据一致性校验装置的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1是本申请实施例提供的数据一致性校验方法的流程示意图。如图1所示,本申请实施例提供的数据一致性校验方法可包括如下步骤:
步骤S11、将第一数据表和第二数据表中的数据转化为预设格式的中间数据。
在一些可行的实施方式中,第一数据表存储于第一存储空间,第二数据表存储于第二存储空间,且每一存储空间中存储有至少一个数据表,任一存储空间中的数据表中可包括CSV、SQL或KV等格式的数据。
其中,第一数据表和第二数据表为需要进行数据一致性校验的指定数据,也可以分别为第一存储空间和第二存储空间中的任一数据表,以确定第一数据表和第二数据表中的数据是否一致。
其中,第一存储空间和第二存储空间可以为相同的存储空间,也可以为不同的存储空间,在此不做限制。对于第一存储空间和第二存储空间中的任一存储空间,该存储空间可以为数据库、文件夹或者其他存储介质,在此不做限制。
其中,第二存储空间中存储的数据可以为第一存储空间中的数据在数据流转过程中,以CSV、SQL或KV等形式进行备份存储的数据。
例如,第一存储空间可以为MySQL数据库,第二存储空间可以为用于对MySQL数据库中的数据进行备份的其他数据库,如可以为SQL语法关系型数据库,包括但不限于Tikv数据库或KV数据库等,在此不做限制。
在从第一存储空间中确定出第一数据表以及从第二存储空间中确定出第二数据表之后,对于第一数据表和第二数据表中的每一数据表,可将该数据表中的数据转化为预设格式的中间数据。
具体地,对于第一数据表和第二数据表中的每一数据表,可将该数据表中的每个数据进行拼接,将拼接后的数据确定为该数据表对应的预设格式的中间数据。例如,该数据表中的每一个数据可对应该数据表的一个单元格,则可将该数据表中各单元格对应的数据进行拼接得到预设格式的中间数据。
可选地,对于第一数据表和第二数据表中的每一数据表,可将该数据表中每一行的各个数据进行拼接,得到每一行对应的预设格式的中间数据。即该数据表对应的中间数据包括该数据表中每一行对应的中间数据。
作为一示例,对于第一数据表而言,若第一数据表中某一行对应的数据的SQL为INSERT INTO DB1.TABLE1 VALUES(1,“TERRY”,“50000”,“[email protected]”),则可确定该行对应的各数据分别为“1”、“TERRY”、“50000”和“[email protected]”。此时可将该行的各个数据进行拼接得到该行对应的中间数据[email protected]
可选地,对于第一数据表和第二数据表中的每一数据表,可将该数据表中每一列的各个数据进行拼接,得到每一列对应的预设格式的中间数据。即该数据表对应的中间数据包括该数据表中每一列对应的中间数据。
需要特别说明的是,在对各个数据进行拼接时,可采用连接符将各数据进行拼接,也可将各个数据直接进行拼接,还可以通过其他预设处理方式进行拼接,具体可基于实际应用场景需求确定,在此不做限制。
其中,上述连接符可以为“|”、“-”等,在此不做限制。
步骤S12、对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值。
在一些可行的实施方式中,若第一数据表和第二数据表中每一数据表对应的预设格式的中间数据为将该数据表中的各个数据进行拼接后得到的,则可分别对第一数据表和第二数据表对应的中间数据进行循环冗余校验运算,得到第一数据表对应的循环冗余校验值和第二数据表对应的循环冗余校验值。
在一些可行的实施方式中,若第一数据表和第二数据表中每一数据表对应的预设格式的中间数据包括每一行对应的中间数据,则可基于该数据表中每一行对应的中间数据,确定每一行对应的循环冗余校验值,进而基于该数据表中各行对应的循环冗余校验值,确定该数据表对应的循环校验值。
具体地,对于第一数据表和第二数据表中的每一数据表,在确定该数据表中每一行对应的循环冗余校验值时,可分别对每一行对应的中间数据直接进行循环冗余校验运算,将得到的循环冗余校验值确定为每一行对应的循环冗余校验值。
例如,对于第一数据表而言,可对第一数据表中每一行对应的中间数据进行循环冗余校验运算,得到每一行对应的中间数据所对应的循环冗余校验值,并将其确定为对应行所对应的循环冗余校验值。
可选地,对于每一数据表中的每一行,还可先对该行对应的中间数据中的各个数据进行循环冗余校验运算,得到该行对应的中间数据的循环冗余校验值。
例如,若某一行对应的中间数据为[email protected],则可分别对“1”、“TERRY”、“50000”和“[email protected]”进行循环冗余校验运算,得到“1”、“TERRY”、“50000”和“[email protected]”的循环冗余校验值。
对于每一数据表中的每一行,在确定该行对应的各个数据的循环冗余校验值之后,可对其中任意两个数据的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:
对上一次得到的中间循环冗余校验值和剩余任一数据的循环冗余校验值进行异或运算,得到当前中间循环冗余校验值。在完成对所有数据的循环冗余校验值的异或运算后,将最终得到的中间循环冗余校验值确定为该行对应的循环冗余校验值。
即对任意两个数据的循环冗余校验值进行异或运算得到中间循环冗余校验值之后,对该中间循环冗余校验值和剩余任一数据的循环冗余校验值进行异或运算得到新的中间循环冗余校验值,进一步对新的循环冗余校验值和剩余的其他数据的循环冗余校验值进行异或运算,以此类推,将最终得到的中间循环冗余校验值确定为该行对应的循环冗余校验值。
其中,该行对应的每一数据的循环冗余校验值只参与一次中间循环冗余校验值的确定过程。
例如,若某一行对应的中间数据为[email protected],且确定出“1”、“TERRY”、“50000”和“[email protected]”的循环冗余校验值之后,可先对“1”和“TERRY”的循环冗余校验值进行异或运算得到中间循环冗余校验值a,进而对中间循环冗余校验值a和“50000”的循环冗余校验值进行异或运算得到中间循环冗余校验值b,进一步对中间循环冗余校验值b和“[email protected]”的循环冗余校验值进行异或运算,得到该行对应的循环冗余校验值。
进一步地,对于第一数据表和第二数据表中的每一数据表,在确定该数据表中各行对应的循环冗余校验值之后,可对该数据表任意两行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:
对上一次得到的中间循环冗余校验值和剩余任一行对应的循环冗余校验值进行异或运算,得到当前中间循环冗余校验值。在完成对所有行对应的循环冗余校验值的异或运算后,将最终得到的中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
即对任意两行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并对该中间循环冗余校验值和剩余任一行对应的循环冗余校验值进行异或运算得到新的中间循环冗余校验值,进一步对新的循环冗余校验值和剩余的其他行的循环冗余校验值进行异或运算,以此类推,将最终得到的中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
其中,该数据表对应中每一行对应的循环冗余校验值只参与一次中间循环冗余校验值的确定过程。
例如,若某一数据表包括4行数据,在确定各行对应的循环冗余校验值之后,可对第一行和第二行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值c,进而对中间循环冗余校验值c和第三行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值d,进一步对中间循环冗余校验值d和最后一行对应的循环冗余校验值进行异或运算,得到该数据表对应的循环冗余校验值。
例如,某一数据表中的每一行数据包括关于id和name的两个数据,通过(SELECTBIT_XOR(CAST(CRC32(CONCAT_WS('-,id,name,CONCAT(ISNULL(id),ISNULL(name))))AS UNSIGNED))AS checksum FROM oomtest;)语句可以将每一行数据中的所有数据用“-”连接起来,然后计算出一个循环冗余校验值,最后对所有循环冗余校验值进行异或运算,得到该数据表对应的循环冗余校验值。
在一些可列的实施方式中,若第一数据表和第二数据表中每一数据表对应的预设格式的中间数据包括每一列对应的中间数据,则可基于该数据表中每一列对应的中间数据,确定每一列对应的循环冗余校验值,进而基于该数据表中各列对应的循环冗余校验值,确定该数据表对应的循环校验值。
具体地,对于第一数据表和第二数据表中的每一数据表,在确定该数据表中每一列对应的循环冗余校验值时,可分别对每一列对应的中间数据直接进行循环冗余校验运算,将得到的循环冗余校验值确定为每一列对应的循环冗余校验值。
例如,对于第二数据表而言,可对第二数据表中每一列对应的中间数据进行循环冗余校验运算,得到每一列对应的中间数据所对应的循环冗余校验值,并将其确定为对应的循环冗余校验值。
可选地,对于每一数据表中的每一列,还可先对该列对应的中间数据中的各个数据进行循环冗余校验运算,得到该列对应的中间数据的循环冗余校验值。
例如,若某一列对应的中间数据为111-222-333-444,则可分别对“111”、“222”、“333”和“444”进行循环冗余校验运算,得到“111”、“222”、“333”和“444”的循环冗余校验值。
对于每一数据表中的每一列,在确定该列对应的各个数据的循环冗余校验值之后,可对其中任意两个数据的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执列以下计算过程:
对上一次得到的中间循环冗余校验值和剩余任一数据的循环冗余校验值进行异或运算,得到当前中间循环冗余校验值。在完成对所有数据的循环冗余校验值的异或运算后,将最终得到的中间循环冗余校验值确定为该列对应的循环冗余校验值。
即对任意两个数据的循环冗余校验值进行异或运算得到中间循环冗余校验值之后,对该中间循环冗余校验值和剩余任一数据的循环冗余校验值进行异或运算得到新的中间循环冗余校验值,进一步对新的循环冗余校验值和剩余的其他数据的循环冗余校验值进行异或运算,以此类推,将最终得到的中间循环冗余校验值确定为该列对应的循环冗余校验值。
其中,该列对应的每一数据的循环冗余校验值只参与一次中间循环冗余校验值的确定过程。
例如,若某一列对应的中间数据为111-222-333-444,且确定出“111”、“222”、“333”和“444”的循环冗余校验值之后,可先对“111”和“222”的循环冗余校验值进行异或运算得到中间循环冗余校验值e,进而对中间循环冗余校验值e和“333”的循环冗余校验值进行异或运算得到中间循环冗余校验值f,进一步对中间循环冗余校验值f和“444”的循环冗余校验值进行异或运算,得到该列对应的循环冗余校验值。
进一步地,对于第一数据表和第二数据表中的每一数据表,在确定该数据表中各列对应的循环冗余校验值之后,可对该数据表任意两列对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执列以下计算过程:
对上一次得到的中间循环冗余校验值和剩余任一列对应的循环冗余校验值进行异或运算,得到当前中间循环冗余校验值。在完成对所有列对应的循环冗余校验值的异或运算后,将最终得到的中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
即对任意两列对应的循环冗余校验值进行异或运算得到中间循环冗余校验值之后,对该中间循环冗余校验值和剩余任一列对应的循环冗余校验值进行异或运算得到新的中间循环冗余校验值,进一步对新的循环冗余校验值和剩余的其他列的循环冗余校验值进行异或运算,以此类推,将最终得到的中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
其中,该数据表中每一列对应的循环冗余校验值只参与一次中间循环冗余校验值的确定过程。
例如,若某一数据表包括4列数据,在确定各列对应的循环冗余校验值之后,可对第一列和第二列对应的循环冗余校验值进行异或运算得到中间循环冗余校验值g,进而对中间循环冗余校验值g和第三列对应的循环冗余校验值进行异或运算得到中间循环冗余校验值h,进一步对中间循环冗余校验值h和最后一列对应的循环冗余校验值进行异或运算,得到该数据表对应的循环冗余校验值。
可选地,在确定第一数据表和第二数据表中每一数据表对应的循环冗余校验值时,还可在确定该数据表中每一数据对应的循环冗余校验值之后,可对该数据表中任意两个数据的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执列以下计算过程:
对上一次得到的中间循环冗余校验值和剩余任一数据的循环冗余校验值进行异或运算,得到当前中间循环冗余校验值。在完成对所有数据的循环冗余校验值的异或运算后,将最终得到的中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
同样,该数据表对应中每一数据的循环冗余校验值只参与一次中间循环冗余校验值的确定过程。
步骤S13、若第一数据表和第二数据表对应的循环冗余校验值一致,则确定第一数据表和第二数据表中的数据保持一致。
在一些可行的实施方式中,在确定出第一数据表和第二数据表对应的循环冗余校验值之后,可将第一数据表和第二数据表的循环冗余校验值进行比较。若二者一致,则可确定第一数据表和第二数据表中的数据保持一致,即第一数据表和第二数据表中存储有相同的数据。
可选地,在第一数据表和第二数据表中各行的排列顺序一致的情况下,在基于第一数据表和第二数据表对应的循环冗余校验值确定第一数据表和第二数据表的数据一致性时,还可将第一数据表和第二数据表中对应行的循环冗余校验值进行比较。若第一数据表中的每一行对应的循环冗余校验值与第二数据表中对应行的循环冗余校验值一致,且第一数据表和第二数据表对应的循环冗余校验值一致,则可确定第一数据表和第二数据表中的数据保持一致。
若第一数据表和第二数据表对应的循环冗余校验值不一致,和/或第一数据表中至少存在一行对应的循环冗余校验值与第二数据表中对应行的循环冗余校验值不一致,则可确定第一数据表和第二数据表中的数据不一致。
可选地,在第一数据表和第二数据表中各列的排列顺序一致的情况下,在基于第一数据表和第二数据表对应的循环冗余校验值确定第一数据表和第二数据表的数据一致性时,还可将第一数据表和第二数据表中对应列的循环冗余校验值进行比较。若第一数据表中的每一列对应的循环冗余校验值与第二数据表中对应列的循环冗余校验值一致,且第一数据表和第二数据表对应的循环冗余校验值一致,则可确定第一数据表和第二数据表中的数据保持一致。
若第一数据表和第二数据表对应的循环冗余校验值不一致,和/或第一数据表中至少存在一列对应的循环冗余校验值与第二数据表中对应列的循环冗余校验值不一致,则可确定第一数据表和第二数据表中的数据不一致。
可选地,在第一数据表和第二数据表中各行和各列的排列顺序一致的情况下,在基于第一数据表和第二数据表对应的循环冗余校验值确定第一数据表和第二数据表的数据一致性时,还可将第一数据表和第二数据表中对应行和对应列的循环冗余校验值进行比较。若第一数据表和第二数据表对应的循环冗余校验值一致、第一数据表中每一列对应的循环冗余校验值和第二数据表中对应列的循环冗余校验值一致、且第一数据表中每一行对应的循环冗余校验值和第二数据表中对应行的循环冗余校验值一致,则确定第一数据表和第二数据表中的数据保持一致。反之则可确定第一数据表和第二数据表中的数据不一致。
在一些可行的实施方式中,若需要确定第一存储空间和第二存储空间中的所有数据的数据一致性时,可先确定每一存储空间中各个数据表对应的循环冗余校验值,具体确定方式如上述所示,在此不再赘述。
进一步地,可将第一存储空间和第二存储空间中对应数据表的循环冗余校验值进行比较,若第一存储空间中每一数据表对应的循环冗余校验值与第二存储空间中对应数据表的循环冗余校验值一致,则可确定第一存储空间和第二存储空间所存储的数据保持一致。否则可确定第一存储空间和第二存储空间所存储的数据不一致。
可选地,在确定出每一存储空间中各个数据表对应的循环冗余校验值之后,可基于该存储空间中各个数据表对应的循环冗余校验值,确定该存储空间所存储的所有数据的循环冗余校验值。
具体对于每一存储空间,可对该存储空间中任意两个数据表对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:
对上一次得到的中间循环冗余校验值和剩余任一数据表对应的循环冗余校验值进行异或运算,得到当前中间循环冗余校验值。在完成对该存储空间中所有数据表对应的循环冗余校验值的异或运算后,将最终得到的中间循环冗余校验值确定为该存储空间所存储的所有数据的循环冗余校验值。
即对该存储空间中任意两个数据表对应的循环冗余校验值进行异或运算得到中间循环冗余校验值之后,对该中间循环冗余校验值和剩余任一数据表对应的循环冗余校验值进行异或运算得到新的中间循环冗余校验值,并进一步对新的循环冗余校验值和剩余的其他一个数据表的循环冗余校验值进行异或运算,以此类推,将最终得到的中间循环冗余校验值确定为该存储空间所存储的所有数据的循环冗余校验值。
其中,该存储空间中每一数据表对应的循环冗余校验值只参与一次中间循环冗余校验值的确定过程。
进一步地,在确定出第一存储空间和第二存储空间所存储的数据的循环冗余校验值之后,可将第一存储空间和第二存储空间对应的循环冗余校验值进行比较。在第一存储空间和第二存储空间对应的循环冗余校验值一致的情况下,可确定第一存储空间和第二存储空间所存储的数据保持一致。
例如,若第一存储空间为MySQL数据库,第二存储空间为用于对MySQL中的数据进行备份存储的KV数据库。基于上述实现方式可快速确定MySQL数据库和KV数据库中所存储的数据是否保持一致。
在一些可行的实施方式中,在确定第一数据表和第二数据表对应的循环冗余校验值之前,还可确定第二数据表和第二数据表的表结构是否一致。若第一数据表和第二数据表的表结构不一致,则可直接确定第一数据表和第二数据表中的数据不一致。
若第一数据表和第二数据表的表结构一致,则可进一步确定第一数据表和第二数据表对应的循环冗余校验值,进而根据第一数据表和第二数据表对应的循环冗余校验值来确定第一数据表和第二数据表中的数据是否一致。
具体地,对于第一数据表和第二数据表中的每一数据表,可确定该数据表的列属性信息。其中,每一数据表的列属性信息包括该数据表各列对应的数据类型以及属性。
如该数据表中各列对应的数据的属性为“id”、“name”、“number”以及“mail”,且对应的数据类型分别为int(4)、char(64)、int(64)以及char(64),则该数据表对应的列属性信息可包括“id-int(4)”、“name-char(64)”、“number-int(64)”以及“mail-char(64)”。
其中,对于每一数据表,在确定数据表对应的列属性信息时,可从对应存储空间的模式信息(information_schema)中确定COLUMNS表,基于COLUMNS表来确定该数据表对应的列属性信息。
进一步地,对于每一数据表,可将该数据表的列属性信息转化为预设格式的中间数据,进而基于列属性信息对应的中间数据确定列属性信息对应的循环冗余校验值。
其中,在将该数据表的列属性信息转化为预设格式的中间数据时,可同样将各信息进行拼接得到预设格式的中间数据。在对各信息进行拼接时,可采用连接符将各信息进行拼接,也可将各信息直接进行拼接,还可以通过其他预设处理方式进行拼接,具体可基于实际应用场景需求确定,在此不做限制。其中,上述连接符可以为“|”、“-”等,在此不做限制。
例如,若某一该数据表对应的列属性信息包括“id-int(4)”、“name-char(64)”、“number-int(64)”以及“mail-char(64)”,则基于连接符对各信息进行拼接后得到预设格式的中间数据id-int(4)-name-char(64)-number-int(64)-mail-char(64)。
其中,在确定列属性信息对应的循环冗余校验值时,可将该列属性信息对应的中间数据视为数据表中一行对应的中间数据,进而基于确定数据表中每一行对应的循环冗余校验值的方式,确定出列属性信息对应的循环冗余校验值,在此不再赘述。
进一步地,在确定出第一数据表和第二数据表的列属性信息对应的循环冗余校验值之后,若第一数据表和第二数据表的列属性信息对应的循环冗余校验值一致,则可确定第一数据表和第二数据表的表结构一致,进而可执行确定第一数据表和第二数据表对应的循环冗余校验值的步骤。
需要特别说明的是,本申请实施例在确定循环冗余校验值所采用的算法可以为32位循环冗余校验算法或64位循环冗余校验算法,在此不做限制。在采用64位循环冗余校验算法确定循环冗余校验值的情况下,可减少发生数据碰撞的可能性,提升数据一致性校验的准确性。
基于本申请实施例提供的方法,可快速对不同存储空间(如两个数据库)中的部分或者全部数据表的数据一致性进行校验,准确性高。
参见图2,图2是本申请实施例提供的数据一致性校验装置的结构示意图。本申请实施例提供的装置包括:
数据转化模块21,用于将第一数据表和第二数据表中的数据转化为预设格式的中间数据,上述第一数据表和上述第二数据表分别存储于第一存储空间和第二存储空间;
数据计算模块22,用于对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;
数据校验模块23,用于若上述第一数据表和上述第二数据表对应的循环冗余校验值一致,则确定上述第一数据表和上述第二数据表中的上述数据保持一致。
在一些可行的实施方式中,对于上述每一数据表,上述数据转化模块21,用于:
将该数据表中每一行的各个数据进行拼接,得到每一行对应的预设格式的中间数据;
将该数据表中每一列的各个数据进行拼接,得到每一列对应的预设格式的中间数据。
在一些可行的实施方式中,对于上述每一数据表,该数据表对应的中间数据包括每一行对应的中间数据;
上述数据计算模块22,用于:
基于该数据表中上述每一行对应的中间数据,确定每一行对应的循环冗余校验值;
基于该数据表中各行对应的循环冗余校验值,确定该数据表对应的循环冗余校验值。
在一些可行的实施方式中,对于上述每一数据表,上述数据计算模块22,用于:
对该数据表中上述每一行对应的中间数据进行循环冗余校验运算,得到每一行对应的循环冗余校验值;
对于该数据表中的每一行,对该行对应的中间数据中的各个数据分别进行循环冗余校验运算,得到各个数据的循环冗余校验值,对任意两个数据的上述循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的上述中间循环冗余校验值和剩余任一数据的上述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该行对应的循环冗余校验值。
在一些可行的实施方式中,对于上述每一数据表,上述数据计算模块22,用于:
对该数据表中任意两行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的上述中间循环冗余校验值和剩余任一行对应的上述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
在一些可行的实施方式中,上述数据计算模块22,还用于:
确定每一存储空间中各数据表对应的循环冗余校验值;
对于每一存储空间,对该存储空间中任意两个数据表对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的上述中间循环冗余校验值和剩余任一数据表对应的上述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该存储空间所存储的数据的循环冗余校验值;
上述数据校验模块23,还用于:
若上述第一存储空间和上述第二存储空间所存储的数据的循环冗余校验值一致,则确定上述第一存储空间和上述第二存储空间所存储的数据保持一致。
在一些可行的实施方式中,在确定上述第一数据表和上述第二数据表对应的循环冗余校验值之前,上述数据计算模块22,还用于:
对于每一数据表,将该数据表的列属性信息转化为预设格式的中间数据,并基于上述列属性信息对应的中间数据确定上述列属性信息对应的循环冗余校验值;
上述数据校验模块23,还用于:
若上述第一数据表和上述第二数据表的列属性信息对应的循环冗余校验值一致,则确定上述第一数据表和上述第二数据表的表结构一致,并执行确定上述第一数据表和上述第二数据表对应的循环冗余校验值的步骤。
具体实现中,上述装置可通过其内置的各个功能模块执行如上述图1中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图3,图3是本申请实施例提供的电子设备的结构示意图。如图3所示,本实施例中的电子设备300可以包括:处理器301,网络接口304和存储器305,此外,上述电子设备300还可以包括:用户接口303,和至少一个通信总线302。其中,通信总线302用于实现这些组件之间的连接通信。其中,用户接口303可以包括显示屏(Display)、键盘(Keyboard),可选用户接口303还可以包括标准的有线接口、无线接口。网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器304可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器。存储器305可选的还可以是至少一个位于远离前述处理器301的存储装置。如图3所示,作为一种计算机可读存储介质的存储器305中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图3所示的电子设备300中,网络接口304可提供网络通讯功能;而用户接口303主要用于为用户提供输入的接口;而处理器301可以用于调用存储器305中存储的设备控制应用程序,以实现:
将第一数据表和第二数据表中的数据转化为预设格式的中间数据,上述第一数据表和上述第二数据表分别存储于第一存储空间和第二存储空间;
对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;
若上述第一数据表和上述第二数据表对应的循环冗余校验值一致,则确定上述第一数据表和上述第二数据表中的上述数据保持一致。
在一些可行的实施方式中,对于上述每一数据表,上述处理器301用于:
将该数据表中每一行的各个数据进行拼接,得到每一行对应的预设格式的中间数据;
将该数据表中每一列的各个数据进行拼接,得到每一列对应的预设格式的中间数据。
在一些可行的实施方式中,对于上述每一数据表,该数据表对应的中间数据包括每一行对应的中间数据;
对于每一数据表,上述处理器301用于:
基于该数据表中上述每一行对应的中间数据,确定每一行对应的循环冗余校验值;
基于该数据表中各行对应的循环冗余校验值,确定该数据表对应的循环冗余校验值。
在一些可行的实施方式中,对于上述每一数据表,上述处理器301用于:
对该数据表中上述每一行对应的中间数据进行循环冗余校验运算,得到每一行对应的循环冗余校验值;
对于该数据表中的每一行,对该行对应的中间数据中的各个数据分别进行循环冗余校验运算,得到各个数据的循环冗余校验值,对任意两个数据的上述循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的上述中间循环冗余校验值和剩余任一数据的上述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该行对应的循环冗余校验值。
在一些可行的实施方式中,对于上述每一数据表,上述处理器301用于:
对该数据表中任意两行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的上述中间循环冗余校验值和剩余任一行对应的上述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
在一些可行的实施方式中,对于上述每一数据表,上述处理器301还用于:
确定每一存储空间中各数据表对应的循环冗余校验值;
对于每一存储空间,对该存储空间中任意两个数据表对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的上述中间循环冗余校验值和剩余任一数据表对应的上述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该存储空间所存储的数据的循环冗余校验值;
若上述第一存储空间和上述第二存储空间所存储的数据的循环冗余校验值一致,则确定上述第一存储空间和上述第二存储空间所存储的数据保持一致。
在一些可行的实施方式中,在确定上述第一数据表和上述第二数据表对应的循环冗余校验值之前,上述处理器301还用于:
对于每一数据表,将该数据表的列属性信息转化为预设格式的中间数据,并基于上述列属性信息对应的中间数据确定上述列属性信息对应的循环冗余校验值;
若上述第一数据表和上述第二数据表的列属性信息对应的循环冗余校验值一致,则确定上述第一数据表和上述第二数据表的表结构一致,并执行确定上述第一数据表和上述第二数据表对应的循环冗余校验值的步骤。
应当理解,在一些可行的实施方式中,上述处理器301可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备300可通过其内置的各个功能模块执行如上述图1中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图1中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行图1中各个步骤所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种数据一致性校验方法,其特征在于,所述方法包括:
将第一数据表和第二数据表中的数据转化为预设格式的中间数据,所述第一数据表和所述第二数据表分别存储于第一存储空间和第二存储空间;
对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;
若所述第一数据表和所述第二数据表对应的循环冗余校验值一致,则确定所述第一数据表和所述第二数据表中的所述数据保持一致。
2.根据权利要求1所述的方法,其特征在于,对于所述每一数据表,将该数据表中的所述数据转化为所述预设格式的中间数据,包括以下至少一项:
将该数据表中每一行的各个数据进行拼接,得到每一行对应的预设格式的中间数据;
将该数据表中每一列的各个数据进行拼接,得到每一列对应的预设格式的中间数据。
3.根据权利要求2所述的方法,其特征在于,对于所述每一数据表,该数据表对应的中间数据包括每一行对应的中间数据;
基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值,包括:
基于该数据表中所述每一行对应的中间数据,确定每一行对应的循环冗余校验值;
基于该数据表中各行对应的循环冗余校验值,确定该数据表对应的循环冗余校验值。
4.根据权利要求3所述的方法,其特征在于,对于所述每一数据表,所述基于该数据表中所述每一行对应的中间数据,确定每一行对应的循环冗余校验值,包括以下至少一项:
对该数据表中所述每一行对应的中间数据进行循环冗余校验运算,得到每一行对应的循环冗余校验值;
对于该数据表中的每一行,对该行对应的中间数据中的各个数据分别进行循环冗余校验运算,得到各个数据的循环冗余校验值,对任意两个数据的所述循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的所述中间循环冗余校验值和剩余任一数据的所述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的所述中间循环冗余校验值确定为该行对应的循环冗余校验值。
5.根据权利要求3所述的方法,其特征在于,对于所述每一数据表,所述基于该数据表中各行对应的循环冗余校验值,确定该数据表对应的循环冗余校验值,包括:
对该数据表中任意两行对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的所述中间循环冗余校验值和剩余任一行对应的所述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的上述中间循环冗余校验值确定为该数据表对应的循环冗余校验值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定每一存储空间中各数据表对应的循环冗余校验值;
对于每一存储空间,对该存储空间中任意两个数据表对应的循环冗余校验值进行异或运算得到中间循环冗余校验值,并重复执行以下计算过程:对上一次得到的所述中间循环冗余校验值和剩余任一数据表对应的所述循环冗余校验值进行异或运算,得到当前中间循环冗余校验值;将最终得到的所述中间循环冗余校验值确定为该存储空间所存储的数据的循环冗余校验值;
若所述第一存储空间和所述第二存储空间所存储的数据的循环冗余校验值一致,则确定所述第一存储空间和所述第二存储空间所存储的数据保持一致。
7.根据权利要求1所述的方法,其特征在于,在确定所述第一数据表和所述第二数据表对应的循环冗余校验值之前,所述方法还包括:
对于每一数据表,将该数据表的列属性信息转化为预设格式的中间数据,并基于所述列属性信息对应的中间数据确定所述列属性信息对应的循环冗余校验值;
若所述第一数据表和所述第二数据表的列属性信息对应的循环冗余校验值一致,则确定所述第一数据表和所述第二数据表的表结构一致,并执行确定所述第一数据表和所述第二数据表对应的循环冗余校验值的步骤。
8.一种数据一致性校验装置,其特征在于,所述装置包括:
数据转化模块,用于将第一数据表和第二数据表中的数据转化为预设格式的中间数据,所述第一数据表和所述第二数据表分别存储于第一存储空间和第二存储空间;
数据计算模块,用于对于每一数据表,基于该数据表对应的中间数据确定该数据表对应的循环冗余校验值;
数据校验模块,用于若所述第一数据表和所述第二数据表对应的循环冗余校验值一致,则确定所述第一数据表和所述第二数据表中的所述数据保持一致。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项所述的方法。
CN202210188080.2A 2022-02-28 2022-02-28 数据一致性校验方法、装置、设备以及存储介质 Pending CN114564336A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210188080.2A CN114564336A (zh) 2022-02-28 2022-02-28 数据一致性校验方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210188080.2A CN114564336A (zh) 2022-02-28 2022-02-28 数据一致性校验方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN114564336A true CN114564336A (zh) 2022-05-31

Family

ID=81716717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210188080.2A Pending CN114564336A (zh) 2022-02-28 2022-02-28 数据一致性校验方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114564336A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115146121A (zh) * 2022-09-05 2022-10-04 舟谱数据技术南京有限公司 一种多数据对账校验方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115146121A (zh) * 2022-09-05 2022-10-04 舟谱数据技术南京有限公司 一种多数据对账校验方法及装置

Similar Documents

Publication Publication Date Title
CN109635256B (zh) 用于校验数据的方法和装置
CN110990276A (zh) 接口字段自动化测试方法、装置和存储介质
CN112380046B (zh) 计算结果校验方法、***、装置、设备及存储介质
CN112035355A (zh) 数据处理方法、装置、计算机设备和存储介质
CN111835808B (zh) 数据存储方法及装置、数据读取方法及装置、存储介质
CN111352997A (zh) 一种测试环境校验方法及***
CN111475402A (zh) 程序功能的测试方法及相关装置
CN114564336A (zh) 数据一致性校验方法、装置、设备以及存储介质
CN113128168A (zh) 一种焊盘参数校验校正方法、装置、计算机设备及存储介质
CN108196975B (zh) 基于多校验和的数据验证方法、装置及存储介质
CN112486957B (zh) 数据库迁移检测方法、装置、设备及存储介质
CN117493309A (zh) 一种标准模型生成方法、装置、设备及存储介质
CN113342671A (zh) 对运算模块进行验证的方法、装置、电子设备和介质
CN112561690A (zh) ***分期业务接口的测试方法、***、设备及存储介质
CN112433935A (zh) 测试方法、装置、电子设备及存储介质
CN116401229A (zh) 数据库的数据校验方法、装置及设备
CN113704123A (zh) 接口测试方法、装置、设备以及存储介质
CN110209566B (zh) 一种对软件的测试方法及装置
US11036828B1 (en) Identifying checksum mechanisms using linear equations
CN114691604B (zh) 一种dbc信号导出起始位格式转换方法及***
CN112650679B (zh) 一种测试校验方法、装置及计算机***
CN116737457B (zh) 一种基于分布式存储的数据校验方法
CN114595486B (zh) 零数据识别方法、装置、可读存储介质及电子设备
CN115146121A (zh) 一种多数据对账校验方法及装置
CN115081235A (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