CN111046043A - 一种数据库表快速精确校验方法 - Google Patents
一种数据库表快速精确校验方法 Download PDFInfo
- Publication number
- CN111046043A CN111046043A CN201911262561.8A CN201911262561A CN111046043A CN 111046043 A CN111046043 A CN 111046043A CN 201911262561 A CN201911262561 A CN 201911262561A CN 111046043 A CN111046043 A CN 111046043A
- Authority
- CN
- China
- Prior art keywords
- data
- row
- checking
- backup
- verification
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000013524 data verification Methods 0.000 claims abstract description 4
- 238000012795 verification Methods 0.000 claims description 16
- 238000013467 fragmentation Methods 0.000 abstract description 6
- 238000006062 fragmentation reaction Methods 0.000 abstract description 6
- 239000012634 fragment Substances 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 1
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库表快速精确校验方法,包括以下步骤:步骤1.数据源选择;步骤2.数据校验;步骤3.结果展示;其中步骤1包括选定两个需要进行比较数据源,其中一个是原始数据,另一个是备份数据,选择校验的范围。本发明通过分片校验的方法,能够应对海量数据的一致性校验,同时在分片校验过程中通过哈希运算节约了计算资源,校验速度快,且能够提供精确到行列的校验结果。
Description
技术领域
本发明涉及数据库安全领域,尤其涉及一种数据库表快速精确校验的方法。
背景技术
我们已经进入了数字时代,在数字时代里,数据的重要性不言而喻。大量的业务需求产生了大量的数据,如何有效的保护这些重要数据一直是一个重要的课题。现阶段一种非常有效的做法就是针对数据进行容灾备份,确保数据存在多个副本,在原始数据产生灾难性故障的时候,通过备份数据可以快速的恢复业务,另外备份数据还能作为其他关联业务的数据源,为其他业务提供服务。但是,对数据进行容灾备份的时候,必须保证原始数据和备份数据的一致性,但是由于数据规模的不断增大,数据一致性校验难度也在不断增加。
传统的一致性校验有多种做法,一种是有针对性的局部校验,比如校验记录行数,或者通过将数据导出到文本中,然后通过文本的方式进行对比分析。另外一种则是使用SQL的客户端工具的比对功能。局部校验的方式是比较粗糙的一种校验形式,只能针对部分的应用场景。通过一些工具作比对,能做到比较细致的比对,但是随着单表数据量的增大,校验效率也会越来越低,同时也存在因为资源消耗过大而导致无法校验的情况。
为此,本发明提供了一种数据库表快速精确校验的方法,主要针对复杂数据结构的数据库进行一致性校验,并解决了单表数据量太大导致单表无法做精确数据校验的问题,实现了高效的数据校验。
发明内容
为实现本发明之目的,采用以下技术方案予以实现:
一种数据库表快速精确校验方法,包括以下步骤:步骤1.数据源选择;步骤2.数据校验;步骤3.结果展示;其中步骤1包括选定两个需要进行比较的数据源,其中一个是原始数据,另一个是备份数据,选择校验的范围。
所述的数据库表快速精确校验方法,其中步骤2包括:(1)数据结构校验:检查原始数据和备份数据的数据结构,如果原始数据和备份数据的数据结构不一致则不进行校验;如果原始数据和备份数据的数据结构一致,则进行后续的校验。
所述的数据库表快速精确校验方法,其中步骤2还包括:(2)唯一键校验:检查原始数据和备份数据是否都具备行唯一键,如果是,则执行(3)数据分片。
所述的数据库表快速精确校验方法,其中步骤2中(3)数据分片包括:查询原始数据和备份数据的数据表的真实行数,设定分片数,查询原始数据和备份数据的行唯一键,对行唯一键做HASH运算,然后将运算结果取分片数的模,将取模后的值相同的行归为同一个分片,该取模后的值作为该分片的序号。
所述的数据库表快速精确校验方法,其中步骤2还包括:(4)一致性校验:对于原始数据和备份数据的每个分片,分别对每一行中的各列进行HASH计算并进行求和,得到该行的行值,比较原始数据和备份数据中的相同分片序号中的相同的行唯一键所对应的行值,如果相同,则认为原始数据和备份数据的该行数据一致,在行记录表中记录该行数据一致,如果不相同,在行记录表中记录该行数据不一致,合并所有的分片的校验结果,即将所有分片的行记录表合并为一个校对记录表。
所述的数据库表快速精确校验方法,其中:对于行数据不一致的情况,还要再进行详细比对,即将原始数据和备份数据的该行数据中的每列的数据进行比对,并在行记录表中记录每列的比对结果,即某列数据一致或某列数据不一致。
所述的数据库表快速精确校验方法,其中步骤3包括:列出所有的比对对象以及相应的比对结果,每个对象的比对结果包括行数据一致信息和行数据不一致信息。
附图说明
图1为本方法流程图;
图2为ORACLE类型对比图;
图3为MYSQL类型对比图。
具体实施方式
下面,结合附图对本发明的具体实施方式进行详细说明。
如图1所示,本发明的数据库表快速校验方法包括以下步骤:
步骤1.数据源选择:
选定两个需要进行比较的数据源,其中一个是原始数据,另一个是备份数据,可以选择性的选择校验的范围,比如数据源的整个数据库者数据库下面的某个具体表。
步骤2.数据校验:
(1)数据结构校验:检查校验两端(原始数据和备份数据)的数据结构,如果原始数据和备份数据的数据结构不一致且不能进行数据类型转换匹配的则不能进行校验;如果原始数据和备份数据的数据结构一致,则进行唯一键校验;
针对异构数据库,如果能够进行数据类型转换匹配,则需要有针对性的进行数据类型的转换匹配,即将进行校验的两个数据库表中的存储类型进行自定义标准类型转换。在异构数据库中,数据的存储类型会有各自不同的表达形式,就市场上面常用的数据库Mysql和Oracle针对的整形数值结果的存储,Oracle中为NUMBER/INTEGER,Mysql中为INT/INTEGER/DECIMAL。在进行类型校验的时候首先要规范这些类型,主要分为几种自定义类型,整形:NUMBER,浮点型:DOUBLE,字符串:STRING,日期:DATE,上述的自定义标准类型转换即将异构数据库表中的存储类型转换为本发明的自定义标准类型中的一种,包括整形、浮点型、字符型、日期等,类型转换完成后进行后续校验步骤。针对目前市场上使用比较广泛的MYSQL和ORACLE数据库,针对常用数据类型的匹配表如图2,图3所示。
(2)唯一键校验:对原始数据和备份数据是否具备行唯一键做校验,如果原始数据和备份数据都存在主键,或者唯一索引或者多主键等情况,则视为该原始数据和备份数据的数据表都具备行唯一键,可以使用行唯一键完成对数据的精确校验;如果不存在行唯一键,则对原始数据和备份数据进行全表全列的HASH求和计算对比,并返回结果。
(3)数据分片:查询原始数据和备份数据的数据表的真实行数,以此作为分片的基础,设定分片数量,分片主要基于数据量的考虑,正常设定一个分片的大小宜不超过100万行为佳。分片的具体方式是:查询原始数据和备份数据的行唯一键,对行唯一键做HASH(哈希)运算,然后将运算结果取分片数(例如分片数可取100)的模,将取模后的值相同的行归为同一个分片,该取模后的值即为该分片的序号。
(4)一致性校验:
比对原始数据和备份数据的每个分片的数据:对于每个分片,分别对每一行中的各列进行HASH计算并进行求和,得到该行的行值,比较原始数据和备份数据中的相同分片序号中的相同的行唯一键的键值所对应的行值,如果相同,则认为原始数据和备份数据的该行数据一致,在行记录表中记录该行数据一致,如果不相同,在行记录表中记录该行数据不一致。合并所有的分片的校验结果,即将所有分片的行记录表合并为一个校对记录表。
优选的,对于行数据不一致的情况,还要再进行详细比对,即将原始数据和备份数据的该行数据中的每列的数据进行比对,并在行记录表中记录每列的比对结果,即某列数据一致或某列数据不一致。
优选的,一致性校验过程中,应同时校对是否存在不一致结果超过预期设定的情况,如果数据不一致的行的数量超出了预设的阈值,则终止一致性校验,输出不一致超出阈值的提示。
步骤3.结果展示:
生成一致性校验的结果集并进行展示:列出所有的比对对象以及相应的比对结果状态,每个对象的比对结果,包括行数据一致信息和行数据不一致信息。在行数据不一致信息中,还可以列出列数据比对结果:某列数据一致或不一致。
本发明通过分片校验的方法,能够应对海量数据的一致性校验,同时在分片校验过程中通过哈希运算节约了计算资源,校验速度快,且能够提供精确到行列的校验结果。
Claims (2)
1.一种数据库表快速精确校验方法,其特征在于包括以下步骤:步骤1.数据源选择;步骤2.数据校验;步骤3.结果展示;其中步骤1包括选定两个需要进行比较的数据源,其中一个是原始数据,另一个是备份数据,选择校验的范围。
2.根据权利要求1所述的数据库表快速精确校验方法,其特征在于步骤2包括:(1)数据结构校验:检查原始数据和备份数据的数据结构,如果原始数据和备份数据的数据结构不一致则不进行校验;如果原始数据和备份数据的数据结构一致,则进行后续的校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911262561.8A CN111046043A (zh) | 2019-12-11 | 2019-12-11 | 一种数据库表快速精确校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911262561.8A CN111046043A (zh) | 2019-12-11 | 2019-12-11 | 一种数据库表快速精确校验方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111046043A true CN111046043A (zh) | 2020-04-21 |
Family
ID=70235530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911262561.8A Pending CN111046043A (zh) | 2019-12-11 | 2019-12-11 | 一种数据库表快速精确校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111046043A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625540A (zh) * | 2020-05-11 | 2020-09-04 | 福建慧政通信息科技有限公司 | 一种关系型数据库数据同步完整性校验方法和装置 |
CN111966660A (zh) * | 2020-07-08 | 2020-11-20 | 中国人民解放军63686部队 | 一种基于odbc访问的数据库比较方法 |
CN113268470A (zh) * | 2021-06-17 | 2021-08-17 | 重庆富民银行股份有限公司 | 一种高效的数据库回滚方案验证方法 |
CN116094844A (zh) * | 2023-04-10 | 2023-05-09 | 蓝象智联(杭州)科技有限公司 | 一种用于多方安全计算的地址核对方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248052A1 (en) * | 2005-04-29 | 2006-11-02 | Thomas Zurek | Data query verification |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN107784102A (zh) * | 2017-10-27 | 2018-03-09 | 中国电子科技集团公司第二十八研究所 | 一种基于Oracle数据库的数据差异比较方法 |
CN109033278A (zh) * | 2018-07-11 | 2018-12-18 | 江苏通付盾科技有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN110377454A (zh) * | 2019-06-17 | 2019-10-25 | 中国平安人寿保险股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-11 CN CN201911262561.8A patent/CN111046043A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248052A1 (en) * | 2005-04-29 | 2006-11-02 | Thomas Zurek | Data query verification |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN107784102A (zh) * | 2017-10-27 | 2018-03-09 | 中国电子科技集团公司第二十八研究所 | 一种基于Oracle数据库的数据差异比较方法 |
CN109033278A (zh) * | 2018-07-11 | 2018-12-18 | 江苏通付盾科技有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN110377454A (zh) * | 2019-06-17 | 2019-10-25 | 中国平安人寿保险股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625540A (zh) * | 2020-05-11 | 2020-09-04 | 福建慧政通信息科技有限公司 | 一种关系型数据库数据同步完整性校验方法和装置 |
CN111966660A (zh) * | 2020-07-08 | 2020-11-20 | 中国人民解放军63686部队 | 一种基于odbc访问的数据库比较方法 |
CN113268470A (zh) * | 2021-06-17 | 2021-08-17 | 重庆富民银行股份有限公司 | 一种高效的数据库回滚方案验证方法 |
CN116094844A (zh) * | 2023-04-10 | 2023-05-09 | 蓝象智联(杭州)科技有限公司 | 一种用于多方安全计算的地址核对方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111046043A (zh) | 一种数据库表快速精确校验方法 | |
CN103034659B (zh) | 一种重复数据删除的方法和系统 | |
US9892276B2 (en) | Verifiable data destruction in a database | |
CN107391306B (zh) | 一种异构数据库备份文件恢复方法 | |
US9721009B2 (en) | Primary and foreign key relationship identification with metadata analysis | |
US20050210054A1 (en) | Information management system | |
US11972228B2 (en) | Merging database tables by classifying comparison signatures | |
AU2014201516A1 (en) | Resolving similar entities from a transaction database | |
US8473955B2 (en) | Reducing processing overhead and storage cost by batching task records and converting to audit records | |
KR101679050B1 (ko) | 규칙 기반 로그 데이터 그룹화를 이용한 개인 맞춤형 로그 분석 시스템 및 그 방법 | |
CN111506578A (zh) | 业务数据的校验方法、装置、设备及存储介质 | |
CN105144157A (zh) | 用于压缩数据库中的数据的系统和方法 | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
WO2019174339A1 (zh) | 业务数据处理 | |
US20170031942A1 (en) | Database storage reclaiming program | |
US20180349443A1 (en) | Edge store compression in graph databases | |
CN111191430B (zh) | 自动建表方法、装置、计算机设备和存储介质 | |
CN109426576B (zh) | 容错处理方法以及容错组件 | |
US20060218154A1 (en) | Data processing method and data processing program | |
US20070239794A1 (en) | Method and system for updating logical information in databases | |
US11016978B2 (en) | Joiner for distributed databases | |
JP2017010376A (ja) | マートレス検証支援システムおよびマートレス検証支援方法 | |
CN115017133B (zh) | 一种基于文件的异构数据库数据一致性校验方法 | |
US11995060B2 (en) | Hashing a data set with multiple hash engines | |
US20220253546A1 (en) | System and method for representing and verifying a data set using a tree-based data structure |
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 |