一种数据同步系统、方法、电子设备及存储介质技术方案

技术编号:37386904 阅读:14 留言:0更新日期:2023-04-27 07:26
本发明专利技术实施例提供了一种数据同步系统、方法、电子设备及存储介质,涉及计算机技术领域,该数据同步系统包括源数据库、第一数据同步设备、第二数据同步设备、后台数据库和搜索引擎,源数据库中包括多个数据表,多个数据表包括实时数据表和离线数据表;第一数据同步设备,用于基于实时数据表的更新日志,将实时数据表中的更新数据同步至后台数据库,以使得后台数据库中的数据被同步至搜索引擎;第二数据同步设备,用于从指定时刻开始,每隔第一预设时长将离线数据表中的数据同步至后台数据库,以使得后台数据库中的数据被同步至搜索引擎。避免了数据丢失和系统宕机等问题,保证了数据同步的实时性。实时性。实时性。

【技术实现步骤摘要】
一种数据同步系统、方法、电子设备及存储介质


[0001]本专利技术涉及计算机
,特别是涉及一种数据同步系统、方法、电子设备及存储介质。

技术介绍

[0002]目前,为了支持用户搜索的功能,可以将数据源中的数据同步到搜索引擎中。目前的同步方式是监听数据源中业务表的变化,将发生更新的数据同步到搜索引擎,然而在短时间内可能存在大量的数据发生变化,导致短时间内需要进行大量的数据同步。此时若对数据同步进行限速,将影响数据同步的实时性,若不进行限速,可能会导致数据丢失甚至系统宕机等问题。

技术实现思路

