一种数据同步改进方法、装置、设备及其存储介质与流程

文档序号:35460428发布日期:2023-09-15 22:04阅读:24来源:国知局
一种数据同步改进方法、装置、设备及其存储介质与流程

本技术涉及人工智能及金融科技,应用于金融业务数据多端间同步更新过程中,尤其涉及一种数据同步改进方法、装置、设备及其存储介质。


背景技术:

1、随着计算机行业的发展,越来越多的金融业务数据需要进行多端间的同步更新操作,目前,现有的处理方案一般通过流式处理的方式提升处理效率。然而,批式和流式数据同步方案各有优缺点,流式数据同步在数据时效性和数据准确性上的优越性毋庸置疑,可以近乎实时地在大数据一端重放数据库日志来完成数据同步,且数据准确性无限逼近100%,但其弊端也十分明显,即在端到端的系统之间传递数据库操作日志十分消耗网络带宽资源,且流式数据同步方案需要一直运行流式任务来重放数据库日志,计算资源的消耗是批式数据同步方案的数倍之多。

2、批式数据同步方案的优点是按需同步,消耗计算资源少,缺点是数据同步时效慢,通过查询的方式查询源端数据库的数据很有可能会碰到源端数据表没有索引或者数据库性能差,导致查询增量数据的任务时效慢,最终造成生产数据的同步延迟,目前金融数据在多端间的同步更新上,还缺少一个可以兼顾数据同步时效、数据同步准确性和管控数据同步资源消耗的金融数据同步改进方法。


技术实现思路

1、本技术实施例的目的在于提出一种数据同步改进方法、装置、设备及其存储介质,以解决现有技术还缺少一个可以兼顾数据同步时效、数据同步准确性和管控数据同步资源消耗的金融数据同步改进方法的问题。

2、为了解决上述技术问题,本技术实施例提供一种数据同步改进方法,采用了如下所述的技术方案:

3、一种数据同步改进方法,包括下述步骤:

4、获取目标数据源端的数据表操作日志,其中,所述目标数据源端的数据表存储在预设的oracle数据库内;

5、调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息;

6、基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果;

7、根据所述批式处理结果,获取本次处理前后各个目标数据表分别对应的起始偏移量和结束偏移量;

8、根据所述各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务;

9、基于预设的更新条件和所述数据操作动作重放任务的执行结果,对所述目标更新端内相应的映射表进行同步更新。

10、进一步的,所述调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息的步骤,具体包括:

11、统计预设的流式传输组件中消息队列的分区数量,其中,所述预设的流式传输组件为apache kafka架构的流式传输组件,所述消息队列的分区数量为apache kafka消息队列的topic分区数;

12、将所述分区数量作为哈希散列的目标数量,以所述目标数据源端中各个数据表的主键字段为哈希标识,对所述目标数据源端中所有数据表对应的操作日志进行哈希散列化处理,获取哈希散列化处理结果;

13、将所述哈希散列化处理结果分开缓存到与所述分区数量相等个数的日志消息集合内,其中,将同一主键字段对应的日志消息作为一个元素值缓存到一个日志消息集合内。

14、进一步的,在执行所述基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果的步骤之前,所述方法还包括:

15、根据预设的服务监测组件,判断预设的批式任务处理组件是否发送新的批式任务消费请求,其中,所述预设的批式任务处理组件为spark离线批式任务处理组件;

16、若预设的批式任务处理组件未发送新的批式任务消费请求,则继续执行当前监测任务,其中,所述监测任务用于监测所述预设的批式任务处理组件是否向预设的任务发布中心发送日志消息消费请求;

17、若预设的批式任务处理组件发送了新的批式任务消费请求,则按照一对一关系,将不同的日志消息集合传输到apache kafka消息队列的不同topic分区内,供所述批式任务处理组件进行消费处理。

18、进一步的,所述基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果的步骤,具体包括:

19、获取从apache kafka消息队列的不同topic分区内分别传输来的日志消息集合;

20、基于spark离线批式任务处理组件对分别传输来的日志消息集合内元素进行消费处理,获取消费处理结果,作为所述批式处理结果。

21、进一步的,所述基于spark离线批式任务处理组件对分别传输来的日志消息集合内元素进行消费处理,获取消费处理结果,作为所述批式处理结果的步骤,具体包括:

22、从预设的缓存组件内获取上一次被所述spark离线批式任务处理组件消费处理后不同topic分区内不同主键的数据表分别对应的日志记录存储偏移量,其中,所述日志记录存储偏移量的表达记录方式为:[起始偏移量,结束偏移量],所述起始偏移量和所述结束偏移量都为非负整数值;

23、根据所述日志记录存储偏移量,获取不同topic分区内不同主键的数据表分别对应的结束偏移量,并都进行加1处理,获得本次消费处理时不同主键的数据表分别对应的起始偏移量;

24、基于spark离线批式任务处理组件对本次分别传输来的日志消息集合内元素进行消费处理,获取本次消费处理后不同topic分区内不同主键的数据表分别对应的最大偏移量,作为结束偏移量;

25、以所述日志记录存储偏移量的表达记录方式:[起始偏移量,结束偏移量],整理记录本次消费处理后不同topic分区内不同主键的数据表分别对应的起始偏移量和结束偏移量,获取记录结果作为所述消费处理结果,并结合时间戳,将所述消费处理结果更新缓存到所述预设的缓存组件内,其中,所述预设的缓存组件为apache zookeeper缓存组件。

26、进一步的,所述根据所述各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务的步骤,具体包括:

27、根据目标时间戳,获取所述预设的缓存组件内最新缓存的消费处理结果;

28、根据所述最新缓存的消费处理结果,以及所述目标数据源端的各个数据表与所述目标更新端的各个映射表间的映射关系,识别出需要在目标更新端进行同步更新的映射表;

29、获取所述需要在目标更新端进行同步更新的映射表所对应的目标表,从所述最新缓存的消费处理结果中获取所述目标表对应的起始偏移量和结束偏移量;

30、根据所述目标表对应的起始偏移量和结束偏移量,从所述apache kafka架构的流式传输组件内获取所述目标表对应的数据操作日志信息;

31、根据所述目标表对应的数据操作日志信息在预设的目标更新端执行所述数据操作动作重放任务,其中,所述目标更新端包括apache hudi数据存储端。

32、进一步的,所述基于预设的更新条件和所述数据操作动作重放任务的执行结果,对所述目标更新端内相应的映射表进行同步更新的步骤,具体包括:

33、判断所述数据操作动作重放任务是否执行成功;

34、若所述数据操作动作重放任务执行失败,则所述目标数据源端的源数据表操作失败,不满足所述预设的更新条件,无需对所述目标更新端内相应的映射表进行同步更新;

35、若所述数据操作动作重放任务执行成功,则所述目标数据源端的源数据表操作成功,满足所述预设的更新条件,根据所述数据操作动作重放任务的执行结果对所述目标更新端内相应的映射表进行同步更新。

36、为了解决上述技术问题,本技术实施例还提供一种数据同步改进装置,采用了如下所述的技术方案:

37、一种数据同步改进装置,包括:

38、数据表操作日志获取模块,用于获取目标数据源端的数据表操作日志,其中,所述目标数据源端的数据表存储在预设的oracle数据库内;

39、哈希散列解析模块,用于调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息;

40、批式处理模块,用于基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果;

41、偏移量获取模块,用于根据所述批式处理结果,获取本次处理前后各个目标数据表分别对应的起始偏移量和结束偏移量;

42、数据操作动作重放模块,用于根据所述各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务;

43、同步更新模块,用于基于预设的更新条件和所述数据操作动作重放任务的执行结果,对所述目标更新端内相应的映射表进行同步更新。

44、为了解决上述技术问题,本技术实施例还提供一种计算机设备,采用了如下所述的技术方案:

45、一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述所述的数据同步改进方法的步骤。

46、为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:

47、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述所述的数据同步改进方法的步骤。

48、与现有技术相比,本技术实施例主要有以下有益效果:

49、本技术实施例所述数据同步改进方法,通过获取目标数据源端的数据表操作日志;采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析;基于预设的流式传输组件,将解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果;根据批式处理结果,获取本次处理前后各个目标数据表分别对应的起始偏移量和结束偏移量;根据各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务;基于数据操作动作重放任务的执行结果,判断是否对所述目标更新端内相应的映射表进行同步更新。通过采用流式传输组件与批式任务处理组件相结合的方式对是否需要进行数据同步更新进行判断,本技术同时采用流式和批式相结合方式,兼顾数据同步时效、数据同步准确性和管控数据同步资源消耗。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1