CN112231324B - 一种实现增量数据比对的系统及方法 - Google Patents

一种实现增量数据比对的系统及方法 Download PDF

Info

Publication number
CN112231324B
CN112231324B CN201910561602.7A CN201910561602A CN112231324B CN 112231324 B CN112231324 B CN 112231324B CN 201910561602 A CN201910561602 A CN 201910561602A CN 112231324 B CN112231324 B CN 112231324B
Authority
CN
China
Prior art keywords
environment
comparison
database
tool
binlog
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.)
Active
Application number
CN201910561602.7A
Other languages
English (en)
Other versions
CN112231324A (zh
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.)
Jinzhuan Xinke Co Ltd
Original Assignee
Jinzhuan Xinke 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 Jinzhuan Xinke Co Ltd filed Critical Jinzhuan Xinke Co Ltd
Priority to CN201910561602.7A priority Critical patent/CN112231324B/zh
Priority to JP2021576799A priority patent/JP7328371B2/ja
Priority to PCT/CN2020/091716 priority patent/WO2020259149A1/zh
Priority to US17/622,796 priority patent/US11941023B2/en
Priority to EP20832003.6A priority patent/EP3979093A4/en
Priority to KR1020217042766A priority patent/KR20220011184A/ko
Publication of CN112231324A publication Critical patent/CN112231324A/zh
Application granted granted Critical
Publication of CN112231324B publication Critical patent/CN112231324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes

Abstract

本发明实施例公开了一种实现增量数据比对的系统及方法,其中该系统包括:同步T环境、仿真F环境、仿真工具、内存数据库、比对工具和结果数据库;所述T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库;所述F环境包括仿真环境核心应用和仿真环境分布式数据库;所述仿真工具,用于回放T环境业务和F环境业务;所述内存数据库,用于存储T环境和F环境的报文值映射关系;所述比对工具,用于根据所述报文值映射关系比对T环境和F环境中的数据;所述结果数据库,用于存储所述比对工具产生的比对结果数据。本发明实施例提供的技术方案,能够处理分布式数据库大数据量的比对。

Description

