数据对账方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38603965 阅读:14 留言:0更新日期:2023-08-26 23:36
本申请提出了一种数据对账方法、装置、电子设备及存储介质,涉及数据处理技术领域,方法包括:响应于探测到目标交换任务,读取第一消息队列的第一偏移值;响应于探测到目标交换任务结束,从第一消息队列读取第二偏移值;根据第一偏移值和第二偏移值,对源端和目的端中与目标交换任务匹配的对象进行对账,以得到对账结果。由此,可以实现由中控节点存储对象交换(如数据交换、文件交换)前后第一消息队列的偏移值,并根据对象交换前后第一消息队列的偏移值进行数据对账,而无需在目的端中存储额外的批次字段,可以降低对目的端的侵入性。可以降低对目的端的侵入性。可以降低对目的端的侵入性。

【技术实现步骤摘要】
数据对账方法、装置、电子设备及存储介质


[0001]本申请涉及数据处理
,尤其涉及一种数据对账方法、装置、电子设备及存储介质。

技术介绍

[0002]随着大数据技术的不断发展,数据库之间进行数据交换的需求越来越迫切,或文件服务器之间进行文件交换的需求也越来越迫切,ETL(Extract

Transform

Load,一种数据仓库技术,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)工具也得到了前所未有的广阔应用。
[0003]针对数据交换场景,由于不同的部门(比如不同省份的部门)之间往往存在着网络隔离,针对网络隔离的不同部门,一般是借助中心库的能力进行数据交换的。其中,数据交换的准确性和一致性,是保障交换后续业务正常进行的必要条件之一,因此,在数据交换后,需要跨网关进行数据对账,即跨网关对源数据库和目的数据库中同步的业务数据进行数据对账。
[0004]相关技术中,在数据交换完成后,从目的数据库中抽取某个批次的业务数据,并将抽取的业务数据与中心库对应批次的业务数据进行数据对账。
[0005]然而该对账方式,对目的数据库的侵入性较强,需要在目的数据库中存储额外的批次字段,而该批次字段往往与实际业务无关。

技术实现思路

