一种轻量级增量数据同步方法、装置及计算机可读介质与流程

文档序号:20684003发布日期:2020-05-08 18:40阅读:226来源:国知局
本发明属于数据同步
技术领域
:,更具体地,涉及一种轻量级增量数据同步方法、装置及计算机可读介质。
背景技术
::随着科技的发展和进步以及互联网技术在各个领域的广泛应用,各领域系统的数据共享也成为趋势,目前一般采用etl技术完成不同数据库之间的数据共享与同步;etl是英文extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。目前数据应用集成领域很多数据同步工具也是层出不穷,例如oracle、sap、微软、informatica,datastage等数据集成同步软件;其中,datastage是常见的大型数据集成软件,datastage的开发环境是基于c/s模式的,通过datastageclient连接到datastageserver上进行开发,对机器的要求比较高;而且datastage是商业软件,最专业的etl工具,价格不菲,适合大规模的etl应用,总之部署复杂要求高,费用成本也高,应用起来也不够简便;而小微型系统数据集成不需要复杂的etl过程,只需简单的数据处理和同步,因此,需要开发一种轻量级的数据同步工具来完成小微型系统的数据同步。技术实现要素:针对现有技术的至少一个缺陷或改进需求,本发明提供了一种轻量级增量数据同步方法、装置及计算机可读介质,运用quartz任务调度框架灵活配置同步任务,通过设置触发器机制获得增量数据,结合自定义同步时间的调度任务,实现数据从源数据库同步到目标数据库,解决了小微型系统的数据同步共享问题。为实现上述目的,按照本发明的第一个方面,提供了一种轻量级增量数据同步方法,包括以下步骤:监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;解析预先配置的同步任务以读取所述增量数据表中的增量数据;根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步。优选的,上述轻量级增量数据同步方法,所述增量数据表中包括目标表的名称、增量数据的标识和字段值;所述同步任务包括目标表的名称和字段;按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句。优选的,上述轻量级增量数据同步方法,所述同步任务还包括作业编号、执行时间、查询增量数据sql、目标表主键和目标表修改字段;通过读取同步任务中的所述查询增量数据sql来获取增量数据表中的增量数据。优选的,上述轻量级增量数据同步方法还包括:删除增量数据表中已进行同步的增量数据。优选的,上述轻量级增量数据同步方法还包括:记录同步过程中的日志数据,生成日志记录。按照本发明的第二个方面,还提供了一种轻量级增量数据同步装置,包括监听模块、解析模块和同步模块;所述监听模块用于监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;所述解析模块用于解析预先配置的同步任务以读取所述增量数据表中的增量数据;所述同步模块用于根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步。优选的,上述轻量级增量数据同步装置,所述增量数据表中包括目标表的名称、增量数据的标识和字段值;所述同步任务包括目标表的名称和字段;同步模块按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句。优选的,上述轻量级增量数据同步装置,所述同步任务还包括作业编号、执行时间、查询增量数据sql、目标表主键和目标表修改字段;解析模块通过读取同步任务中的所述查询增量数据sql来获取增量数据表中的增量数据。优选的,上述轻量级增量数据同步装置,所述同步模块还用于在执行成功时删除增量数据表中已进行同步的增量数据,在执行失败时记录异常页面告警。按照本发明的第三个方面,还提供了一种计算机可读介质,其存储有可由计算机可读介质执行的计算机程序,当所述计算机程序在计算机可读介质上运行时,使得所述计算机可读介质执行上述任一项所述方法的步骤。总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本发明通过数据库触发器机制实时获取增量数据,对现有业务系统没有影响,不用停止联机服务;同步任务可自由配置、字段灵活改变、执行时间灵活配置,可快速完成小微型系统之间的数据同步;采用java编写,具有轻量级、依赖性低、部署快的特点。(2)本发明主要针对小微型系统进行数据同步过程的数据量小的应用场景,数据处理简单、使用简便,对服务器性能要求不高;区别于大型系统的数据同步工具的应用场景。附图说明图1是本发明实施例提供的一种轻量级增量数据同步方法的流程图;图2是本发明实施例提供的一种轻量级增量数据同步装置的逻辑框图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本发明提供的一种轻量级增量数据同步方法及装置,运用quartz任务调度框架灵活配置同步任务,通过设置触发器机制获得增量数据,结合自定义同步时间的调度任务,实现数据从源数据库同步到目标数据库,解决了小微型系统的数据同步共享问题,;本发明的适用场景如下:场景一:某系统需要在两个单位部署,a单位是系统的使用者和数据产生者,b单位是上一级单位只需查阅数据,以上场景可用本发明将a单位的数据按规定时间同步到b单位系统数据库。场景二:a系统和b系统是两个关联的系统,但是数据库相互独立的,b系统需要a系统的部分数据做业务分析。以上场景就可以使用本发明将a系统的部分数据同步到b系统的数据库。下面通过具体的实施例对本发明提供的轻量级增量数据同步方法及装置作进一步详细说明。图1是本实施例提供的一种轻量级增量数据同步方法的流程图,参见图1,该同步方法包括以下步骤:s100:监听源数据库的数据变更事件,获取源数据库中的增量数据并将其插入增量数据表中;该数据变更事件包括插入数据、删除数据和更新数据,源数据库中包含至少一个源数据表,目标数据库中具有一个与该源数据表对应的目标数据表;通过各监听源数据表中的数据变更事件,当任一源数据表中插入了增量数据后,首先读取该源数据表中的该增量数据并将其存放在建立的增量数据表中;表1是本实施例提供的增量数据表的字段信息;表1增量数据表字段信息字段名中文备注类型p_id自增字段数值dest_table目标表名称字符型action_flag标识字符型action_value字段值字符型如表1所示,本实施例按目标数据表的名称、增量数据的标识(insert、delete)和字段值记录增量数据,通过dest_table字段区分不同的目标数据表。s200:解析预先配置的同步任务以读取所述增量数据表中的增量数据;表2是本实施例提供的同步任务xml的属性信息,本实施例中的同步任务包括作业编号、自定义的任务执行时间、查询增量数据sql以及目标数据表的名称、字段、主键和修改字段;通过读取同步任务中的查询增量数据sql来获取增量数据表中的增量数据。表2同步任务xml属性信息s300:根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;按照增量数据表中记录的增量数据的标识、增量数据的字段值以及同步任务xml中的目标表的名称和字段组成得到增量数据的执行语句,根据执行时间按组合得到的执行语句在目标数据库中执行。比如:获取增量数据的标识:insert标识和delete标识;按标识组合insert语句和delete语句在目标端执行,组合见下例:例1:insertintotable_name(field1,field2,...fieldn)values(value1,value2,...valuen);例2:deletefromtable_name[whereclause]步骤400:执行成功则删除已增量数据表中已同步的增量数据,执行失败则记录异常页面告警;步骤500:记录同步任务执行的关键点日志便于任务跟踪和异常分析。本实施例提供了一种轻量级增量数据同步的装置,该装置可以采用软件和/或硬件的方式实现,并可集成在电子设备上;具体的,该装置包括监听模块、解析模块和同步模块;监听模块用于监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;增量数据表中的字段信息包括自增字段、目标数据表的名称、增量数据的标识和字段值;增量数据的标识包括insert标识和delete标识;通过dest_table字段区分不同的目标数据表;本实施例中,监听模块采用基于数据库触发机制的表触发器实现,该表触发器包括insert、update、delete三种类型。基于触发器机制获取源数据库表中的增量数据,并为该增量数据设置对应的标识(insert、update、delete)进行区分。解析模块用于解析预先配置的同步任务以读取所述增量数据表中的增量数据;本实施例中,同步任务包括作业编号、自定义的任务执行时间、查询增量数据sql以及目标数据表的名称、字段、主键和修改字段;通过读取同步任务中的查询增量数据sql来读取增量数据表中的增量数据。同步模块用于根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;本实施例中,同步模块按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句,根据执行时间按组合得到的执行语句在目标数据库中执行。执行成功,同步模块删除已增量数据表中已同步的增量数据;同步执行失败,同步模块则记录异常页面告警。本实施例还提供了一种计算机可读介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行上述轻量级增量数据同步方法的步骤。计算机可读介质的类型包括但不限于sd卡、u盘、固定硬盘、移动硬盘等存储介质。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1