一种实现增量数据比对的系统及方法
技术领域
本发明实施例涉及但不限于分布式数据库领域,更具体地涉及一种实现增量数据比对的系统及方法。
背景技术
长期以来,金融级数据库市场被Oracle、IBM DB2、Microsoft SQL Server等传统关系型数据库所垄断。在经历了几十年的发展与迭代后,传统关系型数据库已经无法适应新型金融科技发展的需要。因此,由新型分布式数据库替代传统架构,成为金融级数据库市场的热门话题。
如何保证替换前后业务流程和业务数据的一致性是完成数据库转型的重要课题。而在数据库领域的数据比对技术方面,业界现有的技术关注点主要在于少量数据或单机数据库源端和目的端的数据一致性比对,无法满足传统商业数据库和新型分布式数据库的数据比对的要求。
发明内容
有鉴于此,本发明实施例提供了一种实现增量数据比对的系统,包括:
同步T环境、仿真F环境、仿真工具、内存数据库、比对工具和结果数据库;
所述T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库;
所述F环境包括仿真环境核心应用和仿真环境分布式数据库;
所述仿真工具,用于回放T环境业务和F环境业务;
所述内存数据库,用于存储T环境和F环境的报文值映射关系;
所述比对工具,用于根据所述报文值映射关系比对T环境和F环境中的数据;
所述结果数据库,用于存储所述比对工具产生的比对结果数据。
本发明实施例还提供了一种实现增量数据比对的方法,包括:
仿真工具回放T环境业务和F环境业务,并将T环境和F环境的报文值映射关系存储到内存数据库;
比对工具根据所述报文值映射关系比对T环境和F环境中的数据,并将比对结果数据存储到结果数据库。
本发明实施例提供的技术方案,能够处理分布式数据库大数据量的比对。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明一实施例提供的一种实现增量数据比对的系统的结构示意图;
图2为本发明一实施例提供的一种实现增量数据比对的方法的流程示意图;
图3为本发明另一实施例提供的一种实现增量数据比对的系统的结构示意图;
图4为本发明另一实施例提供的一种实现增量数据比对的方法的流程示意图;
图5为本发明另一实施例提供的一种实现增量数据比对的方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明一实施例提供的一种实现增量数据比对的系统的结构示意图,如图1所示,该系统包括:
同步T环境、仿真F环境、仿真工具、内存数据库、比对工具和结果数据库;
所述T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库;
所述F环境包括仿真环境核心应用和仿真环境分布式数据库;
所述仿真工具,用于回放T环境业务和F环境业务;
所述内存数据库,用于存储T环境和F环境的报文值映射关系;
所述比对工具,用于根据所述报文值映射关系比对T环境和F环境中的数据;
所述结果数据库,用于存储所述比对工具产生的比对结果数据。
其中,所述仿真环境核心应用,用于将所述仿真工具输入的业务数据写入所述仿真环境分布式数据库,产生对应的二进制日志binlog,并向所述仿真工具返回结果报文;
所述同步环境核心应用,用于将所述仿真工具输入的业务数据写入所述传统商业数据库,产生对应的重做日志redo log,并向所述仿真工具返回结果报文;
所述增量同步工具,用于采集所述传统商业数据库的redo log,解析为SQL后写入所述同步环境分布式数据库,产生对应的二进制日志binlog;
所述仿真工具,具体用于解析T环境和F环境返回的结果报文,得到报文值映射关系后写入所述内存数据库。
其中,所述比对工具包括一个比对服务端CS和多个比对客户端CC,
每一个CC,用于主动发起心跳注册到所述CS,
所述CS,用于为每个CC分配一对比对源,同时将T环境和F环境的binlog起始位置信息下发给所有CC;
所述每一个CC,还用于模拟备机方式接入对应的比对源;
所述一对比对源为T环境和F环境各一个对应的分片。
其中,所述CS,还用于向每一个CC请求一个业务上为全局递增的字段值;
所述每一个CC,还用于在F环境从binlog起始位置开始搜索,直至找到第一个不小于所述字段值的binlog位置,返回该位置对应字段值给CS;
所述CS,还用于集齐每一个CC返回的字段值后,将最大的字段值作为初始字段值,查询所述内存数据库根据T环境和F环境的报文值映射关系获取所述初始字段值对应的T环境相应的初始字段值,并下发至所有CC;
所述每一个CC,还用于获取T环境和F环境中所述初始字段值对应的binlog文件和位置,并返回给CS;
所述CS,收到所述binlog文件和位置后,通知所有CC开始按批次解析binlog;
所述每一个CC,还用于按批次解析binlog,将F环境和T环境有对应关系的值,替换为T环境的值,返回解析结果;
所述CS,收到一个批次的解析结果后,生成落地文件并执行比对,将比对结果存入所述结果数据库。
其中,所述执行比对,包括:
利用哈希算法,以“表名+主键”为关键词key比对和记录所述落地文件中的变化履历;
比对时过滤热点数据,遵守不交叉、最大匹配的匹配原则,匹配方式采用前向或后向匹配,前向匹配保留差异,后向匹配确认差异;
超过指定批次数仍然没有确认匹配或者确认差异的记录记为失效记录,失效记录均作为差异进行输出,失效周期到达之前的未匹配成功的记录保留并参与下一个批次的比对。
图2为本发明一实施例提供的一种实现增量数据比对的方法的流程示意图,如图2所示,该方法包括:
步骤201,仿真工具回放T环境业务和F环境业务,并将T环境和F环境的报文值映射关系存储到内存数据库;
步骤202,比对工具根据所述报文值映射关系比对T环境和F环境中的数据,并将比对结果数据存储到结果数据库。
其中,所述T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库;所述F环境包括仿真环境核心应用和仿真环境分布式数据库;
所述仿真工具回放T环境业务和F环境业务,包括:
所述仿真环境核心应用将所述仿真工具输入的业务数据写入F环境中的仿真环境分布式数据库,产生对应的二进制日志binlog,并向所述仿真工具返回结果报文;
所述同步环境核心应用将所述仿真工具输入的业务数据写入所述传统商业数据库,产生对应的重做日志redo log,并向所述仿真工具返回结果报文;
所述增量同步工具采集所述传统商业数据库的redo log,解析为SQL后写入所述同步环境分布式数据库,产生对应的二进制日志binlog;
所述仿真工具解析T环境和F环境返回的结果报文,得到报文值映射关系后写入所述内存数据库。
其中,所述比对工具包括一个比对服务端CS和多个比对客户端CC;
在所述比对工具比对T环境和F环境中的数据之前,该方法还包括:
每一个CC主动发起心跳注册到所述CS,
所述CS为每个CC分配一对比对源,同时将T环境和F环境的binlog起始位置信息下发给所有CC;
所述每一个CC模拟备机方式接入对应的比对源;
所述一对比对源为T环境和F环境各一个对应的分片。
其中,所述比对工具根据所述报文值映射关系比对T环境和F环境中的数据,包括:
所述CS向每一个CC请求一个业务上为全局递增的字段值;
所述每一个CC在F环境从binlog起始位置开始搜索,直至找到第一个不小于所述字段值的binlog位置,返回该位置对应字段值给CS;
所述CS集齐每一个CC返回的字段值后,将最大的字段值作为初始字段值,查询所述内存数据库根据T环境和F环境的报文值映射关系获取所述初始字段值对应的T环境相应的初始字段值,并下发至所有CC;
所述每一个CC获取T环境和F环境中所述初始字段值对应的binlog文件和位置,并返回给CS;
所述CS收到所述binlog文件和位置后,通知所有CC开始按批次解析binlog;
所述每一个CC按批次解析binlog,将F环境和T环境有对应关系的值,替换为T环境的值,返回解析结果;
所述CS收到一个批次的解析结果后,生成落地文件并执行比对,将比对结果存入所述结果数据库。
其中,所述执行比对,包括:
利用哈希算法,以“表名+主键”为关键词key比对和记录所述落地文件中的差异;
比对时过滤热点数据,遵守不交叉、最大匹配的匹配原则,匹配方式采用前向或后向匹配,前向匹配保留差异,后向匹配确认差异;
超过指定批次数仍然没有确认匹配或者确认差异的记录记为失效记录,失效记录均作为差异进行输出,失效周期到达之前的未匹配成功的记录保留并参与下一个批次的比对。
图3为本发明另一实施例提供的一种实现增量数据比对的系统的结构示意图,如图3所示,该系统包括:
1,同步环境(简称T环境)和仿真环境(简称F环境);
其中,T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库。同步环境核心应用负责将业务写入传统商业数据库,产生redo log(重做日志)。增量同步工具负责采集传统商业数据库redo log,解析为SQL后写入同步环境分布式数据库,产生binlog(二进制日志)。
其中,F环境包括仿真环境核心应用和仿真环境分布式数据库。仿真环境核心应用集群负责写分布式数据库,产生binlog。
其中,可以预先构建T环境和F环境。
2,仿真工具;
其中,仿真工具主要用于回放T环境业务和F环境业务。
3,内存数据库;
其中,内存数据库主要用于存储T环境和F环境的报文值映射关系。例如,某一些业务在两套环境中运行得到的数据不一样,比如某业务的流水号在T环境中是100,在F环境中是300,这时就需要将100-300这样的映射关系写入内存数据库,这样在进行数据比对的时候,系统就能辨认出100与300的等价关系,正确判断出虽然流水号不一致,但是这两个业务是一样的。
4,比对工具;
其中,比对工具包括比对客户端(CC,compare Client)和比对服务端(CS,compareserver)。CC可以有多个实例,每个实例连接T/F环境中的一对分片,将分片的数据解析发送到CS。CS只有一个实例,管理所有的CC,汇总CC发来的数据并写入文件,同时负责比对T/F环境中的数据。
具体而言,CC可以采用“分布式部署”,与T环境和F环境分布式数据库各一分片作一对一绑定,CS作“集中式管理”,与CC形成“服务器-客户端”的关系。CS和所有CC构成比对工具。在CS端配置文件中配置好比对区间、数据库分片信息等内容。CS读取配置文件,将配置信息下发到所有的CC。CC响应消息,按配置内容寻找数据一致点并反馈回CS。CS取得全局一致点并下发到所有CC,CC从一致点开始获取区间内数据。CS汇总CC传来的数据并落地,最后进行数据比对,输出差异化数据。
5,结果数据库。
其中,结果数据库主要用于存储比对结果数据。
图4为本发明另一实施例提供的一种实现增量数据比对的方法的流程示意图。本实施例应用与图3所示的系统。
如图4所示,该方法包括:
步骤401,仿真工具回放T环境业务和F环境业务;
具体而言,仿真环境核心应用集群写分布式数据库,产生binlog。同步环境核心应用写传统商业数据库,产生redo log。同步环境增量同步工具采集传统商业数据库redolog,解析为SQL后写入同步环境分布式数据库,产生binlog。仿真工具解析同步环境和仿真环境返回的报文,得到报文值映射关系后写入内存数据库。至此,T环境和F环境部署完毕。
步骤402,比对工具准备就绪;
具体而言,每个CC主动发起心跳注册到CS;CS为每个CC分配一对比队源(即T环境和F环境各一个分片),同时将binlog起始位置等信息下发;CC模拟备机方式接入比对源。其中,binlog起始位置等初始状态的信息可以由CS读取配置文件compareserver.ini而获得。
步骤403,CS确定最大字段值对应的T环境字段值;
具体而言,CS向CC请求一个业务上为全局递增的字段值;CC从配置好的F环境初始binlog位置开始,直至找到第一个不小于配置好的字段初始值的binlog位置,返回该位置对应字段值给CS,CS统计出最大字段值,并通过内存数据库查找最大字段值对应的T环境字段值;
步骤404,CS汇总SQL数据并生成落地文件;
具体而言,CS通知所有CC获取T环境和F环境字段值对应的binlog文件和位置,并返回给CS,CS收到响应后,通知CC开始按批次(一个完整区间数据为一个批次数据)解析binlog;待所有CC完成解析后,汇总SQL数据并生成落地文件。其中,首先,binlog是一个按照约定好的协议生成的二进制格式文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。解析binlog指的就是根据协议把binlog文件的二进制格式的内容转化为需要的sql语句。
步骤405,CS执行比对。
具体而言,CS获取落地文件,利用哈希算法,以“表名+主键”为key比对记录变化履历,最后输出差异化数据到指定数据库。比对时需过滤热点数据,遵守不交叉、最大匹配即最小差异的匹配原则,匹配方式可采用前向或后向匹配,前向匹配尽量保留差异,后向匹配尽快确认差异。超过指定批次数(记为失效周期)仍然没有确认匹配或者确认差异的记录记为失效记录,失效记录均作为差异进行输出,失效周期到达之前的未匹配成功的记录保留并参与下一个批次(如果有更新)的比对。
本发明实施例提供的技术方案,能够处理分布式数据库大数据量的比对校验,差异化对待不同数据的处理,兼顾考量比对的准确性和效率,从而确保了分布式数据库数据的准确性和可靠性。
图5为本发明另一实施例提供的一种实现增量数据比对的方法的流程示意图。本实施例中,以MySQL分布式数据库替换传统商业数据库分布式数据库(假设有三个分片)增量数据比对的过程为例。本实施例应用与图3所示的系统。业务数据通过仿真工具同步写入传统商业数据库和仿真分布式数据库,同步环境增量同步工具采集传统商业数据库redolog,解析为SQL后写入同步环境分布式数据库。
如图5所示,包括:
步骤1,CC向CS发送心跳消息
具体而言,通过发送心跳消息,CC01、CC02和CC03发起心跳注册到CS;
步骤2,CS向CC发送初始化消息;
具体而言,CS为每个CC分配一对比对源,同时将binlog起始位置等信息下发;
步骤3,CC向CS返回OK应答;
具体而言,CC根据初始化消息,模拟备机方式接入比对源,例如,CC01连接同步环境分布式数据库和仿真环境分布式数据库中的g01,CC02连接g02,CC03连接g03。
步骤4,CS向CC请求获取F环境中各分片全局递增字段初始值;
步骤5,CC向CS返回F环境初始值;
具体而言,CC01、CC02和CC03在F环境搜索字段初始值,并将其返回给CS。
步骤6,CS向内存数据库获取T环境和F环境各分片最大初始值对应的字段值;
具体而言,CS集齐所有F环境的字段值,将最大的字段值作为初始字段值,查询内存数据库获取T环境相应的初始字段值,然后下发至所有CC;
步骤7,CS向CC请求获取全局一致点位置;
步骤8,CC向CS反馈全局一致点位置;
其中,全局一致点位置是指每个分片中全局一致的binlog位置,比如有两个CC各连接T、F环境一个分片,记为T_g1,F_g1和T_g2,F_g2,通过配置文件compareserver.ini找到的F环境各分片起始位置对应关系为F_g1--3,F_g2--14,那么取最大值14作为F环境的“全局一致点位置”,再取14的映射值作为T环境的“全局一致点位置”。CC可以有很多个,每个CC连接的是T环境和F环境各一个分片,有了这个“全局一致点位置”就能使每个CC解析binlog获取到的数据都是这个从“全局一致点位置”开始或者之后的数据,从而确保了从这个“全局一致点位置”开始所有的数据都能拿到,保证了数据的一致性和完整性。每个CC解析binlog的起点要么就是这个“全局一致点位置”,要么就是这个“全局一致点位置”之后的某一个位置。
步骤9,CS向CC发送解析数据请求;
CC开始解析数据的第一步,即非持有最大字段值的CC继续正向搜索日志,直到出现第一个大于或等于初始字段值的记录作为解析数据的起点。
步骤10,CC向内存数据库查询F环境和T环境中字段值的对应关系;
步骤11,CC将F环境和T环境有对应关系的值替换为T环境的值;
其中,替换为T环境的字段值是为了使两套环境中应该匹配的数据能够匹配上。
步骤12,CC向CS反馈解析结果;
具体而言,例如,CC01、CC02和CC03按照区间规则采集binlog,以区间作为一个批次发送采集结果。
步骤13,CS向CC响应解析结果;
步骤14,CS执行对比,并输出比对结果。
具体而言,CS收到一个批次的采集结果后,生成落地文件并执行比对,比对结果存入数据库。
其中,比对的算法是现有的哈希算法,具体过程:sql语句以“表名+主键”作为key哈希到桶内,这里重点介绍T/F环境的两个桶的sql语句是如何比对的。记T环境的哈希桶为A桶,F环境的哈希桶为B桶。首先,A、B桶的数据要分别从哪一条开始比较呢?显然,不能一条条依次比对数据是否一致,例如A桶的第一条insert语句排在A桶所有语句的第三条,B桶的第一条insert语句(与A桶第一条insert匹配一致)排在B桶所有语句的第六条,如果一条条语句依次比对的话,这两条insert本不应该是差异却被当做差异输出了。所以,比对两桶的数据,需要一个“对齐点”,也就是“差异确认点”,即本条数据可以被确认其是否为差异数据”。因为insert/delete操作的唯一性,insert/delete语句作为“对齐点”很合适。第一,找到两个桶的第一条insert/delete语句,按主键比较这一组insert/delete语句是否一致,若不一致则这组语句作为差异输出;若一致则不输出。在两桶的第一条insert/delete语句之前,即update语句,若为单边数据,即只有A、B桶其中一个桶第一条insert/delete语句之前有数据,直接作为差异输出。若不为单边数据,但是第一条insert/delete语句主键不同,则也直接作为差异输出;主键相同,则可具体确认是否为差异。两条insert/delete语句之间可以具体确认是否为差异。而最后一条insert/delete语句之后的sql语句,全部放到下一个批次继续比对。比对过程尽量做到最大化匹配的记录,最小化差异记录。
另外,本实施例还可以支持回溯比对和延时比对等比对场景。回溯比对,指的是可以回到过去的某个时间点,回放业务的数据进行比对。延时比对,指的是有时业务上需要滞后于生成binlog日志记录一些时间进行比对。
本实施例提供的技术方案,能够准确地找出分布式数据库比对的全局一致点位置(亦可称“同步点”),利用相同区间数据量一致的特点进行比对,解析binlog和数据比对分离。比对选取的是哈希算法,意味着同一个key的sql语句在一起作比较,比对时利用主键上insert/delete操作的唯一性,将此insert/delete记录作为差异确认点,并可针对业务需求进行前向或后向匹配,最大化匹配的记录;差异确认点是指一组sql语句比对的起始点。能够有效解决目前数据比对方法的缺陷和局限性,从而保证新型分布式数据库系统的正常上线运行。
本发明实施例提供的技术方案,主要包括如下有益效果:
1,能够处理以分布式数据库为对象的大数据量的在线业务数据比对工作,为新型分布式数据库的切换上线提供保障。
2,通过全局递增字段值所在表作为心跳表,解决了数据同步点问题。引入CS管理节点,协调统一处理,利用相同区间数据量一致的特点进行数据比对。新增数据时比对仍可正常进行。解析binlog和数据比对分离,各模块功能独立。
3,可回溯比对,即回退到过去某个时刻重新回放数据进行比对。
4,允许延时比对,即滞后于日志记录发生的一定时间,比如5分钟。不要求各相关系统配置NTP。CC周期和比对源的数据库服务器主机进行时间差校对,依据CC本机时间、binlog事件中的时间戳以及校对的时间差判定是否延迟采集。该延时可配置。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (4)