[0006]本申请的目的旨在至少在一定程度上解决上述技术问题之一。
[0007]为此,本申请提出了一种数据对账方法、装置、电子设备及存储介质,以实现由中控节点存储对象交换(如数据交换、文件交换)前后第一消息队列的偏移值,并根据对象交换前后第一消息队列的偏移值进行数据对账,而无需在目的端中存储额外的批次字段,可以降低对目的端的侵入性。
[0008]本申请第一方面实施例提出了一种数据对账方法,包括:
[0009]响应于探测到目标交换任务,读取第一消息队列的第一偏移值;其中,所述第一偏移值用于指示所述第一消息队列中当前最后一个写入的对象的存储位置;所述目标交换任务用于通过所述第一消息队列在源端和目的端之间交换对象;
[0010]响应于探测到所述目标交换任务结束,从所述第一消息队列读取第二偏移值;其中,第二偏移值用于指示所述目标交换任务中的末尾对象在所述第一消息队列中的存储位置;
[0011]根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,以得到对账结果。
[0012]本申请第二方面实施例提出了一种数据对账装置,包括:
[0013]第一读取模块,用于响应于探测到目标交换任务,读取第一消息队列的第一偏移
值;其中,所述第一偏移值用于指示所述第一消息队列中当前最后一个写入的对象的存储位置;所述目标交换任务用于通过所述第一消息队列在源端和目的端之间交换对象;
[0014]第二读取模块,用于响应于探测到所述目标交换任务结束,从所述第一消息队列读取第二偏移值;其中,第二偏移值用于指示所述目标交换任务中的末尾对象在所述第一消息队列中的存储位置;
[0015]对账模块,用于根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,以得到对账结果。
[0016]本申请第三方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的数据对账方法。
[0017]本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据对账方法。
[0018]本申请第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本申请上述第一方面所述的数据对账方法。
[0019]本申请的实施例提供的技术方案至少带来以下有益效果:
[0020]通过在探测到目标交换任务时,读取第一消息队列的第一偏移值,并在探测到目标交换任务结束时,从第一消息队列读取第二偏移值;根据第一偏移值和第二偏移值,对源端和目的端中与目标交换任务匹配的对象进行对账,以得到对账结果。由此,可以实现由中控节点存储数据交换前后第一消息队列的偏移值,并根据对象交换(如数据交换、文件交换)前后第一消息队列的偏移值进行数据对账,而无需在目的端中存储额外的批次字段,可以降低对目的端的侵入性。
[0021]本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
[0022]本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0023]图1为本申请实施例提供的一种数据对账方法的流程示意图;
[0024]图2为本申请实施例提供的另一种数据对账方法的流程示意图;
[0025]图3为本申请实施例提供的另一种数据对账方法的流程示意图;
[0026]图4为本申请实施例提供的另一种数据对账方法的流程示意图;
[0027]图5为本申请实施例提供的另一种数据对账方法的流程示意图;
[0028]图6为本申请实施例提供的另一种数据对账方法的流程示意图;
[0029]图7为本申请实施例所提供的数据对账系统的架构示意图;
[0030]图8为本申请实施例所提供的业务数据流示意图;
[0031]图9为本申请所提供的文件的存储格式示意图;
[0032]图10为本申请实施例提供的另一种数据对账方法的流程示意图;
[0033]图11为本申请实施例提供的另一种数据对账方法的流程示意图;
[0034]图12为根据本申请一个实施例的数据对账装置的结构示意图;
[0035]图13为根据本申请一个实施例的电子设备的结构示意图。
具体实施方式
[0036]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0037]目前,在数据交换场景中,可以通过以下三种方式,来实现跨网关的数据对账:
[0038]第一种,在数据交换完成后,通过获取同步的数据量与中心库对应批次的数据量进行比较的方式,来进行数据对账。
[0039]第二种,分别抽取源数据库与目的数据库中的业务数据至对账库,并进行数据对账。
[0040]第三种,从目的数据库中抽取某个批次的业务数据,并将抽取的业务数据与中心库对应批次的业务数据进行数据对账。
[0041]然而第一种方式,仅对数据量进行比较,来确定源数据库和目的数据库中交换的业务数据是否一致,无法确定目的数据库中是否存在丢失或多余的业务数据。
[0042]第二种方式,当数据量或者对账任务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据对账方法,其特征在于,所述方法包括:响应于探测到目标交换任务,读取第一消息队列的第一偏移值;其中,所述第一偏移值用于指示所述第一消息队列中当前最后一个写入的对象的存储位置;所述目标交换任务用于通过所述第一消息队列在源端和目的端之间交换对象;响应于探测到所述目标交换任务结束,从所述第一消息队列读取第二偏移值;其中,第二偏移值用于指示所述目标交换任务中的末尾对象在所述第一消息队列中的存储位置;根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,以得到对账结果。2.根据权利要求1所述的方法,其特征在于,所述对象为业务数据,所述源端为源数据库,所述目的端为目的数据库;所述根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,包括:响应于所述目标交换任务的任务类型为全量交换,根据所述第一偏移值和所述第二偏移值,从所述第一消息队列中抽取第一业务数据流;其中,所述第一业务数据流中的各第一业务数据对应的偏移值处于所述第一偏移值和所述第二偏移值之间;从所述目的数据库中抽取第二业务数据流;其中,所述第二业务数据流中包括所述目的数据库中所有的第二业务数据;对所述第一业务数据流和所述第二业务数据流进行数据对账,以得到对账结果。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,还包括:从所述源数据库中抽取第三业务数据流;其中,所述第三业务数据流中包括所述源数据库中所有的第三业务数据;对所述第一业务数据流和所述第三业务数据流进行数据对账,以得到对账结果。4.根据权利要求1所述的方法,其特征在于,所述对象为业务数据,所述源端为源数据库,所述目的端为目的数据库;所述根据所述第一偏移值和所述第二偏移值,对所述源端和所述目的端中与所述目标交换任务匹配的对象进行对账,包括:响应于所述目标交换任务的任务类型为增量交换,根据所述第一偏移值,从所述第一消息队列中查询与所述第一偏移值匹配的业务数据的第一业务时间戳;根据所述第二偏移值,从所述第一消息队列中查询与所述第二偏移值匹配的业务数据的第二业务时间戳;根据所述第一业务时间戳和所述第二业务时间戳,从所述源数据库中抽取第四业务数据流,并从所述目的数据库中抽取第五业务数据流;对所述第四业务数据流和所述第五业务数据流进行数据对账,以得到对账结果;其中,所述第四业务数据流中的各第四业务数据的业务时间戳处于所述第一业务时间戳和所述第二业务时间戳之间,所述第五业务数据流中的各第五业务数据的业务时间戳处于所述第一业务时间戳和所述第二业务时间戳之间。5.根据权利要求1所述的方法,其特征在于,所述对象为业务数据,所述源端为源数据库,所述目的端为目的数据库;
所述方法还包括:响应于所述目标交换任务未结束,根据所述第一偏移值,从所述第一消息队列中抽取第六业务数据流;其中,所述第六业务数据流中的各第六业务数据对应的偏移值大于所述第一偏移值;根据第三偏移值,从第二消息队列抽取第七业务数据流;其中,所述第三偏移值用于指示所述目标交换任务开启前所述第二消息队列中最后一条写入的业务数据的存储位置,所述第七业务数据流中的各第七业务数据是响应于探测到所述目标交换任务,从所述目的数据库中获取的发生更新的业务数据;对所述第六业务数据流和所述第七业务数据流进行数据对账,以得到对账结果。6.根据权利要求2

