【技术实现步骤摘要】
数据对账方法、装置、电子设备及存储介质
[0001]本申请涉及数据处理
,尤其涉及一种数据对账方法、装置、电子设备及存储介质。
技术介绍
[0002]随着大数据技术的不断发展,数据库之间进行数据交换的需求越来越迫切,或文件服务器之间进行文件交换的需求也越来越迫切,ETL(Extract
‑
Transform
‑
Load,一种数据仓库技术,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)工具也得到了前所未有的广阔应用。
[0003]针对数据交换场景,由于不同的部门(比如不同省份的部门)之间往往存在着网络隔离,针对网络隔离的不同部门,一般是借助中心库的能力进行数据交换的。其中,数据交换的准确性和一致性,是保障交换后续业务正常进行的必要条件之一,因此,在数据交换后,需要跨网关进行数据对账,即跨网关对源数据库和目的数据库中同步的业务数据进行数据对账。
[0004]相关技术中,在数据交换完成后,从目的数据库中抽取某个批次的业务数据,并将抽取的业务数据与中心库对应批次的业务数据进行数据对账。
[0005]然而该对账方式,对目的数据库的侵入性较强,需要在目的数据库中存储额外的批次字段,而该批次字段往往与实际业务无关。
技术实现思路
[0006]本申请的目的旨在至少在一定程度上解决上述技术问题之一。
[0007]为此,本申请提出了一种数据对账方法、装置、电子设备及存储介质,以实现由中 ...
【技术保护点】
【技术特征摘要】
1.一种数据对账方法,其特征在于,所述方法包括:响应于探测到目标交换任务,读取第一消息队列的第一偏移值;其中,所述第一偏移值用于指示所述第一消息队列中当前最后一个写入的对象的存储位置;所述目标交换任务用于通过所述第一消息队列在源端和目的端之间交换对象;响应于探测到所述目标交换任务结束,从所述第一消息队列读取第二偏移值;其中,第二偏移值用于指示所述目标交换任务中的末尾对象在所述第一消息队列中的存储位置;根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,以得到对账结果。2.根据权利要求1所述的方法,其特征在于,所述对象为业务数据,所述源端为源数据库,所述目的端为目的数据库;所述根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,包括:响应于所述目标交换任务的任务类型为全量交换,根据所述第一偏移值和所述第二偏移值,从所述第一消息队列中抽取第一业务数据流;其中,所述第一业务数据流中的各第一业务数据对应的偏移值处于所述第一偏移值和所述第二偏移值之间;从所述目的数据库中抽取第二业务数据流;其中,所述第二业务数据流中包括所述目的数据库中所有的第二业务数据;对所述第一业务数据流和所述第二业务数据流进行数据对账,以得到对账结果。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,还包括:从所述源数据库中抽取第三业务数据流;其中,所述第三业务数据流中包括所述源数据库中所有的第三业务数据;对所述第一业务数据流和所述第三业务数据流进行数据对账,以得到对账结果。4.根据权利要求1所述的方法,其特征在于,所述对象为业务数据,所述源端为源数据库,所述目的端为目的数据库;所述根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,包括:响应于所述目标交换任务的任务类型为增量交换,根据所述第一偏移值,从所述第一消息队列中查询与所述第一偏移值匹配的业务数据的第一业务时间戳;根据所述第二偏移值,从所述第一消息队列中查询与所述第二偏移值匹配的业务数据的第二业务时间戳;根据所述第一业务时间戳和所述第二业务时间戳,从所述源数据库中抽取第四业务数据流,并从所述目的数据库中抽取第五业务数据流;对所述第四业务数据流和所述第五业务数据流进行数据对账,以得到对账结果;其中,所述第四业务数据流中的各第四业务数据的业务时间戳处于所述第一业务时间戳和所述第二业务时间戳之间,所述第五业务数据流中的各第五业务数据的业务时间戳处于所述第一业务时间戳和所述第二业务时间戳之间。5.根据权利要求1所述的方法,其特征在于,所述对象为业务数据,所述源端为源数据库,所述目的端为目的数据库;
所述方法还包括:响应于所述目标交换任务未结束,根据所述第一偏移值,从所述第一消息队列中抽取第六业务数据流;其中,所述第六业务数据流中的各第六业务数据对应的偏移值大于所述第一偏移值;根据第三偏移值,从第二消息队列抽取第七业务数据流;其中,所述第三偏移值用于指示所述目标交换任务开启前所述第二消息队列中最后一条写入的业务数据的存储位置,所述第七业务数据流中的各第七业务数据是响应于探测到所述目标交换任务,从所述目的数据库中获取的发生更新的业务数据;对所述第六业务数据流和所述第七业务数据流进行数据对账,以得到对账结果。6.根据权利要求2
‑
5中任一项所述的方法,其特征在于,所述对所述第一业务数据流和所述第二业务数据流进行数据对账,以得到对账结果,包括:每当到达设定周期,采用第一设定时间长度的第一滑动窗口,对所述第一业务数据流和所述第二业务数据流进行截取;其中,所述第一滑动窗口以第二设定时间长度进行滑动;将截取到的处于所述第一滑动窗口内的第一业务数据和第二业务数据进行对账,以得到对账结果。7.根据权利要求6所述的方法,其特征在于,所述将截取到的处于所述第一滑动窗口内的第一业务数据和第二业务数据进行对账,以得到对账结果,包括:将所述第一滑动窗口内数据标识匹配的第一业务数据和第二业务数据建立关联关系;将具有关联关系的第一业务数据和第二业务数据的业务字段进行比对,并将所述具有关联关系的第一业务数据和第二业务数据的业务时间戳进行比对;在所述具有关联关系的第一业务数据和第二业务数据的业务字段不匹配,和/或,所述具有关联关系的第一业务数据和第二业务数据的业务时间戳不匹配的情况下,根据所述具有关联关系的第一业务数据和第二业务数据,生成第一对账结果;其中,所述第一对账结果,用于指示所述目的数据库中所述具有关联关系的第二业务数据与所述源数据库中所述具有关联关系的第一业务数据不匹配。8.根据权利要求7所述的方法,其特征在于,所述将截取到的处于所述第一滑动窗口内的第一业务数据和第二业务数据进行对账,以得到对账结果,还包括:响应于所述第一滑动窗口内存在未建立关联关系的第一业务数据,根据所述未建立关联关系的第一业务数据,生成第二对账结果;响应于所述第一滑动窗口内存在未建立关联关系的第二业务数据,根据所述未建立关联关系的第二业务数据,生成第三对账结果;其中,所述第二对账结果,用于指示所述目的数据库中缺少所述未建立关联关系的第一业务数据;所述第三对账结果,用于指示所述目的数据库中多出所述未建立关联关系的第二业务数据。9.根据权利要求8所述的方法,其特征在于,所述方法,还包括:基于所述第一对账结果,根据所述具有关联关系的第一业务数据,对所述目的数据库中所述具有关联关系的第二业务数据进行更新;和/或,
基于所述第二对账结果,将所述未建立关联关系的第一业务数据写入所述目的数据库;和/或,基于所述第三对账结果,将所述目的数据库中所述未建立关联关系的第二业务数据删除。10.根据权利要求1
‑
5中任一项所述的方法,其特征在于,所述目标交换任务包括第一交换任务和第二交换任务;响应于探测到目标交换任务,所述方法还包括:向与所述源端对应的第一...
【专利技术属性】
技术研发人员:周鹏程,
申请(专利权)人:杭州数梦工场科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。