1.一种实现增量数据比对的系统,其特征在于,包括:
同步T环境、仿真F环境、仿真工具、内存数据库、比对工具和结果数据库;
所述T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库;
所述F环境包括仿真环境核心应用和仿真环境分布式数据库;
所述仿真工具,用于回放T环境业务和F环境业务;
所述内存数据库,用于存储T环境和F环境的报文值映射关系;
所述比对工具,用于根据所述报文值映射关系比对T环境和F环境中的数据;
所述结果数据库,用于存储所述比对工具产生的比对结果数据;
所述仿真环境核心应用,用于将所述仿真工具输入的业务数据写入所述仿真环境分布式数据库,产生对应的二进制日志binlog,并向所述仿真工具返回结果报文;
所述同步环境核心应用,用于将所述仿真工具输入的业务数据写入所述传统商业数据库,产生对应的重做日志redo log,并向所述仿真工具返回结果报文;
所述增量同步工具,用于采集所述传统商业数据库的redo log,解析为SQL后写入所述同步环境分布式数据库,产生对应的二进制日志binlog;
所述仿真工具,具体用于解析T环境和F环境返回的结果报文,得到报文值映射关系后写入所述内存数据库;
所述比对工具包括一个比对服务端CS和多个比对客户端CC,
每一个CC,用于主动发起心跳注册到所述CS,
所述CS,用于为每个CC分配一对比对源,同时将T环境和F环境的binlog起始位置信息下发给所有CC;
所述每一个CC,还用于模拟备机方式接入对应的比对源;
所述一对比对源为T环境和F环境各一个对应的分片;
所述CS,还用于向每一个CC请求一个业务上为全局递增的字段值;
所述每一个CC,还用于在F环境从binlog起始位置开始搜索,直至找到第一个不小于所述字段值的binlog位置,返回该位置对应字段值给CS;
所述CS,还用于集齐每一个CC返回的字段值后,将最大的字段值作为初始字段值,查询所述内存数据库根据T环境和F环境的报文值映射关系获取所述初始字段值对应的T环境相应的初始字段值,并下发至所有CC;
所述每一个CC,还用于获取T环境和F环境中所述初始字段值对应的binlog文件和位置,并返回给CS;
所述CS,收到所述binlog文件和位置后,通知所有CC开始按批次解析binlog;
所述每一个CC,还用于按批次解析binlog,将F环境和T环境有对应关系的值,替换为T环境的值,返回解析结果;
所述CS,收到一个批次的解析结果后,生成落地文件并执行比对,将比对结果存入所述结果数据库。
2.根据权利要求1所述的系统,其特征在于,所述执行比对,包括:
利用哈希算法,以“表名+主键”为关键词key比对和记录所述落地文件中的变化履历;
比对时过滤热点数据,遵守不交叉、最大匹配的匹配原则,匹配方式采用前向或后向匹配,前向匹配保留差异,后向匹配确认差异;
超过指定批次数仍然没有确认匹配或者确认差异的记录记为失效记录,失效记录均作为差异进行输出,失效周期到达之前的未匹配成功的记录保留并参与下一个批次的比对。
3.一种实现增量数据比对的方法,包括:
仿真工具回放T环境业务和F环境业务,并将T环境和F环境的报文值映射关系存储到内存数据库;
比对工具根据所述报文值映射关系比对T环境和F环境中的数据,并将比对结果数据存储到结果数据库;
所述T环境包括同步环境核心应用、传统商业数据库、增量同步工具和同步环境分布式数据库;所述F环境包括仿真环境核心应用和仿真环境分布式数据库;
所述仿真工具回放T环境业务和F环境业务,包括:
所述仿真环境核心应用将所述仿真工具输入的业务数据写入F环境中的仿真环境分布式数据库,产生对应的二进制日志binlog,并向所述仿真工具返回结果报文;
所述同步环境核心应用将所述仿真工具输入的业务数据写入所述传统商业数据库,产生对应的重做日志redo log,并向所述仿真工具返回结果报文;
所述增量同步工具采集所述传统商业数据库的redo log,解析为SQL后写入所述同步环境分布式数据库,产生对应的二进制日志binlog;
所述仿真工具解析T环境和F环境返回的结果报文,得到报文值映射关系后写入所述内存数据库;
所述比对工具包括一个比对服务端CS和多个比对客户端CC;
在所述比对工具比对T环境和F环境中的数据之前,该方法还包括:
每一个CC主动发起心跳注册到所述CS,
所述CS为每个CC分配一对比对源,同时将T环境和F环境的binlog起始位置信息下发给所有CC;
所述每一个CC模拟备机方式接入对应的比对源;
所述一对比对源为T环境和F环境各一个对应的分片;
所述比对工具根据所述报文值映射关系比对T环境和F环境中的数据,包括:
所述CS向每一个CC请求一个业务上为全局递增的字段值;
所述每一个CC在F环境从binlog起始位置开始搜索,直至找到第一个不小于所述字段值的binlog位置,返回该位置对应字段值给CS;
所述CS集齐每一个CC返回的字段值后,将最大的字段值作为初始字段值,查询所述内存数据库根据T环境和F环境的报文值映射关系获取所述初始字段值对应的T环境相应的初始字段值,并下发至所有CC;
所述每一个CC获取T环境和F环境中所述初始字段值对应的binlog文件和位置,并返回给CS;
所述CS收到所述binlog文件和位置后,通知所有CC开始按批次解析binlog;
所述每一个CC按批次解析binlog,将F环境和T环境有对应关系的值,替换为T环境的值,返回解析结果;
所述CS收到一个批次的解析结果后,生成落地文件并执行比对,将比对结果存入所述结果数据库。
4.根据权利要求3所述的方法,其特征在于,所述执行比对,包括:
利用哈希算法,以“表名+主键”为关键词key比对和记录所述落地文件中的差异;
比对时过滤热点数据,遵守不交叉、最大匹配的匹配原则,匹配方式采用前向或后向匹配,前向匹配保留差异,后向匹配确认差异;
超过指定批次数仍然没有确认匹配或者确认差异的记录记为失效记录,失效记录均作为差异进行输出,失效周期到达之前的未匹配成功的记录保留并参与下一个批次的比对。
CN201910561602.7A 2019-06-26 2019-06-26 一种实现增量数据比对的系统及方法 Active CN112231324B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910561602.7A CN112231324B (zh) 2019-06-26 2019-06-26 一种实现增量数据比对的系统及方法
JP2021576799A JP7328371B2 (ja) 2019-06-26 2020-05-22 増分データ照合を実現するシステム及び方法
PCT/CN2020/091716 WO2020259149A1 (zh) 2019-06-26 2020-05-22 一种实现增量数据比对的系统及方法
US17/622,796 US11941023B2 (en) 2019-06-26 2020-05-22 System and method for implementing incremental data comparison
EP20832003.6A EP3979093A4 (en) 2019-06-26 2020-05-22 SYSTEM AND METHOD FOR IMPLEMENTING INCREMENTAL DATA COMPARISON
KR1020217042766A KR20220011184A (ko) 2019-06-26 2020-05-22 증분 데이터 비교 구현 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910561602.7A CN112231324B (zh) 2019-06-26 2019-06-26 一种实现增量数据比对的系统及方法

