数据同步方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:23149100 阅读:62 留言:0更新日期:2020-01-18 13:29
本发明专利技术公开了一种数据同步方法、装置、计算机设备及存储介质。所述方法包括:获取数据源表和同步数据表;从数据源表中获取目标数据源,并根据目标数据源从同步数据表中获取目标数据表,对目标数据表进行监听,获取数据变化信息;根据数据变化信息计算数据同步条数;采用分页查询方式确定分页数量,以及每页的同步数据;将每页的同步数据封装成每页对应的消息中间件报文;根据分页数量,为每个消息中间件报文分配空闲线程,并采用多线程的方式将消息中间件报文发送到分布式消息中间件。本发明专利技术的技术方案实现了各种异构数据源之间的实时低延迟的增量数据同步,提高了数据同步的实时性,同时有效防止内存溢出,避免大量线程阻塞,提升系统性能。

Data synchronization method, device, computer equipment and storage medium

【技术实现步骤摘要】
数据同步方法、装置、计算机设备及存储介质
本专利技术涉及数据处理
,尤其涉及一种数据同步方法、装置、计算机设备及存储介质。
技术介绍
目前,随着数据收集手段的不断丰富,数据量也随之增大,而针对这些数据的分析需求也越来越旺盛,由于关系型数据库,例如oracle数据库,可能无法承受联机分析处理(OnlineAnalyticalProcessing,OLAP)的需求,因此常常需要将关系型数据库的数据迁移到大数据平台,然而,当关系型数据库的数据完全迁移到大数据平台后,又很难满足数据库事务处理的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)的需求。因此,通常比较折中的方案是对于联机事务处理(On-LineTransactionProcessing,OLTP)的应用仍然使用关系型数据库,而对于联机分析处理的应用使用大数据平台,这样就需要在关系型数据库和大数据平台之间进行数据同步。目前,异构数据库之间的数据同步主要采用Kettle、GG,Sqoop等开源工具,这些数据同步工具均具有实时性低,并且在同步过程中对系统性能影响较大的缺点,并且可扩展性不高。
技术实现思路
本专利技术实施例提供一种数据同步方法、装置、计算机设备及存储介质,以解决现有技术中数据同步的实时性低、影响系统性能和可扩展性低的问题。一种数据同步方法,包括第一服务端执行的如下步骤:获取预先配置的数据源表和同步数据表;从所述数据源表中获取目标数据源,并根据所述目标数据源从所述同步数据表中获取所述目标数据源中的目标数据表,对所述目标数据表进行监听,获取数据变化信息;根据所述数据变化信息计算数据同步条数;采用分页查询方式确定所述数据同步条数对应的分页数量,以及每页的同步数据;将每页的所述同步数据封装成每页对应的消息中间件报文;根据所述分页数量,从预设的线程池中为每个所述消息中间件报文分配空闲线程,并采用多线程的方式将所述消息中间件报文发送到预设的分布式消息中间件。一种数据同步方法,包括第二服务端执行的如下步骤:接收分布式消息中间件发送的订阅消息;从所述订阅消息中获取待同步数据;将所述待同步数据同步到目标数据库。一种数据同步装置,包括第一服务端,该第一服务端包括:获取模块,用于获取预先配置的数据源表和同步数据表;监听模块,用于从所述数据源表中获取目标数据源,并根据所述目标数据源从所述同步数据表中获取所述目标数据源中的目标数据表,对所述目标数据表进行监听,获取数据变化信息;计算模块,用于根据所述数据变化信息计算数据同步条数;查询模块,用于采用分页查询方式确定所述数据同步条数对应的分页数量,以及每页的同步数据;封装模块,用于将每页的所述同步数据封装成每页对应的消息中间件报文;发送模块,用于根据所述分页数量,从预设的线程池中为每个所述消息中间件报文分配空闲线程,并采用多线程的方式将所述消息中间件报文发送到预设的分布式消息中间件。一种数据同步装置,包括第二服务端,该第二服务端包括:接收模块,用于接收分布式消息中间件发送的订阅消息;订阅模块,用于从所述订阅消息中获取待同步数据;同步模块,用于将所述待同步数据同步到目标数据库。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据同步方法中第一服务端或第二服务端执行的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据同步方法中第一服务端或第二服务端执行的步骤。上述数据同步方法、装置、计算机设备及存储介质中,第一服务端从获取到的预先配置的数据源表和同步数据表中,确定需要进行数据同步的目标数据源中的目标数据表,并对目标数据表进行监听,获取数据变化信息,然后根据数据变化信息计算数据同步条数,采用分页查询方式确定数据同步条数对应的分页数量,以及每页的同步数据,将每页的同步数据封装成每页对应的消息中间件报文,并根据分页数量,从预设的线程池中为每个消息中间件报文分配空闲线程后,采用多线程的方式将消息中间件报文发送到预设的分布式消息中间件;第二服务端通过订阅消息从分布式消息中间件实时获取待同步数据,并将待同步数据同步到目标数据库中。第一服务端作为分布式消息中间件的生产方,对各种异构数据源进行数据同步分析,采用监听方式实时获取数据变化,并将需要同步的数据采用多线程和分页查询的方式及时发送到分布式消息中间件,第二服务端作为分布式消息中间件的消费方,利用分布式消息中间件的实时消息订阅机制,从分布式消息中间件及时获取待同步数据并同步到目标数据库,实现了各种异构数据源之间的实时低延迟的增量数据同步,提高了数据同步的实时性,并且多线程和分页查询的方式能够有效防止内存溢出,避免大量线程阻塞,提升系统性能,同时,采用数据源表和同步数据表能够对需要同步的数据进行灵活配置,提高可扩展性。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例中数据同步方法的一应用环境示意图;图2是本专利技术一实施例中数据同步方法的一流程图;图3是本专利技术一实施例中数据同步方法中步骤S3的一流程图;图4是本专利技术一实施例中数据同步方法的步骤S9的一流程图;图5是本专利技术一实施例中数据同步装置的一示意图;图6是本专利技术一实施例中数据同步装置的另一示意图;图7是本专利技术一实施例中计算机设备的一示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本申请提供的数据同步方法,可应用在如图1所示的应用环境中,该应用环境包括第一服务端、第二服务端和分布式消息中间件,其中,第一服务端和分布式消息中间件之间,以及第二服务端和分布式消息中间件均通过网络进行连接,该网络可以是有线网络或者无线网络,第一服务端、第二服务端和分布式消息中间件具体均可以用独立的服务器或者多个服务器组成的服务器集群实现。第一服务端作为分布式消息中间件的生产方,实时生产出需要同步的数据并发送给分布式消息中间件,第二服务端作为分布式消息中间件的消费方,通过订阅消息从分布式消息中间件获取待同步数据并完成数据同步。在一实施例中,如图2所示,提供一种数据同步方法,以该方法应用在图1中的第一服务端和第二服务端本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,所述数据同步方法包括第一服务端执行的如下步骤:/n获取预先配置的数据源表和同步数据表;/n从所述数据源表中获取目标数据源,并根据所述目标数据源从所述同步数据表中获取所述目标数据源中的目标数据表,对所述目标数据表进行监听,获取数据变化信息;/n根据所述数据变化信息计算数据同步条数;/n采用分页查询方式确定所述数据同步条数对应的分页数量,以及每页的同步数据;/n将每页的所述同步数据封装成每页对应的消息中间件报文;/n根据所述分页数量,从预设的线程池中为每个所述消息中间件报文分配空闲线程,并采用多线程的方式将所述消息中间件报文发送到预设的分布式消息中间件。/n

