可左右滑动选省市

对账数据处理方法、设备、存储介质及程序产品

更新时间:2024-09-01
对账数据处理方法、设备、存储介质及程序产品 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:对账数据处理方法、设备、存储介质及程序产品

专利类型:实用新型专利

专利申请号:CN202210011846.X

专利申请(专利权)人:京东科技控股股份有限公司
权利人地址:北京市北京经济技术开发区科创十一街18号C座2层221室

专利发明(设计)人:高松源

专利摘要:本申请实施例提供一种对账数据处理方法、设备、存储介质及程序产品,通过获取当前对账任务的对账配置信息,包括对账双方的数据源信息、待对账字段及对账类型,对账类型包括采用非脚本对账或采用脚本对账;若确定当前对账任务采用非脚本对账,则通过应用程序根据对账双方的数据源信息及待对账字段执行当前对账任务;若确定当前对账任务采用脚本对账,则根据对账双方的数据源信息、待对账字段及预设脚本模板生成对账脚本,运行对账脚本以执行当前对账任务。通过配置对账配置信息对不同对账任务分别采用不同的对账方法,适用于不同对账场景,不需要针对不同的对账需求分别人工编写程序代码,且扩展性较好,可提高对账效率,避免浪费资源和人力成本。

主权利要求:
1.一种对账数据处理方法,其特征在于,包括:
获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账;
若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务;
若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务;
所述根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务,包括:根据所述对账双方的数据源信息以及待对账字段生成提取数据的结构化查询语言sql语句,并将所述sql语句加入到所述预设脚本模板中,生成所述对账脚本;其中,所述预设脚本模板中包括对提取的数据进行对比的预设指令、将对账双方提取的数据进行排序并分别存储在临时表的预设指令以及对对账双方的临时表的数据进行比对的预设指令;
执行所述对账脚本,以通过所述sql语句从所述对账双方的数据源中分别提取所述待对账字段的对应数据;通过所述预设脚本模板中的预设指令,分别将所述对账双方的所述待对账字段的对应数据按照预定规则排序后存储在不同的第一临时表中,基于所述对账双方的临时表进行对比,查找差异数据。
2.根据权利要求1所述的方法,其特征在于,所述通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务,包括:通过应用程序根据所述对账双方的数据源信息以及待对账字段,从所述对账双方的数据源中分别提取所述待对账字段的对应数据;
对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据。
3.根据权利要求2所述的方法,其特征在于,所述对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据,包括:对所述对账双方的所述待对账字段的对应数据分别进行哈希计算,得到所述对账双方的所述待对账字段的对应数据的哈希值;
若所述对账双方的所述待对账字段的对应数据的哈希值不同,则对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据。
4.根据权利要求1所述的方法,其特征在于,所述基于所述对账双方的第一临时表进行对比,查找差异数据,包括:通过二分法对所述对账双方的第一临时表进行对比,查找差异数据。
5.根据权利要求4所述的方法,其特征在于,所述通过二分法对所述对账双方的第一临时表进行对比,查找差异数据,包括:按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算,得到所述对账双方所读取的部分数据的哈希值;其中所读取的部分数据的条数为所述第一临时表中数据总条数的二分之一;
若所述对账双方所读取的部分数据的哈希值不相同,则分别将所述对账双方所读取的部分数据存储在不同的第二临时表中,再按照排序从所述对账双方的第二临时表中读取部分数据,并分别进行哈希计算,得到所述对账双方所读取的部分数据的哈希值;其中所读取的部分数据的条数为所述第二临时表中数据总条数的二分之一;重复上述过程直至最后的临时表中只剩一条数据,将该条数据确定为差异数据;或者若所述对账双方所读取的部分数据的哈希值相同,按照排序从所述对账双方的第一临时表中读取其余的部分数据,重复上述过程查找差异数据。
6.根据权利要求5所述的方法,其特征在于,所述按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算,包括:对所述对账双方的第一临时表的数据,进行哈希计算,得到所述对账双方的第一临时表的哈希值;
若所述对账双方的第一临时表的哈希值不相同,则按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算。
7.根据权利要求1所述的方法,其特征在于,所述分别将所述对账双方的所述待对账字段的对应数据按照预定规则排序后存储在不同的第一临时表中,包括:分别将所述对账双方的所述待对账字段的对应数据按照任一待对账字段排序后存储在不同的第一临时表中。
8.一种对账数据处理设备,其特征在于,包括:
获取模块,用于获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账;
程序对账模块,用于若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务;
脚本对账模块,用于若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务;
所述脚本对账模块在根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务,用于:根据所述对账双方的数据源信息以及待对账字段生成提取数据的结构化查询语言sql语句,并将所述sql语句加入到所述预设脚本模板中,生成所述对账脚本;其中,所述预设脚本模板中包括对提取的数据进行对比的预设指令、将对账双方提取的数据进行排序并分别存储在临时表的预设指令以及对对账双方的临时表的数据进行比对的预设指令;
执行所述对账脚本,以通过所述sql语句从所述对账双方的数据源中分别提取所述待对账字段的对应数据;通过所述预设脚本模板中的预设指令,分别将所述对账双方的所述待对账字段的对应数据按照预定规则排序后存储在不同的第一临时表中,基于所述对账双方的临时表进行对比,查找差异数据。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1‑7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1‑7任一项所述的方法。
11.一种计算机程序产品,包括计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1‑7任一项所述的方法。 说明书 : 对账数据处理方法、设备、存储介质及程序产品技术领域[0001] 本申请实施例涉及大数据技术领域,尤其涉及一种对账数据处理方法、设备、存储介质及程序产品。背景技术[0002] 在会计核算中,为保证账簿记录的正确可靠,需要对账簿的数据记录进行检查和核对的工作,以确保数据准确,排查重复支付、错误支付等差异数据。[0003] 在相关技术中,通常需要根据对账需求来编写程序代码,在应用程序中运行程序代码实现对账。由于每一个对账需求的对账双方的数据源和对账方案是固定的,因此通常会对每一个对账需求开发一个程序代码,当对账需求修改时,则需要及时修改程序代码,其维护成本较高,且扩展性较差,如有新增的对账需求,需要再次开发程序代码,效率低下,且浪费资源和人力成本。发明内容[0004] 本申请实施例提供一种对账数据处理方法、设备、存储介质及程序产品,用以提高对账效率,避免浪费资源和人力成本。[0005] 第一方面,本申请实施例提供一种对账数据处理方法,包括:[0006] 获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账;[0007] 若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务;[0008] 若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务。[0009] 第二方面,本申请实施例提供一种对账数据处理设备,包括:[0010] 获取模块,用于获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账;[0011] 程序对账模块,用于若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务;[0012] 脚本对账模块,用于若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务。[0013] 第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器;以及存储器;[0014] 所述存储器存储计算机执行指令;[0015] 所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面所述的方法。[0016] 第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面所述的方法。[0017] 第五方面,本申请实施例提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第一方面所述的方法。[0018] 本申请实施例提供的对账数据处理方法、设备、存储介质及程序产品,通过获取当前对账任务的对账配置信息,对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,对账类型包括采用非脚本对账或采用脚本对账;若根据对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据对账双方的数据源信息以及待对账字段执行当前对账任务;若根据对账类型确定当前对账任务采用脚本对账,则根据对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行对账脚本,以执行当前对账任务。本申请实施例中通过配置对账配置信息可对小数据量和大数据量的对账任务分别采用不同的对账方法,适用于不同数据量的对账场景,不需要针对不同的对账需求分别人工编写程序代码,且对于对账需求修改或者新增对账需求时无需修改或再次开发程序代码,扩展性较好,可以实现快速对账,提高对账效率,避免浪费资源和人力成本。附图说明[0019] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。[0020] 图1为本申请一实施例提供的对账数据处理方法的应用场景示意图;[0021] 图2为本申请一实施例提供的对账数据处理方法的流程图;[0022] 图3为本申请另一实施例提供的对账数据处理方法的流程图;[0023] 图4为本申请另一实施例提供的对账数据处理方法的流程图;[0024] 图5为本申请另一实施例提供的对账数据处理方法的流程图;[0025] 图6为本申请另一实施例提供的对账数据处理方法的流程图;[0026] 图7为本申请一实施例提供的对账数据处理设备的结构图;[0027] 图8为本申请一实施例提供的电子设备的结构图。[0028] 通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。具体实施方式[0029] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。[0030] 在会计核算中,为保证账簿记录的正确可靠,需要对账簿的数据记录进行检查和核对的工作,以确保数据准确,排查重复支付、错误支付等差异数据。[0031] 相关技术中,通常需要根据对账需求来编写程序代码,在应用程序中运行程序代码实现对账。由于每一个对账需求的对账双方的数据源和对账方案是固定的,因此通常会对每一个对账需求开发一个程序代码,当对账需求修改时,则需要及时修改程序代码,其维护成本较高,且扩展性较差,如有新增的对账需求,需要再次开发程序代码,效率低下,且浪费资源和人力成本。[0032] 为了解决上述技术问题,本申请实施例中针对当前对账任务,通过对账配置信息来对对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账进行配置,进而基于对账配置信息来通过应用程序或对账脚本来完成当前对账任务,对于对账需求修改或者新增对账需求时无需修改或再次开发程序代码,扩展性较好,可以实现快速对账,提高对账效率,避免浪费资源和人力成本;并且针对小数据量对账可采用应用程序直接对账,针对大数据量通过对账脚本来快速对账,从而可以适用于不同数据量的对账场景。[0033] 本申请实施例具体的应用场景如图1所示,包括小数据量对账场景中的数据存储设备110、111,大数据量对账场景中的数据存储设备120、121,以及服务器130,小数据量对账场景中的数据存储设备110、111以及大数据量对账场景中的数据存储设备120、121用于存储并作为数据源为服务器130提供数据,服务器130可获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账;若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务;若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务。[0034] 下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。[0035] 图2为本申请实施例提供的对账数据处理方法流程图。本实施例提供了一种对账数据处理方法,其执行主体为终端设备或服务器等电子设备,该对账数据处理方法具体步骤如下:[0036] S201、获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账。[0037] 在本实施例中,可以根据对账需求确定当前对账任务的对账配置信息,其中,对账配置信息中的对账双方的数据源信息用于指示对账双方的数据源,例如对账双方所在的数据库、表格、或者存储地址等等,待对账字段在用于指示需要对账的字段,对账类型用于指示是否采用脚本对账,其中非脚本对账是采用应用程序进行对账,运行预先写好的代码对数据逐一对比,而脚本对账则需要先生成对账脚本,基于对账脚本来完成对账。作为示例,对账配置信息可如下表一所示:[0038] 表一[0039][0040] 其中,根据对账任务1的对账配置信息可知,需要采用非脚本对账将对账源的表A中的Name1字段及Value1字段分别和对账目标的表B中的Name2字段及Value2字段的数据进行对比,对账任务2同理,此处不再赘述。[0041] 进一步的,根据对账类型确定当前对账任务采用非脚本对账,或采用脚本对账,其中采用非脚本对账可执行下述S202的步骤,采用脚本对账可执行下述S203的步骤。[0042] S202、若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务。[0043] 在本实施例中,非脚本对账可适用于小数据量的对账,需要在应用程序中直接根据对账配置信息进行对账,应用程序预先进行程序代码的编写,但可通过配置对账配置信息,从而适用于不同的数据源以及不同的待对账字段。[0044] 在一种可选实施例中,如图3所示,上述的S202具体可包括:[0045] S2021、通过应用程序根据所述对账双方的数据源信息以及待对账字段,从所述对账双方的数据源中分别提取所述待对账字段的对应数据;[0046] S2022、对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据。[0047] 在本实施例中,可通过应用程序运行预先写好的程序代码根据对账双方的数据源信息以及待对账字段,从对账双方的数据源中分别提取待对账字段的对应数据,并进行存储,例如存储成key‑value的键值对形式存在内存中,再通过遍历的方式对所存储的数据进行逐一对比,查找其中的差异数据,并进行记录,便于后续查询、调账,此外还可记录本次对账成功条数和失败条数等统计数据。[0048] 可选的,考虑到不同的数据源中对应的字段名称可能不同,在提取到数据后可将不同的数据源中对应的字段名称进行统一,例如表一中的对账任务1,可将表A中的Name1字段重命名为字段a,表B中的Name2字段也重命名为字段a,表A中的Value1字段重命名为字段b,表B中的Value2字段也重命名为字段b,这样在对比时可将相同字段名称对应的数据进行对比。[0049] 当然,本实施例中也可采用其他的应用程序执行方式来实现非脚本对账,此处可不做限制。[0050] S203、若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务。[0051] 在本实施例中,脚本对账适用于大数据量对账,由于数据量过大,在应用程序中很难跑出来,无法进行有效对账,因此在大数据环境下,可采用对账脚本进行比较操作。本实施例中可针对对账配置信息中的对账双方的数据源信息、待对账字段以及预设脚本模板生成适用的对账脚本,并上传到大数据环境下运行对账脚本,完成当前对账任务。[0052] 在一种可选实施例中,如图4所示,上述的S203具体可包括:[0053] S2031、根据所述对账双方的数据源信息以及待对账字段生成提取数据的sql语句,并将所述sql语句加入到所述预设脚本模板中,生成所述对账脚本;[0054] S2032、执行所述对账脚本,以通过所述sql语句从所述对账双方的数据源中分别提取所述待对账字段的对应数据;通过所述预设脚本模板中的预设指令,分别将所述对账双方的所述待对账字段的对应数据按照预定规则排序后存储在不同的第一临时表中,基于所述对账双方的临时表进行对比,查找差异数据。[0055] 在本实施例中,可根据对账双方的数据源信息以及待对账字段生成从数据源中提取数据的sql(StructuredQueryLanguage,结构化查询语言)语句,并将sql语句加入到预设脚本模板中,其中预设脚本模板中还包括对提取的数据进行对比的预设指令,其中一种预设指令为将对账双方提取的数据进行排序、分别存储在临时表、以及对对账双方的临时表的数据进行比对的指令,当然也可包括其他的预设指令。进一步的,在生成对账脚本后,则可执行对账脚本,基于对账脚本中的sql语句从对账双方的数据源中分别提取待对账字段的对应数据;通过对账脚本中的预设指令,分别将对账双方提取的数据按照预定规则排序后存储在不同的第一临时表中,基于对账双方的临时表进行对比,查找差异数据。[0056] 需要说明的是,为了保证对账双方的第一临时表的可比性,对账双方的第一临时表需要采用相同的预定规则排序,可选的,可分别将对账双方的待对账字段的对应数据按照任一待对账字段排序后存储在不同的第一临时表中。[0057] 当然,本实施例中也可采用其他的脚本生成方式、以及脚本运行方式来实现脚本对账,此处可不做限制。[0058] 本实施例提供的对账数据处理方法,通过获取当前对账任务的对账配置信息,对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,对账类型包括采用非脚本对账或采用脚本对账;若根据对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据对账双方的数据源信息以及待对账字段执行当前对账任务;若根据对账类型确定当前对账任务采用脚本对账,则根据对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行对账脚本,以执行当前对账任务。本实施例中通过配置对账配置信息可对小数据量和大数据量的对账任务分别采用不同的对账方法,适用于不同数据量的对账场景,不需要针对不同的对账需求分别人工编写程序代码,且对于对账需求修改或者新增对账需求时无需修改或再次开发程序代码,扩展性较好,可以实现快速对账,提高对账效率,避免浪费资源和人力成本。[0059] 在上述实施例的基础上,如图5所示,在非脚本对账的情况中,S2022所述的对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据,可具体包括:[0060] S301、对所述对账双方的所述待对账字段的对应数据分别进行哈希计算,得到所述对账双方的所述待对账字段的对应数据的哈希值;[0061] S302、若所述对账双方的所述待对账字段的对应数据的哈希值不同,则对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据。[0062] 在本实施例中,在采用应用程序进行数据逐一比对时,可先对从对账双方提取的待对账字段的对应数据进行整体比较,也即,先对对账双方的待对账字段的对应数据分别进行哈希计算,若对账双方的待对账字段的对应数据的哈希值相同,则说明对账双方的待对账字段的对应数据完全相同,则不需要逐一进行比较;而若对账双方的待对账字段的对应数据的哈希值不同,则通过遍历对对账双方的待对账字段的对应数据之间进行逐一对比,查找差异数据。本实施例通过先整体比较,在确定对账双方的待对账字段的对应数据完全相同,不需要逐一进行比较,而在确定对账双方的待对账字段的对应数据不完全相同时再逐一进行比较,可有效的提高数据比较效率,节约计算资源。[0063] 在上述实施例的基础上,在脚本对账的情况中,预设脚本模板中对提取的数据进行对比的预设指令可以包括通过二分法查找差异数据的指令。因此S2032中所述的基于所述对账双方的第一临时表进行对比,查找差异数据,具体可包括:[0064] 通过二分法对所述对账双方的第一临时表进行对比,查找差异数据。[0065] 在本实施例中,考虑到二分法相对于逐一对比速度较快,且方法简单、能够保证收敛性和准确性,因此可采用二分法对对账双方的第一临时表进行对比,查找差异数据。如图6所示,具体过程可如下所示:[0066] 按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算,得到所述对账双方所读取的部分数据的哈希值;其中所读取的部分数据的条数为所述第一临时表中数据总条数的二分之一;[0067] 若所述对账双方所读取的部分数据的哈希值不相同,则分别将所述对账双方所读取的部分数据存储在不同的第二临时表中,再按照排序从所述对账双方的第二临时表中读取部分数据,并分别进行哈希计算,得到所述对账双方所读取的部分数据的哈希值;其中所读取的部分数据的条数为所述第二临时表中数据总条数的二分之一;重复上述过程直至最后的临时表中只剩一条数据,将该条数据确定为差异数据;或者[0068] 若所述对账双方所读取的部分数据的哈希值相同,按照排序从所述对账双方的第一临时表中读取其余的部分数据,重复上述过程查找差异数据。[0069] 在本实施例中,首先需要说明的是,为了保证对账双方的第一临时表的可比性,对账双方的第一临时表中的多条数据需要采用相同的预定规则排序。在此基础上,分别从对账双方的第一临时表读取部分数据,所读取的部分数据的条数为所述第一临时表中数据总条数的二分之一,并分别哈希计算,得到对账双方所读取部分数据的哈希值,也即对账源第一临时表所读取部分数据的哈希值和对账目标第一临时表所读取部分数据的哈希值,若这两个哈希值相同,则说明对账源第一临时表所读取部分数据与对账目标第一临时表所读取部分数据完全相同,此时可从对账双方的第一临时表读取其余部分数据采用上述相同的方法进行哈希值比较,若再次相同,则说明对账双方的第一临时表完全相同。[0070] 若对账源第一临时表所读取部分数据的哈希值和对账目标第一临时表所读取部分数据的哈希值不同,则说明对账源第一临时表所读取部分数据与对账目标第一临时表所读取部分数据并不完全相同,此时可将对账源第一临时表所读取部分数据与对账目标第一临时表所读取部分数据分别存储在不同的第二临时表中,再对第二临时表执行上述相同的方法,也即先从对账双方的第二临时表读取部分数据,所读取的部分数据的条数为第二临时表中数据总条数的二分之一,并分别哈希计算,得到对账双方所读取部分数据的哈希值,也即对账源第二临时表所读取部分数据的哈希值和对账目标第二临时表所读取部分数据的哈希值,若这两个哈希值相同,则说明对账源第二临时表所读取部分数据与对账目标第二临时表所读取部分数据完全相同,差异数据存在于对账双方的第二临时表的其余部分数据中,再从对账双方的第二临时表读取其余部分数据采用上述相同的方法进行哈希值比较;若对账源第二临时表所读取部分数据与对账目标第二临时表所读取部分数据的哈希值不同,则说明对账源第二临时表所读取部分数据与对账目标第二临时表所读取部分数据中存在差异数据,则此时再将对账源第二临时表所读取部分数据与对账目标第二临时表所读取部分数据分别存储在不同的第三临时表中,再对第三临时表执行上述相同的方法,以此类推,直至最后的临时表中只剩一条数据,将该条数据确定为差异数据。通过上述二分法的循环迭代过程,即可准确的确定出对账双方的差异数据。[0071] 在一种可选实施例中,在进行二分法之前,可先对所述对账双方的第一临时表的数据,进行哈希计算,得到所述对账双方的第一临时表的哈希值;若所述对账双方的第一临时表的哈希值相同,则说明对账双方的第一临时表完全相同,则不需要再进行二分法,可有效的提高对账效率;否则,若所述对账双方的第一临时表的哈希值不相同,则需要进行二分法,也即按照排序从对账双方的第一临时表中读取部分数据,并执行后续的对比过程,此处不再赘述。[0072] 图7为本申请实施例对账数据处理设备的结构图。本实施例提供的对账数据处理设备可以执行方法实施例提供的处理流程,如图7所示,所述对账数据处理设备700包括获取模块701、程序对账模块702、脚本对账模块703。[0073] 获取模块701,用于获取当前对账任务的对账配置信息,所述对账配置信息包括对账双方的数据源信息、待对账字段、以及对账类型,所述对账类型包括采用非脚本对账或采用脚本对账;[0074] 程序对账模块702,用于若根据所述对账类型确定当前对账任务采用非脚本对账,则通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务;[0075] 脚本对账模块703,用于若根据所述对账类型确定当前对账任务采用脚本对账,则根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务。[0076] 在本申请的一个或多个实施例中,所述程序对账模块702在通过应用程序根据所述对账双方的数据源信息以及待对账字段执行当前对账任务时,用于:[0077] 通过应用程序根据所述对账双方的数据源信息以及待对账字段,从所述对账双方的数据源中分别提取所述待对账字段的对应数据;[0078] 对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据。[0079] 在本申请的一个或多个实施例中,所述程序对账模块702在对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据时,用于:[0080] 对所述对账双方的所述待对账字段的对应数据分别进行哈希计算,得到所述对账双方的所述待对账字段的对应数据的哈希值;[0081] 若所述对账双方的所述待对账字段的对应数据的哈希值不同,则对所述对账双方的所述待对账字段的对应数据之间进行逐一对比,查找差异数据。[0082] 在本申请的一个或多个实施例中,所述脚本对账模块703在根据所述对账双方的数据源信息、待对账字段以及预设脚本模板生成对账脚本,并运行所述对账脚本,以执行当前对账任务时,用于:[0083] 根据所述对账双方的数据源信息以及待对账字段生成提取数据的sql语句,并将所述sql语句加入到所述预设脚本模板中,生成所述对账脚本;[0084] 执行所述对账脚本,以通过所述sql语句从所述对账双方的数据源中分别提取所述待对账字段的对应数据;通过所述预设脚本模板中的预设指令,分别将所述对账双方的所述待对账字段的对应数据按照预定规则排序后存储在不同的第一临时表中,基于所述对账双方的临时表进行对比,查找差异数据。[0085] 在本申请的一个或多个实施例中,所述脚本对账模块703在基于所述对账双方的第一临时表进行对比,查找差异数据时,用于:[0086] 通过二分法对所述对账双方的第一临时表进行对比,查找差异数据。[0087] 在本申请的一个或多个实施例中,所述脚本对账模块703在通过二分法对所述对账双方的第一临时表进行对比,查找差异数据时,用于:[0088] 按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算,得到所述对账双方所读取的部分数据的哈希值;其中所读取的部分数据的条数为所述第一临时表中数据总条数的二分之一;[0089] 若所述对账双方所读取的部分数据的哈希值不相同,则分别将所述对账双方所读取的部分数据存储在不同的第二临时表中,再按照排序从所述对账双方的第二临时表中读取部分数据,并分别进行哈希计算,得到所述对账双方所读取的部分数据的哈希值;其中所读取的部分数据的条数为所述第二临时表中数据总条数的二分之一;重复上述过程直至最后的临时表中只剩一条数据,将该条数据确定为差异数据;或者[0090] 若所述对账双方所读取的部分数据的哈希值相同,按照排序从所述对账双方的第一临时表中读取其余的部分数据,重复上述过程查找差异数据。在本申请的一个或多个实施例中,所述脚本对账模块703在按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算时,用于:[0091] 对所述对账双方的第一临时表的数据,进行哈希计算,得到所述对账双方的第一临时表的哈希值;[0092] 若所述对账双方的第一临时表的哈希值不相同,则按照排序从所述对账双方的第一临时表中读取部分数据,并分别进行哈希计算。[0093] 在本申请的一个或多个实施例中,所述脚本对账模块703在分别将所述对账双方的所述待对账字段的对应数据按照预定规则排序后存储在不同的第一临时表中时,用于:[0094] 分别将所述对账双方的所述待对账字段的对应数据按照任一待对账字段排序后存储在不同的第一临时表中。[0095] 本申请实施例提供的对账数据处理设备可以具体用于执行上述图2‑6所提供的方法实施例,具体功能此处不再赘述。[0096] 图8为本申请实施例提供的电子设备的结构示意图。本申请实施例提供的电子设备可以执行对账数据处理方法实施例提供的处理流程,如图8所示,电子设备80包括存储器81、处理器82、计算机程序;其中,计算机程序存储在存储器81中,并被配置为由处理器82执行以上实施例所述的对账数据处理方法。此外,电子设备80还可具有通讯接口83,用于传输控制指令和/或数据。[0097] 图8所示实施例的电子设备可用于执行上述对账数据处理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。[0098] 另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的方法。[0099] 另外,本实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的方法。[0100] 在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0101] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0102] 另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0103] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请实施例各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‑OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。[0104] 本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0105] 应说明的是:以上各实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述各实施例对本申请实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请实施例各实施例技术方案的范围。[0106] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。[0107] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

专利地区:北京

专利申请日期:2022-01-06

专利公开日期:2024-06-18

专利公告号:CN114356454B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部