本发明涉及数据处理,尤其涉及一种数据同步方法、系统、电子设备及存储介质。
背景技术:
1、随着计算机技术的发展,越来越多的系统需要进行数据同步,在需要进行数据同步的数据分析处理系统中,每次同步前都需要删除之前同步的历史数据,由于数据量大,导致筛选满足条件的数据并删除相应数据的执行效率慢,处理时间长,因此提高数据处理的时效十分重要。目前主要是对数据库进行分库分表优化,根据分库分表的条件,减少单表的数据量,当数据量小时,可以提高处理时效,但是当数据量大时,对处理时效的提升并不明显,而且与业务耦合严重,涉及表操作的所有的功能都需要改造回归,工作量大。相关技术中,通过按照“条件-主键id”的方式存储数据库中同步数据的信息,再次同步相同条件数据的时候,使用mongo记录信息直接执行删除操作,由于只存储了满足条件的主键信息,大大减少了数据库查询的io消耗,直接执行数据库的删除操作,大大提高了业务处理的时效,但需要对业务系统每一个要优化的功能进行改造,存在代码入侵,风险较高。
技术实现思路
1、本发明提供一种数据同步方法、系统、电子设备及存储介质,用以解决相关技术中通过按照“条件-主键id”的方式存储数据库中同步数据的信息,需要对每一个要优化的功能进行改造,存在代码入侵,风险较高的缺陷。
2、本发明提供一种数据同步方法,应用于服务端,包括:
3、拦截业务系统发起的数据同步请求,判断所述数据同步请求中是否包括命中拦截规则的待同步数据;所述拦截规则包括需要拦截的数据表及主键id,所述需要拦截的拦截数据表及主键id存储在非关系型数据库中,所述需要拦截的数据表及主键id根据上一次关系型数据库变更生成;
4、响应于所述数据同步请求中包括命中拦截规则的待同步数据,获取命中所述拦截规则的待同步数据在所述关系型数据库中的位置,以使业务系统将所述待同步数据在关系型数据库中对应位置上的历史数据替换为所述待同步数据。
5、根据本发明提供的一种数据同步方法,所述需要拦截的数据表及主键id根据上一次数据库变更生成,包括:
6、通过消息处理器监听所述关系型数据库是否发生变更;
7、响应于所述所述关系型数据库发生变更,判断发生变更的数据是否满足缓存规则;
8、响应于所述发生变更的数据满足缓存至非关系型数据库的要求,将所述发生变更的数据对应的数据表及主键id作为需要拦截的数据表及主键id,存入所述非关系型数据库中。
9、根据本发明提供的一种数据同步方法,所述缓存规则,包括:
10、所述发生变更的数据的变更频率小于预设频率阈值。
11、根据本发明提供的一种数据同步方法,所述业务系统将所述待同步数据在关系型数据库中的位置上的历史数据替换为所述待同步数据后,还包括:
12、将所述非关系型数据库中缓存的数据表及主键id删除,以释放所述非关系型数据库内存。
13、根据本发明提供的一种数据同步方法,在所述数据同步请求中不包括命中拦截规则的待同步数据时,还包括:
14、将所述数据同步请求中未命中拦截规则的待同步数据返回至业务系统,以使业务系统对所述数据同步请求进行数据同步。
15、本发明提供一种数据同步方法,应用于业务端,包括:
16、发起数据同步请求;
17、若服务端判断出所述数据同步请求中包括命中拦截规则的待同步数据,将所述待同步数据在关系型数据库中对应位置上的历史数据替换为所述待同步数据。
18、根据本发明提供的一种数据同步方法,若服务端判断出所述数据同步请求中不包括命中拦截规则的待同步数据,还包括:
19、根据指定条件删除待同步数据对应的所述关系数据库中历史数据;
20、将所述待同步数据存入所述关系数据库中对应位置。
21、本发明提供一种数据同步系统,包括:服务端和业务端,所述服务端用于拦截业务系统发起的数据同步请求,判断所述数据同步请求中是否包括命中拦截规则的待同步数据;所述拦截规则包括需要拦截的数据表及主键id,所述需要拦截的数据表及主键id存储在非关系型数据库中,所述需要拦截的数据表及主键id根据上一次关系型数据库变更生成;在所述数据同步请求中包括命中拦截规则的待同步数据时,获取命中拦截规则的待同步数据在关系型数据库中的位置,以使业务系统将所述待同步数据在关系型数据库中的位置上的历史数据替换为所述待同步数据;
22、所述业务端用于发起数据同步请求;若服务端判断出所述数据同步请求中包括命中拦截规则的待同步数据,将所述待同步数据在关系型数据库中的位置上的历史数据替换为所述待同步数据。
23、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据同步方法。
24、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据同步方法。
25、本发明提供一种数据同步方法、系统、电子设备及存储介质,该方法应用于服务端,包括:拦截业务系统发起的数据同步请求,判断数据同步请求中是否包括命中拦截规则的待同步数据;拦截规则包括需要拦截的数据表及主键id,需要拦截的拦截数据表及主键id存储在非关系型数据库中,需要拦截的数据表及主键id根据上一次关系型数据库变更生成;响应于数据同步请求中包括命中拦截规则的待同步数据,获取命中拦截规则的待同步数据在所述关系型数据库中的位置,以使业务系统将待同步数据在关系型数据库中对应位置上的历史数据替换为待同步数据。本发明通过拦截数据同步请求,从非关系数据库中筛选出命中拦截规则的信息,将命中拦截规则的信息对应的历史数据从关系数据库删除,无需对拦截规则对应的业务系统功能进行代码改造,不存在代码入侵,降低数据同步风险。
1.一种数据同步方法,其特征在于,应用于服务端,包括:
2.根据权利要求1所述的一种数据同步方法,其特征在于,所述需要拦截的数据表及主键id根据上一次数据库变更生成,包括:
3.根据权利要求2所述的一种数据同步方法,其特征在于,所述缓存规则,包括:
4.根据权利要求1所述的一种数据同步方法,其特征在于,所述业务系统将所述待同步数据在关系型数据库中的位置上的历史数据替换为所述待同步数据后,还包括:
5.根据权利要求1所述的一种数据同步方法,其特征在于,在所述数据同步请求中不包括命中拦截规则的待同步数据时,还包括:
6.一种数据同步方法,其特征在于,应用于业务端,包括:
7.根据权利要求6所述的一种数据同步方法,其特征在于,若服务端判断出所述数据同步请求中不包括命中拦截规则的待同步数据,还包括:
8.一种数据同步系统,其特征在于,包括服务端和业务端,
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的数据同步方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据同步方法。