5中任一项所述的方法,其特征在于,所述对所述第一业务数据流和所述第二业务数据流进行数据对账,以得到对账结果,包括:每当到达设定周期,采用第一设定时间长度的第一滑动窗口,对所述第一业务数据流和所述第二业务数据流进行截取;其中,所述第一滑动窗口以第二设定时间长度进行滑动;将截取到的处于所述第一滑动窗口内的第一业务数据和第二业务数据进行对账,以得到对账结果。7.根据权利要求6所述的方法,其特征在于,所述将截取到的处于所述第一滑动窗口内的第一业务数据和第二业务数据进行对账,以得到对账结果,包括:将所述第一滑动窗口内数据标识匹配的第一业务数据和第二业务数据建立关联关系;将具有关联关系的第一业务数据和第二业务数据的业务字段进行比对,并将所述具有关联关系的第一业务数据和第二业务数据的业务时间戳进行比对;在所述具有关联关系的第一业务数据和第二业务数据的业务字段不匹配,和/或,所述具有关联关系的第一业务数据和第二业务数据的业务时间戳不匹配的情况下,根据所述具有关联关系的第一业务数据和第二业务数据,生成第一对账结果;其中,所述第一对账结果,用于指示所述目的数据库中所述具有关联关系的第二业务数据与所述源数据库中所述具有关联关系的第一业务数据不匹配。8.根据权利要求7所述的方法,其特征在于,所述将截取到的处于所述第一滑动窗口内的第一业务数据和第二业务数据进行对账,以得到对账结果,还包括:响应于所述第一滑动窗口内存在未建立关联关系的第一业务数据,根据所述未建立关联关系的第一业务数据,生成第二对账结果;响应于所述第一滑动窗口内存在未建立关联关系的第二业务数据,根据所述未建立关联关系的第二业务数据,生成第三对账结果;其中,所述第二对账结果,用于指示所述目的数据库中缺少所述未建立关联关系的第一业务数据;所述第三对账结果,用于指示所述目的数据库中多出所述未建立关联关系的第二业务数据。9.根据权利要求8所述的方法,其特征在于,所述方法,还包括:基于所述第一对账结果,根据所述具有关联关系的第一业务数据,对所述目的数据库中所述具有关联关系的第二业务数据进行更新;和/或,
基于所述第二对账结果,将所述未建立关联关系的第一业务数据写入所述目的数据库;和/或,基于所述第三对账结果,将所述目的数据库中所述未建立关联关系的第二业务数据删除。10.根据权利要求1

5中任一项所述的方法,其特征在于,所述目标交换任务包括第一交换任务和第二交换任务;响应于探测到目标交换任务,所述方法还包括:向与所述源端对应的第一...

【专利技术属性】
技术研发人员:周鹏程
申请(专利权)人:杭州数梦工场科技有限公司
类型:发明
国别省市:

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

1