【技术特征摘要】
1.一种数据同步方法,其特征在于,所述数据同步方法包括第一服务端执行的如下步骤:
获取预先配置的数据源表和同步数据表;
从所述数据源表中获取目标数据源,并根据所述目标数据源从所述同步数据表中获取所述目标数据源中的目标数据表,对所述目标数据表进行监听,获取数据变化信息;
根据所述数据变化信息计算数据同步条数;
采用分页查询方式确定所述数据同步条数对应的分页数量,以及每页的同步数据;
将每页的所述同步数据封装成每页对应的消息中间件报文;
根据所述分页数量,从预设的线程池中为每个所述消息中间件报文分配空闲线程,并采用多线程的方式将所述消息中间件报文发送到预设的分布式消息中间件。


2.如权利要求1所述的数据同步方法,其特征在于,所述根据所述数据变化信息计算数据同步条数包括:
获取所述数据变化信息对应的所述目标数据表的同步标识字段;
若所述同步标识字段的取值为需要同步,则保留所述数据变化信息;
若所述同步标识字段的取值为不需要同步,则丢弃所述数据变化信息;
根据保留的所述数据变化信息计算所述数据同步条数。


3.如权利要求1所述的数据同步方法,其特征在于,所述获取预先配置的数据源表和同步数据表之前,所述数据同步方法还包括:
使用定时任务框架创建定时数据同步任务;
所述根据所述数据变化信息计算数据同步条数还包括:
若所述定时数据同步任务被触发,则根据所述数据变化信息计算所述数据同步条数。


4.一种数据同步方法,其特征在于,所述数据同步方法包括第二服务端执行的如下步骤:
接收分布式消息中间件发送的订阅消息;
从所述订阅消息中获取待同步数据;
将所述待同步数据同步到目标数据库。


5.如权利要求4所述的数据同步方法,其特征在于,所述将所述待同步数据同步到目标数据库包括:
对所述待同步数据进行准确性校验,得到校验结果;
若所述校验结果为检验成功,则将所述待同步数据同步到所述目标数据库;
若所述校验结果为检验失败,则按照预设的告警方式进行同步数据异常告警。


6.一种数据同步装置,其特...

【专利技术属性】
技术研发人员:黄士保
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1