[0003]本申请实施例的目的在于提供一种数据同步系统、方法、电子设备及存储介质,以实现在保证数据同步的实时性的同时,避免数据丢失和系统宕机。具体技术方案如下:
[0004]第一方面,本申请实施提供了一种数据同步系统,所述系统包括源数据库、第一数据同步设备、第二数据同步设备、后台数据库和搜索引擎;所述源数据库中包括多个数据表;所述多个数据表包括实时数据表和离线数据表;
[0005]所述第一数据同步设备,用于基于所述实时数据表的更新日志,将所述实时数据表中的更新数据同步至所述后台数据库,以使得所述后台数据库中的数据被同步至所述搜索引擎;
[0006]所述第二数据同步设备,用于从指定时刻开始,每隔第一预设时长将所述离线数据表中的数据同步至所述后台数据库,以使得所述后台数据库中的数据被同步至所述搜索引擎。
[0007]在一种可能的实现方式中,所述系统还包括消息中间件,所述消息中间件中包括消息队列;所述消息中间件被预先配置所述实时数据表的表名,且所述第二数据同步设备被预先配置所述离线数据表的表名;
[0008]所述消息中间件,用于基于所述实时数据表的表名监听所述实时数据表的更新日志,将所述更新日志存储至所述消息队列;
[0009]所述第一数据同步设备,还用于从所述消息队列中获取所述更新日志;
[0010]所述第二数据同步设备,具体用于从所述指定时刻开始,每隔所述第一预设时长,基于所述离线数据表的表名,将所述离线数据表中的数据同步至所述后台数据库。
[0011]在一种可能的实现方式中,所述第一数据同步设备,还用于获取所述多个数据表的更新日志,每隔第二预设时长计算一次每个数据表在所述第二预设时长内的更新比例,将所述更新比例小于预设阈值的数据表作为所述实时数据表,将所述更新比例大于所述预设阈值的数据表作为所述离线数据表,并为所述第二数据同步设备配置所述离线数据表的表名。
[0012]在一种可能的实现方式中,所述第一数据同步设备,具体用于为所述第二数据同步设备配置同步任务,所述同步任务包括所述离线数据表的表名、所述离线数据表的指定表字段类型以及执行所述同步任务的所述指定时刻和所述第一预设时长;
[0013]所述第二数据同步设备,具体用于从所述指定时刻开始,每隔所述第一预设时长,从所述离线数据表中获取所述指定表字段类型的数据,将获取到的数据同步至所述后台数据库。
[0014]在一种可能的实现方式中,所述第二数据同步设备,还用于基于所述第一数据同步设备配置的所述离线数据表的表名,以及数据表与需要同步的表字段类型之间的预设对应关系,确定所述离线数据表对应的指定表字段类型;基于所述离线数据表的表名、所述离线数据表对应的指定表字段类型生成同步任务,所述同步任务还包括执行所述同步任务的所述指定时刻和所述第一预设时长;
[0015]所述第二数据同步设备,具体用于基于所述同步任务,从所述指定时刻开始,每隔所述第一预设时长,从所述离线数据表中获取所述指定表字段类型的数据,将获取到的数据同步至所述后台数据库。
[0016]在一种可能的实现方式中,所述同步任务还包括所述离线数据表的数据库链接、用于访问所述数据库链接的第一用户名和第一密码以及用于访问所述后台数据库的第二用户名和第二密码;
[0017]所述第二数据同步设备,具体用于从所述指定时刻开始,每隔所述第一预设时长,基于所述第一用户名和第一密码访问所述数据库链接,并从所述离线更新数据表中获取所述指定表字段类型的数据;并基于所述第二用户名和第二密码访问所述后台数据库,并将从所述离线数据表中获取的数据存入所述后台数据库。
[0018]第二方面,本申请提供一种数据同步方法,所述方法应用于数据同步系统,所述数据同步系统包括源数据库、第一数据同步设备、第二数据同步设备、后台数据库和搜索引擎;所述源数据库中包括多个数据表;所述多个数据表包括实时数据表和离线数据表;所述方法包括:
[0019]所述第一数据同步设备获取所述实时数据表的更新日志;
[0020]所述第一数据同步设备基于所述实时数据表的更新日志,将所述实时数据表中的更新数据同步至所述后台数据库,以使得所述后台数据库中的数据被同步至所述搜索引擎;
[0021]所述第二数据同步设备从指定时刻开始,每隔第一预设时长将所述离线数据表中的数据同步至所述后台数据库,以使得所述后台数据库中的数据被同步至所述搜索引擎。
[0022]在一种可能的实现方式中,在所述第一数据同步设备获取所述实时数据表的更新日志之前,所述方法包括:
[0023]所述第一数据同步设备获取所述多个数据表的更新日志;
[0024]所述第一数据同步设备每隔第二预设时长计算一次每个数据表在所述第二预设时长内的更新比例;
[0025]所述第一数据同步设备将所述更新比例小于预设阈值的数据表作为所述实时数据表,将所述更新比例大于所述预设阈值的数据表作为所述离线数据表;
[0026]所述第一数据同步设备为所述第二数据同步设备配置所述离线数据表的表名;
[0027]所述第二数据同步设备基于所述离线数据表的表名确定离线数据表。
[0028]在一种可能的实现方式中,所述第一数据同步设备为所述第二数据同步设备配置所述离线数据表的表名,包括:
[0029]所述第一数据同步设备为所述第二数据同步设备配置同步任务,所述同步任务包括所述离线数据表的表名、所述离线数据表的指定表字段类型以及执行所述同步任务的所述指定时刻和所述第一预设时长;
[0030]所述第二数据同步设备从指定时刻开始,每隔第一预设时长将所述离线数据表中的数据同步至所述后台数据库,包括:
[0031]所述第二数据同步设备基于所述同步任务,从所述指定时刻开始,每隔所述第一预设时长将所述离线数据表的指定表字段类型的数据同步至所述后台数据库。
[0032]在一种可能的实现方式中,在所述第一数据同步设备为所述第二数据同步设备配置所述离线数据表的表名之后,所述方法还包括:
[0033]所述第二数据同步设备基于所述离线数据表的表名,以及数据表与需要同步的表字段类型之间的预设对应关系,确定所述离线数据表对应的指定表字段类型;
[0034]所述第二数据同步设备基于所述离线数据表的表名、所述离线数据表对应的指定表字段类型生成同步任务,所述同步任务还包括执行所述同步任本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步系统,其特征在于,所述系统包括源数据库、第一数据同步设备、第二数据同步设备、后台数据库和搜索引擎;所述源数据库中包括多个数据表;所述多个数据表包括实时数据表和离线数据表;所述第一数据同步设备,用于基于所述实时数据表的更新日志,将所述实时数据表中的更新数据同步至所述后台数据库,以使得所述后台数据库中的数据被同步至所述搜索引擎;所述第二数据同步设备,用于从指定时刻开始,每隔第一预设时长将所述离线数据表中的数据同步至所述后台数据库,以使得所述后台数据库中的数据被同步至所述搜索引擎。2.根据权利要求1所述的系统,其特征在于,所述系统还包括消息中间件,所述消息中间件中包括消息队列;所述消息中间件被预先配置所述实时数据表的表名,且所述第二数据同步设备被预先配置所述离线数据表的表名;所述消息中间件,用于基于所述实时数据表的表名监听所述实时数据表的更新日志,将所述更新日志存储至所述消息队列;所述第一数据同步设备,还用于从所述消息队列中获取所述更新日志;所述第二数据同步设备,具体用于从所述指定时刻开始,每隔所述第一预设时长,基于所述离线数据表的表名,将所述离线数据表中的数据同步至所述后台数据库。3.根据权利要求1所述的系统,其特征在于,所述第一数据同步设备,还用于获取所述多个数据表的更新日志,每隔第二预设时长计算一次每个数据表在所述第二预设时长内的更新比例,将所述更新比例小于预设阈值的数据表作为所述实时数据表,将所述更新比例大于所述预设阈值的数据表作为所述离线数据表,并为所述第二数据同步设备配置所述离线数据表的表名。4.根据权利要求3所述的系统,其特征在于,所述第一数据同步设备,具体用于为所述第二数据同步设备配置同步任务,所述同步任务包括所述离线数据表的表名、所述离线数据表的指定表字段类型以及执行所述同步任务的所述指定时刻和所述第一预设时长;所述第二数据同步设备,具体用于从所述指定时刻开始,每隔所述第一预设时长,从所述离线数据表中获取所述指定表字段类型的数据,将获取到的数据同步至所述后台数据库。5.根据权利要求3所述的系统,其特征在于,所述第二数据同步设备,还用于基于所述第一数据同步设备配置的所述离线数据表的表名,以及数据表与需要同步的表字段类型之间的预设对应关系,确定所述离线数据表对应的指定表字段类型;基于所述离线数据表的表名、所述离线数据表对应的指定表字段类型生成同步任务,所述同步任务还包括执行所述同步任务的所述指定时刻和所述第一预设时长;所述第二数据同步设备,具体用于基于所述同步任务,从所述指定时刻开始,每隔所述第一预设时长,从所述离线数据表中获取所述指定表字段类型的数据,将获取到的数据同步至所述后台数据库。6.根据权利要求4或5所述的系统,其特征在于,所述同步任务还包括所述离线数据表
的数据库链接、用于访问所述数据库链接的第一用户名和第一密码以及用于访问所述后台数据库的第二用户名和第二密码;所述第二数据同步设备,具体用于从所述指定时刻开始,每隔所述第一预设时长,基于所述第一用户名和第一密码访问所述数据库链接,并从所述离线数据表中获取所述指定表字段类型的数据;并基于所述第二用户名和第二密码访问所述后台数据库,并将从所述离线数据表中获取的数据存入所述后台数据库。7.一种数据同步方法,其特征在于,所述方法应用于数据同步系统,所述数据同步系统包括源数据库、第一数据同步设备、第二数据同步设备、后台数据库和搜索引擎;所述源数据库中包括多个数据表;所述多个数据表包括实时数据表和离线数据表;所述方法包括:所述第一数据同步设备获取所述实时数据表的更新日志;所述第一...

【专利技术属性】
技术研发人员:艾国信尚岩赫振军郑宇卿
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:

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

1