System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及但不限于计算机,尤其涉及一种数据同步方法、系统、电子设备、存储介质。
技术介绍
1、数据仓库需要从不同类型的数据源中提取数据,经过清洗、转换和整合后,存储在一个统一的位置,这一过程称为数据仓库的etl(extract-transform-load,抽取-转换-加载)过程。在etl过程中,当业务变更导致上游表结构更新,需要先暂停etl进程,将下游表的结构修改为与上游源表结构一致的最新结构,再恢复etl进程,并且在etl停止期间,上游表和下游表都必须暂停服务,无法正常提供服务;并且,如果由于业务需求而经常需要调整表结构,则需要反复停止数据同步,从而带来巨大的运维成本。
技术实现思路
1、本申请实施例提供了一种数据同步方法、系统、电子设备、存储介质,能够使得系统在不中断etl过程的前提下实现表结构变更的数据同步,保障系统正常服务功能的同时降低系统运维成本。
2、第一方面,本申请实施例提供了一种数据同步方法,应用于数据同步系统,所述数据同步系统包括上游数据库、第一消息集成模块、模式注册中心、消息队列、第二消息集成模块和下游数据库,所述方法包括:
3、所述第一消息集成模块从所述上游数据库中集成上游数据,当检测到所述上游数据库的表结构发生变更,获取变更后的表结构对应的第一模式信息,并将所述第一模式信息注册到所述模式注册中心,其中,所述第一模式信息用于描述所述变更后的表结构的数据结构;
4、所述第一消息集成模块序列化所述上游数据得到第一消息记录,并将
5、当所述第二消息集成模块监听到所述模式注册中心注册了新的模式信息,从所述模式注册中心中获取所述第一模式信息,将所述第一模式信息保存至模式队列,其中,所述第一模式信息为所述模式注册中心中注册时长最短的模式信息,所述模式队列中还包括排序位于所述第一模式信息之前的第二模式信息;
6、所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,其中,所述参考消息记录为所述第一消息记录或所述第二消息记录;
7、所述第二消息集成模块基于所述目标模式信息解析所述参考消息记录,得到目标dml语句,其中,所述目标dml语句用于修改所述下游数据库中的数据;
8、所述第二消息集成模块基于所述目标模式信息生成目标ddl语句,其中,所述目标ddl语句用于修改所述下游数据库的表结构;
9、所述第二消息集成模块将所述目标dml语句或所述目标ddl语句发送至所述下游数据库;
10、所述下游数据库执行所述目标dml语句,完成与所述上游数据库的数据同步,或执行所述目标ddl语句,完成与所述上游数据库的表结构变更同步。
11、在一些实施例中,所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,包括:
12、获取所述模式队列中位于队头位置的参考模式信息;
13、当所述参考模式信息与所述参考模式标识不对应,删除所述模式队列中的所述参考模式信息,重新获取所述模式队列中位于队头位置的新的参考模式信息,直至所述新的参考模式信息与所述参考模式标识相对应,将所述新的参考模式信息确定为所述目标模式信息。
14、在一些实施例中,所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,包括:
15、获取所述模式队列中位于队头位置的参考模式信息;
16、当所述参考模式信息为所述模式队列中唯一的模式信息,并且所述参考模式信息与所述参考模式标识不对应,丢弃所述参考消息记录和所述参考模式信息,不提交消费偏移量至所述消息队列;
17、当获取到所述模式队列中位于队头位置的新的参考模式信息,并且所述新的参考模式信息与所述参考模式标识相对应,提交所述消费偏移量至所述消息队列,并将所述新的参考模式信息确定为所述目标模式信息。
18、在一些实施例中,所述第二消息集成模块还包括反序列化器、sql构造器和模式解析器,所述第二消息集成模块基于所述目标模式信息解析所述参考消息记录,得到目标dml语句,包括:
19、所述反序列化器基于所述目标模式信息对所述参考消息记录进行反序列化,得到中间消息记录,并将所述中间消息记录发送至所述sql构造器;
20、所述sql构造器基于所述中间消息记录生成所述目标dml语句;
21、所述第二消息集成模块基于所述目标模式信息生成目标ddl语句,包括:
22、所述模式解析器基于所述目标模式信息和预设的数据类型映射表得到目标数据映射关系,其中,所述目标数据映射关系用于指示所述目标模式信息分别与所述上游数据库对应的表字段类型和所述下游数据库对应的表字段类型之间的映射关系;
23、所述模式解析器基于所述目标模式信息和预设的表结构缓存空间中的参考表结构得到目标变更信息,其中,所述参考表结构为当前所述下游数据库的表结构;
24、所述模式解析器将所述目标数据映射关系和所述目标变更信息发送至所述sql构造器;
25、所述sql构造器基于所述目标数据映射关系和所述目标变更信息生成所述目标ddl语句。
26、第二方面,本申请实施例还提供了一种数据同步系统,所述数据同步系统包括上游数据库、第一消息集成模块、模式注册中心、消息队列、第二消息集成模块和下游数据库,所述第一消息集成模块包括第一数据处理模块和第二数据处理模块,所述第二消息集成模块包括第三数据处理模块、第四数据处理模块和第五数据处理模块;
27、所述第一数据处理模块用于从所述上游数据库中集成上游数据,当检测到所述上游数据库的表结构发生变更,获取变更后的表结构对应的第一模式信息,并将所述第一模式信息注册到所述模式注册中心,其中,所述第一模式信息用于描述所述变更后的表结构的数据结构;
28、所述第二数据处理模块用于序列化所述上游数据得到第一消息记录,并将所述第一消息记录保存至所述消息队列,其中,所述第一消息记录携带有第一模式标识,所述第一模式标识用于唯一标识所述第一消息记录对应的所述上游数据库的表结构的第一模式信息,所述消息队列中还包括排序位于所述第一消息记录之前的第二消息记录,所述第二消息记录携带有表结构变更前的模式标识;
29、所述第三数据处理模块用于当监听到所述模式注册中心注册了新的模式信息,从所述模式注册中心中获取所述第一模式信息,将所述第一模式信息保存至本文档来自技高网...
【技术保护点】
1.一种数据同步方法,其特征在于,应用于数据同步系统,所述数据同步系统包括上游数据库、第一消息集成模块、模式注册中心、消息队列、第二消息集成模块和下游数据库,所述方法包括:
2.根据权利要求1所述的数据同步方法,其特征在于,所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,包括:
3.根据权利要求1所述的数据同步方法,其特征在于,所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,包括:
4.根据权利要求1所述的数据同步方法,其特征在于,所述第二消息集成模块还包括反序列化器、SQL构造器和模式解析器,所述第二消息集成模块基于所述目标模式信息解析所述参考消息记录,得到目标DML语句,包括:
5.一种数据同步系统,其特征在于,所述数据同步系统包括上游数据库、第一消息集成模块、模式注册中心、消息队列、第二消息集成模块和下游数据库,所述第一消息集成模块包括第一数据处理模块和第二数据
6.根据权利要求5所述的数据同步系统,其特征在于,所述第四数据处理模块包括:
7.根据权利要求5所述的数据同步系统,其特征在于,所述第四数据处理模块包括:
8.根据权利要求5所述的数据同步系统,其特征在于,所述第二消息集成模块还包括反序列化器、SQL构造器和模式解析器,所述模式解析器包括映射关系确定模块、变更信息获取模块和数据发送模块;
9.一种电子设备,其特征在于,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如权利要求1至4任一项所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至4中任意一项所述的数据同步方法。
...【技术特征摘要】
1.一种数据同步方法,其特征在于,应用于数据同步系统,所述数据同步系统包括上游数据库、第一消息集成模块、模式注册中心、消息队列、第二消息集成模块和下游数据库,所述方法包括:
2.根据权利要求1所述的数据同步方法,其特征在于,所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,包括:
3.根据权利要求1所述的数据同步方法,其特征在于,所述第二消息集成模块从所述消息队列中获取携带有参考模式标识的参考消息记录,从所述模式队列中获取与所述参考模式标识对应的目标模式信息,包括:
4.根据权利要求1所述的数据同步方法,其特征在于,所述第二消息集成模块还包括反序列化器、sql构造器和模式解析器,所述第二消息集成模块基于所述目标模式信息解析所述参考消息记录,得到目标dml语句,包括:
5.一种数据同步系统,其特征在于,所述数据同步系统包括上游数据库、第一消息集成模块、模式注册中心、消息队列、第二消息集成模块和下游数据库,所述第一消息集成模...
【专利技术属性】
技术研发人员:马军超,段雄宝,张海堂,凌智,谷淑婷,黄培晟,
申请(专利权)人:深圳技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。