Publications (2)

Publication Number Publication Date
CN112231324A CN112231324A (zh) 2021-01-15
CN112231324B true CN112231324B (zh) 2023-03-24

Family

ID=74059656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910561602.7A Active CN112231324B (zh) 2019-06-26 2019-06-26 一种实现增量数据比对的系统及方法

Country Status (6)

Country Link
US (1) US11941023B2 (zh)
EP (1) EP3979093A4 (zh)
JP (1) JP7328371B2 (zh)
KR (1) KR20220011184A (zh)
CN (1) CN112231324B (zh)
WO (1) WO2020259149A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220785A (zh) * 2021-05-21 2021-08-06 上海申铁信息工程有限公司 一种基于主键比对的数据库变更记录同步方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159818A (zh) * 2015-08-28 2015-12-16 东北大学 内存数据管理中日志恢复方法及其仿真系统
CN107391621A (zh) * 2017-07-06 2017-11-24 南京邮电大学 一种基于Spark的并行关联规则增量更新方法
CN108459951A (zh) * 2017-02-21 2018-08-28 腾讯科技(深圳)有限公司 测试方法和装置
CN109241026A (zh) * 2018-07-18 2019-01-18 阿里巴巴集团控股有限公司 数据管理的方法、装置及系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187351A (ja) 1993-08-01 1994-07-08 Toshiba Corp スケジュール管理装置
JP4456005B2 (ja) 2002-09-03 2010-04-28 エスアーペー アーゲー データの動的アクセス
US7702698B1 (en) 2005-03-01 2010-04-20 Yahoo! Inc. Database replication across different database platforms
CN1852309A (zh) 2005-11-16 2006-10-25 华为技术有限公司 数据同步处理方法及其客户端
US7792849B2 (en) 2006-10-11 2010-09-07 International Business Machines Corporation Database graphical comparison tool
JP2010160613A (ja) 2009-01-07 2010-07-22 Hitachi Ltd 過失による情報漏えいを防止する計算機システム及び方法
US8150808B2 (en) * 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
CN101770541B (zh) * 2010-02-03 2012-03-21 北京航空航天大学 一种基于aos标准的卫星数据系统仿真平台
EP2757848B1 (en) * 2013-01-17 2019-05-01 Deutsche Telekom AG Method and system for improvement of handover quality in mobile radio systems
CN103617176B (zh) * 2013-11-04 2017-03-15 广东电子工业研究院有限公司 一种实现多源异构数据资源自动同步的方法
CN104731814B (zh) 2013-12-23 2017-12-08 北京宸瑞科技股份有限公司 数据灵活比对分析系统及方法
CN103810247A (zh) 2014-01-10 2014-05-21 国网信通亿力科技有限责任公司 基于分桶算法的灾备数据比对方法
CN105589961B (zh) 2015-12-21 2019-02-19 武汉达梦数据库有限公司 一种数据库实时同步系统数据一致性的检测方法及系统
CN106057008B (zh) * 2016-06-28 2019-01-04 南京南瑞继保电气有限公司 一种基于实时仿真器的调度员培训仿真系统及搭建方法
CN106339500A (zh) 2016-09-09 2017-01-18 浪潮软件股份有限公司 一种异地数据库对比工具及方法
CN108241676B (zh) * 2016-12-26 2022-09-02 阿里云计算有限公司 实现数据同步的方法及设备
CN106817415B (zh) 2017-01-16 2020-05-01 吉林吉大通信设计院股份有限公司 一种hlr/hss用户数据在线导出及导入的同步迁移方法
US20180275961A1 (en) * 2017-03-23 2018-09-27 Cognizant Technology Solutions India Pvt. Ltd. Method and system for fast data comparison using accelerated and incrementally synchronized cyclic data traversal algorithm
US20180285201A1 (en) * 2017-03-28 2018-10-04 Commvault Systems, Inc. Backup operations for large databases using live synchronization
CN108733662A (zh) 2017-04-13 2018-11-02 北京京东尚科信息技术有限公司 数据一致性比对的方法、装置、电子设备和可读存储介质
CN108804464A (zh) 2017-05-03 2018-11-13 中兴通讯股份有限公司 数据一致性检测方法、装置、分布式数据库及存储介质
US20180322427A1 (en) * 2017-05-04 2018-11-08 International Business Machines Corporation System and method for time critical automation
CN108228740A (zh) 2017-12-15 2018-06-29 国网青海省电力公司信息通信公司 电力全业务统一数据中心数据分析域数据比对工具
CN108170768B (zh) * 2017-12-25 2023-03-24 腾讯科技(深圳)有限公司 数据库同步方法、装置及可读介质
CN108255621A (zh) * 2018-01-10 2018-07-06 深圳友门鹿网络科技有限公司 一种基于binlog的MySQL增量消息解析方法
CN108536521B (zh) * 2018-03-30 2020-09-01 口碑(上海)信息技术有限公司 基于仿真平台离线环境核对方法及装置
CN109033127B (zh) 2018-05-31 2021-10-29 创新先进技术有限公司 一种同步数据校验方法、装置以及设备
US10740208B2 (en) * 2018-10-03 2020-08-11 Capital One Services, Llc Cloud infrastructure optimization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159818A (zh) * 2015-08-28 2015-12-16 东北大学 内存数据管理中日志恢复方法及其仿真系统
CN108459951A (zh) * 2017-02-21 2018-08-28 腾讯科技(深圳)有限公司 测试方法和装置
CN107391621A (zh) * 2017-07-06 2017-11-24 南京邮电大学 一种基于Spark的并行关联规则增量更新方法
CN109241026A (zh) * 2018-07-18 2019-01-18 阿里巴巴集团控股有限公司 数据管理的方法、装置及系统

