本发明涉及数据处理,具体的说是一种基于信创采集平台的数据同步比对方法及工具。
背景技术:
1、随着物联网技术、大数据、数据治理、数据分析等技术的持续发展,打破信息孤岛,实现数据共享、互联互通的需求越来迫切,数据互联互通的一个前提就是打通各数据节点,而数据同步则是实现打通数据节点的一种必要手段。数据同步中的一个基本要求就是要目的数据库和采集端的数据保持一致。但是在实际的同步操作中,由于各种各样的原因,源端数据库和目的数据库的数据有时候会出现不一致的情况,这样就需要及时的进行修复。通过数据修复,来保障源端数据库和目的数据库的数据是一致的。
2、在当前信创的大环境下,采集环境的国产化要求也越来越迫切,因此,将采集平台适配到信创环境也是一种必然的趋势。但是,在信创环境下部署采集平台,并且解决oracle数据库采集时容易出现的不一致现象,目前市面上没有比较成熟、高效的解决办法。
技术实现思路
1、本发明针对在信创环境下部署采集平台,并且解决oracle数据库采集时容易出现的不一致现象,提供一种基于信创采集平台的数据同步比对方法及工具。
2、首先,本发明提供一种基于信创采集平台的数据同步比对方法,解决上述技术问题采用的技术方案如下:
3、一种基于信创采集平台的数据同步比对方法,包括如下步骤:
4、第一步,进行信创环境的选择及环境搭建,搭建基于信创环境的控制台,部署信创环境下基于消息中间件的采集平台,所述采集平台包括从源端数据库采集数据的采集组件、将采集数据由采集组件传送到入库组件的消息中间件、将收到数据写入目的数据库的入库组件,其中,采集组件通过全量采集、基于时间戳/增量字段、基于日志、ddl采集/变更任一方式采集数据,入库组件通过ddl操作建表将数据写入数据库;
5、第二步,在采集平台中增设数据比对修复组件,采集平台进行数据同步时,数据比对修复组件首先对采集组件的采集数据进行处理,随后对入库组件的写入数据进行筛选查询,最后基于筛选结果,对源端数据库采集数据和目的数据库写入数据进行差异比对与修复。
6、可选的,进行信创环境的选择及环境搭建时,芯片选取海光cpu、操作系统选择麒麟高级服务器操作系统、应用数据库选择瀚高国产数据库,中间件选取宝兰德应用中间件。
7、可选的,数据比对修复组件首先对采集组件的采集数据进行处理,具体操作为:
8、针对采集组件从源端数据库的采集数据,数据比对修复组件按照设定顺序进行全量查询,分包发送给入库组件,在封装数据包时,在数据包头添加标识第一条和最后一条的标识字段与值。
9、进一步可选的,数据比对修复组件对入库组件的写入数据进行筛选查询,具体操作为:
10、数据比对修复组件在入库组件中根据数据包头标识进行处理,先从包头取出包的第一条和最后一条的标识字段与值,进行目的数据库条件筛选查询;
11、筛选查询到目的数据库后,数据比对修复组件对源端数据库和目的数据库按照同样规则排序好的一段数据进行差异对比与修复。
12、进一步可选的,数据比对修复组件对源端数据库和目的数据库按照同样规则排序好的一段数据进行差异对比与修复,具体过程如下:
13、对比目的数据库rowid与源端数据库rowid,
14、若目的数据库rowid大于源端数据库rowid,则插入源端数据库rowid所在一行数据,读取源端数据库下一行进行比较,
15、若目的数据库rowid等于源端数据库rowid,则检测剩余字段值是否相同,相同则判定没有差异,不同则更新目的数据库的这一行,
16、若目的数据库rowid小于源端数据库rowid,则删除目的数据库rowid所在一行,读取目的数据库下一行进行比较。
17、其次,本发明提供一种基于信创采集平台的数据同步比对工具,解决上述技术问题采用的技术方案如下:
18、一种基于信创采集平台的数据同步比对工具,其包括:
19、搭建组件,用于进行信创环境的选择及环境搭建,以及基于信创环境的控制台搭建;
20、部署模块,用于在信创环境下部署基于消息中间件的采集平台,所述采集平台包括从源端数据库采集数据的采集组件、将采集数据由采集组件传送到入库组件的消息中间件、将收到数据写入目的数据库的入库组件,其中,采集组件通过全量采集、基于时间戳/增量字段、基于日志、ddl采集/变更任一方式采集数据,入库组件通过ddl操作建表将数据写入数据库;
21、数据比对修复组件,部署于采集平台,用于对采集组件的采集数据进行处理,对入库组件的写入数据进行筛选查询,最后基于筛选结果,对源端数据库数据和目的数据库数据进行差异比对与修复。
22、可选的,所涉及搭建组件进行信创环境的选择及环境搭建时,芯片选取海光cpu,操作系统选择麒麟高级服务器操作系统,应用数据库选择瀚高国产数据库,中间件选取宝兰德应用中间件。
23、可选的,所涉及数据比对修复组件对采集组件的采集数据进行处理,具体操作为:
24、数据比对修复组件对源端数据库按照设定顺序进行全量查询,分包发送给入库组件,在封装数据包时,在数据包头添加标识第一条,和最后一条的标识字段与值。
25、进一步可选的,所涉及数据比对修复组件对入库组件的写入数据进行筛选查询,具体操作为:
26、数据比对修复组件在入库组件中根据数据包头标识进行处理,先从包头取出包的第一条和最后一条的标识字段与值,进行目的数据库条件筛选查询;
27、筛选查询到目的数据库后,数据比对修复组件对源端数据库和目的数据库按照同样规则排序好的一段数据进行差异对比与修复。
28、进一步可选的,所涉及数据比对修复组件对源端数据库和目的数据库按照同样规则排序好的一段数据进行差异对比与修复,具体过程如下:
29、对比目的数据库rowid与源端数据库rowid,
30、若目的数据库rowid大于源端数据库rowid,则插入源端数据库rowid所在一行数据,读取源端数据库下一行进行比较,
31、若目的数据库rowid等于源端数据库rowid,则检测剩余字段值是否相同,相同则判定没有差异,不同则更新目的数据库的这一行,
32、若目的数据库rowid小于源端数据库rowid,则删除目的数据库rowid所在一行,读取目的数据库下一行进行比较。
33、本发明的一种基于信创采集平台的数据同步比对方法及工具,与现有技术相比具有的有益效果是:
34、(1)本发明在现有的表结构、全量、增量采集组件的基础上,添加数据比对修复组件,可以有效的保障数据同步的一致性,支持源端数据库和目的数据库全量数据比对,并对目的数据库异常数据进行修复;
35、(2)本发明可以实现数据包之间数据定位隔离,可以充分利用入库组件的多线程进行目的数据库的采集对比;在不删除目的数据库表数据的情况下,能够进行数据差异修复。