本发明专利技术提供一种基于哈希的对账方法及装置,涉及大数据技术领域。基于哈希的对账方法包括:获取待核对的交易数据;计算所述交易数据中每笔交易数据对应的哈希值并基于所述哈希值生成梅克尔树的叶子节点;根据所述梅克尔树的叶子节点生成多个对账文件;基于上游系统和下游系统各自生成的多个对账文件进行核对。本发明专利技术通过哈希计算将交易数据转换为哈希值,有效缩小任意长度的交易数据为固定大小,降低数据核对的难易程度;通过生成梅克尔树及多个对账文件,有效减少需要核对的数据量,有效提高对账的效率。
【技术实现步骤摘要】
基于哈希的对账方法及装置
本专利技术涉及大数据
,具体涉及一种基于哈希的对账方法及装置。
技术介绍
随着银行业务快速发展,银行系统的交易量、数据量突飞猛进。与此同时,交易流程和业务功能拆分,银行系统也不断细致划分出很多业务子系统,因此一个交易流程涉及的子服务系统就会很多。为了提高性能,银行系统越来越依赖于分布式系统技术,从而导致银行系统出现大量需要核对上下游数据一致性的场景,为了进行对账而消耗的系统资源也随之持续增长。目前一般采用的手段如下:下游系统根据日志记录生成全量文件并传输到各个上游系统,上游系统过滤出与本系统相关的数据后进行排序,然后获取本地数据后也进行一次排序,之后进行两两核对找出差错。由上述流程可见,因为要传输所有日志记录和排序,对网络带宽、存储和计算等系统资源消耗很大,随着数据量的日益增长,这一问题将日益突出。目前千万级别的数据量平均一次对账耗时在两小时左右,而实际对账发现的差错率一般在1%以内,也就是为了找出少量的差错而投入的资源成本巨大,极大影响了银行系统的正常运作。为了降低上述问题的影响,一般银行系统采用日终后台进行异步对账的方式避免影响联机业务。但是这种方式并没有从根本上解决对账耗资源的问题。因此急需一种能够对账效率高且对账耗资源低的对账方法或装置。
技术实现思路
针对现有技术中的问题,本专利技术提供一种基于哈希的对账方法及装置,利用哈希树实现快速索引,从而实现快速对账,进而提高对账效率,降低对账耗时。为解决上述技术问题,本专利技术提供以下技术方案:第一方面,本专利技术提供一种基于哈希的对账方法,包括:获取待核对的交易数据;计算所述交易数据中每笔交易数据对应的哈希值并基于所述哈希值生成梅克尔树的叶子节点;根据所述梅克尔树的叶子节点生成多个对账文件;基于上游系统和下游系统各自生成的多个对账文件进行核对。其中,所述计算所述交易数据中每笔交易数据对应的哈希值,包括:根据每笔交易数据的对账主键进行哈希计算得到每笔交易数据对应的哈希值。其中,根据所述梅克尔树的叶子节点生成多个对账文件,包括:将所述梅克尔树的两两叶子节点之间进行哈希计算得到迭代后的叶子节点和一个对账文件;对迭代后的两两叶子节点之间进行哈希计算得到二次迭代后的叶子节点和一个对账文件;重复多次迭代后得到多个对账文件。其中,所述基于上游系统和下游系统各自生成的多个对账文件进行核对,包括:将上游系统和下游系统各自根节点对应的对账文件进行核对;其中,若两个对账文件的核对结果是一致的,则对账结束;若两个对账文件的核对结果是不一致的,则将上游系统和下游系统各自生成的多个对账文件进行两两核对,确定不一致的叶子节点以及不一致的叶子节点对应的交易数据。进一步地,在所述计算所述交易数据中每笔交易数据对应的哈希值之后,还包括:将所述交易数据对应的哈希值存储至目标哈希环的各个分区内;将所述目标哈希环缓存至缓存服务器中;其中,缓存服务器对应的缓存槽位与哈希环上的分区的位置一致。第二方面,本专利技术提供一种基于哈希的对账装置,包括:获取单元,用于获取待核对的交易数据;计算单元,用于计算所述交易数据中每笔交易数据对应的哈希值并基于所述哈希值生成梅克尔树的叶子节点;处理单元,用于根据所述梅克尔树的叶子节点生成多个对账文件;对账单元,用于基于上游系统和下游系统各自生成的多个对账文件进行核对。其中,所述计算单元包括:计算子单元,用于根据每笔交易数据的对账主键进行哈希计算得到每笔交易数据对应的哈希值。其中,所述处理单元包括:第一计算子单元,用于将所述梅克尔树的两两叶子节点之间进行哈希计算得到迭代后的叶子节点和一个对账文件;第二计算子单元,用于对迭代后的两两叶子节点之间进行哈希计算得到二次迭代后的叶子节点和一个对账文件;迭代子单元,用于重复多次迭代后得到多个对账文件。其中,所述对账单元包括:对账子单元,用于将上游系统和下游系统各自根节点对应的对账文件进行核对;其中,若两个对账文件的核对结果是一致的,则对账结束;若两个对账文件的核对结果是不一致的,则将上游系统和下游系统各自生成的多个对账文件进行两两核对,确定不一致的叶子节点以及不一致的叶子节点对应的交易数据。进一步地,还包括:存储单元,用于将所述交易数据对应的哈希值存储至目标哈希环的各个分区内;缓存单元,用于将所述目标哈希环缓存至缓存服务器中;其中,缓存服务器对应的缓存槽位与哈希环上的分区的位置一致。第三方面,本专利技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于哈希的对账方法的步骤。第四方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于哈希的对账方法的步骤。由上述技术方案可知,本专利技术提供一种基于哈希的对账方法及装置,通过哈希计算将交易数据转换为哈希值,有效缩小任意长度的交易数据为固定大小,降低数据核对的难易程度;通过生成梅克尔树及多个对账文件,有效减少需要核对的数据量,有效提高对账的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为对账的上下游系统结构图。图2为本专利技术实施例中的基于哈希的对账方法的第一流程示意图。图3为本专利技术实施例中的基于哈希的对账方法的第二流程示意图。图4为对账数据通过哈希环再分配的示意图。图5为对账数据由缓存转变为文件的过程示意图。图6为对账的过程示意图。图7为本专利技术实施例中的基于哈希的对账装置的一种结构示意图。图8为本专利技术实施例中的电子设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供一种基于哈希的对账方法,该方法通过缓存的方式进行数据保存和快速索引,以及生成对账文件并对该对账文件进行拆分,实现快速对账,解决银行系统上下游数据两两核对耗时耗资源的问题。本专利技术实施例提供一种上游系统和下游系统的具体结构,参见图1所示,本专利技术实施例中涉及的上游系统和下游系统具体包含以下设备或装置。上游数据库服务器[1.1],用于保存上游交易流本文档来自技高网...
【技术保护点】
1.一种基于哈希的对账方法,其特征在于,包括:/n获取待核对的交易数据;/n计算所述交易数据中每笔交易数据对应的哈希值并基于所述哈希值生成梅克尔树的叶子节点;/n根据所述梅克尔树的叶子节点生成多个对账文件;/n基于上游系统和下游系统各自生成的多个对账文件进行核对。/n
【技术特征摘要】
1.一种基于哈希的对账方法,其特征在于,包括:
获取待核对的交易数据;
计算所述交易数据中每笔交易数据对应的哈希值并基于所述哈希值生成梅克尔树的叶子节点;
根据所述梅克尔树的叶子节点生成多个对账文件;
基于上游系统和下游系统各自生成的多个对账文件进行核对。
2.根据权利要求1所述的基于哈希的对账方法,其特征在于,所述计算所述交易数据中每笔交易数据对应的哈希值,包括:
根据每笔交易数据的对账主键进行哈希计算得到每笔交易数据对应的哈希值。
3.根据权利要求1所述的基于哈希的对账方法,其特征在于,根据所述梅克尔树的叶子节点生成多个对账文件,包括:
将所述梅克尔树的两两叶子节点之间进行哈希计算得到迭代后的叶子节点和一个对账文件;
对迭代后的两两叶子节点之间进行哈希计算得到二次迭代后的叶子节点和一个对账文件;
重复多次迭代后得到多个对账文件。
4.根据权利要求1所述的基于哈希的对账方法,其特征在于,所述基于上游系统和下游系统各自生成的多个对账文件进行核对,包括:
将上游系统和下游系统各自根节点对应的对账文件进行核对;
其中,若两个对账文件的核对结果是一致的,则对账结束;
若两个对账文件的核对结果是不一致的,则将上游系统和下游系统各自生成的多个对账文件进行两两核对,确定不一致的叶子节点以及不一致的叶子节点对应的交易数据。
5.根据权利要求1所述的基于哈希的对账方法,其特征在于,在所述计算所述交易数据中每笔交易数据对应的哈希值之后,还包括:
将所述交易数据对应的哈希值存储至目标哈希环的各个分区内;
将所述目标哈希环缓存至缓存服务器中;
其中,缓存服务器对应的缓存槽位与哈希环上的分区的位置一致。
6.一种基于哈希的对账装置,其特征在于,包括:
获取单元,用于获取待核对的交易数据;
计算单元,用于计算所述交易数据中每笔交易数据对应的哈希值并基于所述哈希值生成梅...
【专利技术属性】
技术研发人员:陈浩坚,王志远,夏琼,林嘉文,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。