一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据异构同步系统的制作方法

2022-12-06 22:37:52 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种数据异构同步系统。


背景技术:

2.为解决软件系统大数据量场景下的高并发、高吞吐等性能要求,现有技术往往会采取对现有数据库进行分库分表、读写分离等方案对原有的业务系统进行改造;同时为满足对大数据表查询检索的快速响应,可通过引入了搜索引擎和缓存数据库的方式,进而提升系统查询统计等功能接口的响应效率。
3.基于上述系统的改造需求,需要将原本同一个库/表的数据进行分库存储,并且还需要将分散的数据同步到搜索引擎、缓存数据库等异构的数据库中;同时针对下游的数据统计分析系统需求,需要将分库后的数据合并到一个汇总的分析数据库表中,以便于下游系统对数据分析统计的使用。因此,一种高效的、低耦合数据异构同步技术就成为业务系统改造的关键。


技术实现要素:

4.为了解决现有技术存在的缺陷和不足的问题,解决现有系统改造存在的技术难点,本发明提出一种数据异构同步系统。提供一种数据同步速度快、吞吐量大、耦合性地的异构数据同步技术应用。
5.本发明涉及的核心技术应用点如下:1、本发明中涉及的数据同步系统包括源端数据库、目标端数据库;2、对于源数据库系统数据获取,本发明是基于canal开源组件进行的,canal可伪装成mysql的从库,从而监听到mysql主数据库中的binlog日志,作为数据同步的源头。
6.3、本发明需满足数据同步的实时性和大吞吐量的要求,避免在数据量较大时同步造成的数据堵塞、错误阻断等异常情况;本发明引入kafka消息中间件,作为数据缓存、削峰的工具。配置开启canal监听数据库binlog,将获取后binlog日志信息解析后以json格式同步写入到kafka消息队列集群中,下一步的数据同步可采用集群的方式对kafka中的数据进行分布式消费,提高数据同步的效率和稳定性、容错性。
7.4、消费kafka中的数据将同步多种数据库中,本发明实现了对多种常用数据库的设配,包括elasticsearch、redis、mysql、pgsql等库,同时需要支持不同数据格式的转换。
8.5、考虑数据同步后源库和目标库的数据一致性是极其主要的,本发明为实现数据异构同步后的数据对账功能,基于kafka的消息队列数量及消费情况,核对源数据库和目标库中数据量,并针对未成功消费的数据增加数据补偿同步的机制。
9.为了达到上述目的,本发明具体采用如下技术方案:一种数据异构同步系统,其特征在于:包括源端数据库和目标端数据库;对于源端数据库系统数据获取,基于canal开源组件进行,canal伪装成mysql的从库,从而监听到mysql主数据库中的binlog日志,作为数据同步的源头;采用kafka消息中间件,作为数据缓
存、削峰的工具;配置开启canal监听数据库binlog,将获取后binlog日志信息解析后以json格式同步写入到kafka消息队列集群中,下一步的数据同步采用集群的方式对kafka中的数据进行分布式消费,以提高数据同步的效率和稳定性、容错性;消费kafka中的数据同步到一种或多种目标端数据库中。
10.进一步地,所述目标端数据库为elasticsearch、redis、mysql、pgsql中的一种或多种。
11.进一步地,在消费kafka中的数据同步到一种或多种目标端数据库中之后,基于kafka的消息队列数量及消费情况,核对源数据库和目标库中数据量,并针对未成功消费的数据进行数据补偿同步。
12.进一步地,该系统的工作过程包括以下步骤:步骤s1:采用canal作为采集源数据的工具,基于主从复制的协议从mysql主节点中获取binlog日志数据,canal模拟mysql的slave节点;步骤s2:配置canal相关信息,包括源数据库信息、需同步源表信息、写入的kafka数据源信息、kafka主题,并开启canal监听程序,将数据库表变更信息以json格式写入到kafka中;步骤s3:根据kafka的主题topic,声明一个监听类用于接收相应topic的kafka消息数据;步骤s4:解析kafka消息中的json数据;步骤s5:配置同步目标数据库的信息,对应写入的目标数据的类型;步骤s6:根据不同的目标数据库,设配不同数据库的处理和写入或更新程序,用于生成更新语句、更新逻辑,为数据更新做准备;步骤s7:连接配置的目标数据库,构建执行器,将生成更新语句、更新逻辑进行执行,达到目标数据库同步的效果;步骤s8:对同步的数据进行数据对账,以校验源数据和目标数据库的数据量是否一致。
13.进一步地,在步骤s2中,若需同时同步多个表,将同一个库中的多个表数据同步到同一个kafka的topic中;并在步骤s4中通过表名进行区分,便于做多表合并时的处理。
14.进一步地,在步骤s4中,json数据中包括的信息有:1)变更类型type,包括:新增、修改和删除;2)源库、表信息,包括:源表的数据字段类型、长度的修改表结构信息;3)变更数据集,以k-v的形式存储的表数据内容,数据主键,变更前的数据内容。
15.进一步地,步骤s5中对每个表配置源表和目标表的映射关系。
16.进一步地,步骤s7中基于步骤s6生成的可执行的sql或者请求,在数据批量或密集关系的场景下,将以分批的形式将数据进行归集,并以固定的频次调用执行器,以避免频繁调用执行器导致的目标数据库并发压力。
17.进一步地,在步骤s8中,基于kafka的消息队列数量及消费情况,核对源数据库和目标库中数据量,并针对未成功消费的数据进行数据补偿同步。
18.进一步地,所述数据补偿同步以设定的时间频率进行数据校验,如发现数据校验问题,则根据情况判断是否执行补偿机制进行数据修复;若补偿机制无法满足或存在数据
缺失问题,则通知进行人工处理。
19.相比于现有技术,本发明及其优选方案的有益效果主要包括:1、只需要对canal进行源数据库连接信息的配置,即可监听获取到数据库的变更信息;2、可对数据库表进行实时的增量同步,不需要进行全量同步,效率高;3、基于kafka消息中间件的高并发、高吞吐优势,在高并发数据的传输中,大大增加的数据同步的实时性、稳定性和容错性;4、对已有系统功能代码进行改造,不依赖于数据库的触发器、定时任务,对已有系统不会造成入侵性;5、同步不需要数据表的增量字段,避免了频繁查询判断源表造成的源系统负担;同时不需要记录增量信息减少了临时表的引入,增加数据同步的复杂度;6、支持数据库表信息更新信息的同步,自动识别出数据表的ddl语句,可在同步程序中进行适配更新,减少了人工干预;7、系统对数据同步、对账机制进行监控,如果出现问题会及时进行告警和处理。
附图说明
20.下面结合附图和具体实施方式对本发明进一步详细的说明:图1为本发明实施例系统工作流程步骤示意图。
具体实施方式
21.为让本专利的特征和优点能更明显易懂,下文特举实施例,并配合附图,作详细说明如下:如图1所示,本实施例提供的数据异构同步系统,其主要按如下步骤实现:步骤s1:本实施例采用canal作为采集源数据的工具,canal是基于主从复制的协议从mysql主节点中获取binlog日志数据,canal模拟mysql的slave节点;步骤s2:配置canal相关信息,包括源数据库信息、需同步源表信息、写入的kafka数据源信息、kafka主题等,并开启canal监听程序,将数据库表变更信息以json格式写入到kafka中;步骤s3:根据kafka的主题topic,声明一个监听类用于接收相应topic的kafka消息数据。
22.步骤s4:解析kafka消息中的json数据,json数据中包括的主要信息有:变更类型type(新增/修改/删除);源库、表信息,其中包括源表的数据字段类型、长度等修改表结构信息;变更数据集,以k-v的形式存储的表数据内容,数据主键,变更前的数据内容等;步骤s5:配置同步目标数据库的信息,对应写入的目标数据支持多种,包括mysql、elasticsearch、redis等;步骤s6:根据不同的目标数据库,设配不同数据库的处理和写入或更新程序,用于生成更新语句、更新逻辑,为数据更新做准备;步骤s7:连接配置的目标数据库,构建执行器,将生成更新语句、更新逻辑进行执
行,达到目标数据库同步的效果;步骤s8:对同步的数据进行数据对账,以校验源数据和目标数据库的数据量是否一致。本发明基于kafka的消息队列数量及消费情况,核对源数据库和目标库中数据量,并针对未成功消费的数据增加数据补偿同步的机制。
23.本实施例中,步骤s2中,若需同时同步多个表,可将同一个库中的多个表数据同步到同一个kafka的topic中;并在步骤s4中通过表名进行区分,便于做多表合并时的处理。
24.本实施例中,步骤s5中具体实现逻辑为:可对每个表配置源表和目标表的映射关系;有时可能场景需要更进一步字段间的映射关系,以满足数据异构同步中复杂的业务场景,如多表数据合并、数据格式转换、数据过滤等场景。
25.本实施例中,步骤s7中是基于步骤s6生成的可执行的sql或者请求,在数据批量/密集关系的场景下,将以分批的形式将数据进行归集,并以固定的频次调用执行器,避免频繁调用执行器导致的目标数据库并发压力,优化加快数据同步的效率和稳定性。
26.本实施例中,步骤s8中,可以每小时或者每日等时间频率进行数据校验,如果发现数据校验问题,可根据情况判断是否执行补偿机制进行数据修复;若补偿机制无法满足或存在数据缺失问题,则需要以消息通知的形式告知开发或实施人员进行人工处理。
27.本实施例提供的以上方案可以代码化的形式存储在计算机可读取存储介质中,并以计算机程序的方式进行实现,并通过计算机硬件输入计算所需的基本参数信息,并输出计算结果。
28.本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
29.本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程、以及流程图中的流程结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
30.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程图中指定的功能。
31.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程中指定的功能的步骤。
32.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
33.本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的数据异构同步系统,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献