Also Published As

Publication number Publication date
EP3979093A4 (en) 2022-08-10
US11941023B2 (en) 2024-03-26
WO2020259149A1 (zh) 2020-12-30
CN112231324A (zh) 2021-01-15
JP2022539722A (ja) 2022-09-13
US20220245169A1 (en) 2022-08-04
JP7328371B2 (ja) 2023-08-16
KR20220011184A (ko) 2022-01-27
EP3979093A1 (en) 2022-04-06

Similar Documents

Publication Publication Date Title
CN109739929B (zh) 数据同步方法、装置及系统
CN106649403B (zh) 文件存储中的索引实现方法和系统
US20120084379A1 (en) Method and apparatus for checking and synchronizing data block in distributed file system
US20170031948A1 (en) File synchronization method, server, and terminal
CN109558065B (zh) 数据删除方法及分布式存储系统
CN106874281B (zh) 实现数据库读写分离的方法和装置
CN106899654B (zh) 一种序列值生成方法、装置及系统
CN112256656B (zh) 事务回滚方法及装置、数据库、系统、计算机存储介质
WO2019057081A1 (zh) 数据存储方法、数据查询方法、计算机设备及存储介质
CN114443770A (zh) 数据同步方法、装置、介质及电子设备
CN112231324B (zh) 一种实现增量数据比对的系统及方法
WO2021082925A1 (zh) 一种交易处理的方法及装置
CN107016075A (zh) 集群数据同步方法及装置
CN110895547B (zh) 基于db2联邦特性的多源异构数据库数据同步系统及方法
CN108900497B (zh) 一种异构系统间的数据同步方法及系统
CN116186082A (zh) 基于分布式的数据汇总方法、第一服务器和电子设备
CN111966650B (zh) 一种运维大数据共享数据表的处理方法、装置及存储介质
CN111147226A (zh) 数据存储方法、装置及存储介质
CN112035413B (zh) 元数据信息查询方法、装置及存储介质
CN110569231B (zh) 数据迁移方法、装置、设备和介质
CN111522688B (zh) 分布式系统的数据备份方法及装置
CN107404527B (zh) 一种资源访问和控制方法及装置
CN113253924A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN112000681A (zh) 一种能够自适应模式变更的同步方法
TW201403362A (zh) 在多主控環境中通過以頁面爲基礎之信息追蹤管理大型資料集

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20220112

Address after: 100744 602, floor 6, building 6, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Applicant after: Jinzhuan Xinke Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Applicant before: ZTE Corp.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant