一种数据同步改进方法、装置、设备及其存储介质制造方法及图纸

技术编号:38831905 阅读:9 留言:0更新日期:2023-09-17 09:51
本申请实施例属于人工智能及金融科技技术领域,应用于金融业务数据多端间同步更新过程中,涉及一种数据同步改进方法、装置、设备及其存储介质,包括基于流式传输组件,将解析后的日志消息传输给批式任务处理组件进行批式处理;根据批式处理结果,获取本次处理前后各个目标数据表分别对应的起始偏移量和结束偏移量;根据各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务;基于数据操作动作重放任务的执行结果,判断是否对目标更新端内相应的映射表进行同步更新。通过采用Apache Kafka架构的流式传输组件与Spark离线批式任务处理组件相结合的方式,兼顾数据同步时效、数据同步准确性和管控数据同步资源消耗。控数据同步资源消耗。控数据同步资源消耗。

【技术实现步骤摘要】
一种数据同步改进方法、装置、设备及其存储介质


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

技术介绍

[0002]随着计算机行业的发展,越来越多的金融业务数据需要进行多端间的同步更新操作,目前,现有的处理方案一般通过流式处理的方式提升处理效率。然而,批式和流式数据同步方案各有优缺点,流式数据同步在数据时效性和数据准确性上的优越性毋庸置疑,可以近乎实时地在大数据一端重放数据库日志来完成数据同步,且数据准确性无限逼近100%,但其弊端也十分明显,即在端到端的系统之间传递数据库操作日志十分消耗网络带宽资源,且流式数据同步方案需要一直运行流式任务来重放数据库日志,计算资源的消耗是批式数据同步方案的数倍之多。
[0003]批式数据同步方案的优点是按需同步,消耗计算资源少,缺点是数据同步时效慢,通过查询的方式查询源端数据库的数据很有可能会碰到源端数据表没有索引或者数据库性能差,导致查询增量数据的任务时效慢,最终造成生产数据的同步延迟,目前金融数据在多端间的同步更新上,还缺少一个可以兼顾数据同步时效、数据同步准确性和管控数据同步资源消耗的金融数据同步改进方法。

技术实现思路

[0004]本申请实施例的目的在于提出一种数据同步改进方法、装置、设备及其存储介质,以解决现有技术还缺少一个可以兼顾数据同步时效、数据同步准确性和管控数据同步资源消耗的金融数据同步改进方法的问题。
[0005]为了解决上述技术问题,本申请实施例提供一种数据同步改进方法,采用了如下所述的技术方案:
[0006]一种数据同步改进方法,包括下述步骤:
[0007]获取目标数据源端的数据表操作日志,其中,所述目标数据源端的数据表存储在预设的Oracle数据库内;
[0008]调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息;
[0009]基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果;
[0010]根据所述批式处理结果,获取本次处理前后各个目标数据表分别对应的起始偏移量和结束偏移量;
[0011]根据所述各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务;
[0012]基于预设的更新条件和所述数据操作动作重放任务的执行结果,对所述目标更新
端内相应的映射表进行同步更新。
[0013]进一步的,所述调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息的步骤,具体包括:
[0014]统计预设的流式传输组件中消息队列的分区数量,其中,所述预设的流式传输组件为Apache Kafka架构的流式传输组件,所述消息队列的分区数量为Apache Kafka消息队列的Topic分区数;
[0015]将所述分区数量作为哈希散列的目标数量,以所述目标数据源端中各个数据表的主键字段为哈希标识,对所述目标数据源端中所有数据表对应的操作日志进行哈希散列化处理,获取哈希散列化处理结果;
[0016]将所述哈希散列化处理结果分开缓存到与所述分区数量相等个数的日志消息集合内,其中,将同一主键字段对应的日志消息作为一个元素值缓存到一个日志消息集合内。
[0017]进一步的,在执行所述基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果的步骤之前,所述方法还包括:
[0018]根据预设的服务监测组件,判断预设的批式任务处理组件是否发送新的批式任务消费请求,其中,所述预设的批式任务处理组件为Spark离线批式任务处理组件;
[0019]若预设的批式任务处理组件未发送新的批式任务消费请求,则继续执行当前监测任务,其中,所述监测任务用于监测所述预设的批式任务处理组件是否向预设的任务发布中心发送日志消息消费请求;
[0020]若预设的批式任务处理组件发送了新的批式任务消费请求,则按照一对一关系,将不同的日志消息集合传输到Apache Kafka消息队列的不同Topic分区内,供所述批式任务处理组件进行消费处理。
[0021]进一步的,所述基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果的步骤,具体包括:
[0022]获取从Apache Kafka消息队列的不同Topic分区内分别传输来的日志消息集合;
[0023]基于Spark离线批式任务处理组件对分别传输来的日志消息集合内元素进行消费处理,获取消费处理结果,作为所述批式处理结果。
[0024]进一步的,所述基于Spark离线批式任务处理组件对分别传输来的日志消息集合内元素进行消费处理,获取消费处理结果,作为所述批式处理结果的步骤,具体包括:
[0025]从预设的缓存组件内获取上一次被所述Spark离线批式任务处理组件消费处理后不同Topic分区内不同主键的数据表分别对应的日志记录存储偏移量,其中,所述日志记录存储偏移量的表达记录方式为:[起始偏移量,结束偏移量],所述起始偏移量和所述结束偏移量都为非负整数值;
[0026]根据所述日志记录存储偏移量,获取不同Topic分区内不同主键的数据表分别对应的结束偏移量,并都进行加1处理,获得本次消费处理时不同主键的数据表分别对应的起始偏移量;
[0027]基于Spark离线批式任务处理组件对本次分别传输来的日志消息集合内元素进行消费处理,获取本次消费处理后不同Topic分区内不同主键的数据表分别对应的最大偏移量,作为结束偏移量;
[0028]以所述日志记录存储偏移量的表达记录方式:[起始偏移量,结束偏移量],整理记录本次消费处理后不同Topic分区内不同主键的数据表分别对应的起始偏移量和结束偏移量,获取记录结果作为所述消费处理结果,并结合时间戳,将所述消费处理结果更新缓存到所述预设的缓存组件内,其中,所述预设的缓存组件为Apache Zookeeper缓存组件。
[0029]进一步的,所述根据所述各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务的步骤,具体包括:
[0030]根据目标时间戳,获取所述预设的缓存组件内最新缓存的消费处理结果;
[0031]根据所述最新缓存的消费处理结果,以及所述目标数据源端的各个数据表与所述目标更新端的各个映射表间的映射关系,识别出需要在目标更新端进行同步更新的映射表;
[0032]获取所述需要在目标更新端进行同步更新的映射表所对应的目标表,从所述最新缓存的消费处理结果中获取所述目标表对应的起始偏移量和结束偏移量;
[0033]根据所述目标表对应的起始偏移量和结束偏移量,从所述Apache Kafka架构的流式传输组件内获取所述目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步改进方法,其特征在于,包括下述步骤:获取目标数据源端的数据表操作日志,其中,所述目标数据源端的数据表存储在预设的Oracle数据库内;调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息;基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果;根据所述批式处理结果,获取本次处理前后各个目标数据表分别对应的起始偏移量和结束偏移量;根据所述各个目标表分别对应的起始偏移量和结束偏移量,在目标更新端执行数据操作动作重放任务;基于预设的更新条件和所述数据操作动作重放任务的执行结果,对所述目标更新端内相应的映射表进行同步更新。2.根据权利要求1所述的数据同步改进方法,其特征在于,所述调用预设的日志解析服务,采用哈希散列方式对所述目标数据源端的数据表操作日志进行解析,获取解析后的日志消息的步骤,具体包括:统计预设的流式传输组件中消息队列的分区数量,其中,所述预设的流式传输组件为Apache Kafka架构的流式传输组件,所述消息队列的分区数量为Apache Kafka消息队列的Topic分区数;将所述分区数量作为哈希散列的目标数量,以所述目标数据源端中各个数据表的主键字段为哈希标识,对所述目标数据源端中所有数据表对应的操作日志进行哈希散列化处理,获取哈希散列化处理结果;将所述哈希散列化处理结果分开缓存到与所述分区数量相等个数的日志消息集合内,其中,将同一主键字段对应的日志消息作为一个元素值缓存到一个日志消息集合内。3.根据权利要求2所述的数据同步改进方法,其特征在于,在执行所述基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果的步骤之前,所述方法还包括:根据预设的服务监测组件,判断预设的批式任务处理组件是否发送新的批式任务消费请求,其中,所述预设的批式任务处理组件为Spark离线批式任务处理组件;若预设的批式任务处理组件未发送新的批式任务消费请求,则继续执行当前监测任务,其中,所述监测任务用于监测所述预设的批式任务处理组件是否向预设的任务发布中心发送日志消息消费请求;若预设的批式任务处理组件发送了新的批式任务消费请求,则按照一对一关系,将不同的日志消息集合传输到Apache Kafka消息队列的不同Topic分区内,供所述批式任务处理组件进行消费处理。4.根据权利要求3所述的数据同步改进方法,其特征在于,所述基于预设的流式传输组件,将所述解析后的日志消息传输给预设的批式任务处理组件进行批式处理,获取批式处理结果的步骤,具体包括:获取从Apache Kafka消息队列的不同Topic分区内分别传输来的日志消息集合;
基于Spark离线批式任务处理组件对分别传输来的日志消息集合内元素进行消费处理,获取消费处理结果,作为所述批式处理结果。5.根据权利要求4所述的数据同步改进方法,其特征在于,所述基于Spark离线批式任务处理组件对分别传输来的日志消息集合内元素进行消费处理,获取消费处理结果,作为所述批式处理结果的步骤,具体包括:从预设的缓存组件内获取上一次被所述Spark离线批式任务处理组件消费处理后不同Topic分区内不同主键的数据表分别对应的日志记录存储偏移量,其中,所述日志记录存储偏移量的表达记录方式为:[起始偏移量,结束偏移量],所述起始偏移量和所述结束偏移量都为非负整数值;根据所述日志记录存储偏移量,获取不同Topic分区内不同主键的数据表分别对应的结束偏移量,并都进行加1处理,获得本次消...

【专利技术属性】
技术研发人员:易晓博
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:

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

1