CN114997990A - 分布式对账方法,装置及系统 - Google Patents
分布式对账方法,装置及系统 Download PDFInfo
- Publication number
- CN114997990A CN114997990A CN202210615794.7A CN202210615794A CN114997990A CN 114997990 A CN114997990 A CN 114997990A CN 202210615794 A CN202210615794 A CN 202210615794A CN 114997990 A CN114997990 A CN 114997990A
- Authority
- CN
- China
- Prior art keywords
- data
- reconciliation
- transaction
- split
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式对账方法,装置及系统,可应用于金融领域或其他领域。该分布式对账方法包括:接收来自总服务器的交易流水拆分数据;交易流水拆分数据为所述总服务器按照预设分组数量拆分交易流水数据生成;按照交易流水拆分数据中的键值排序所述交易流水拆分数据;根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。本发明可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
Description
技术领域
本发明涉及金融领域,具体地,涉及一种分布式对账方法,装置及系统。
背景技术
交易流水系统一般都是将联机产生的交易信息记录到本地数据库,每个对账周期(如每天)与外部系统会提供交易明细逐笔核对,根据差异进行调账来保证账务平衡。
大型银行的交易流水每日都要达到亿级以上,完成每日对账将要花费几个小时的时间,并且对于对账系统的资源(应用及数据库资源)要求也比较高,扩展能力也比较低。随着业务量的发展、业务多样性的扩展,在原有架构基础上优化对账的成本非常高。
现有技术一般会有发起方系统或服务方系统实现对账,对账系统将对方交易流水导入到本地数据库,通过数据库两张表进行分别核对。如获取对账周期内的表1数据,逐条检索表2记录进行核对,然后再获取表2数据,逐条与表1数据核对;有些系统会对第一次核对时将检索结果进行打标,虽然减少了第二次核对的数量,但会增加大量更新操作。几亿级别的数据量对数据库资源要求比较高,因数据量较大,对并行处理支持度不高导致检索效率比较低,往往亿级的对账要花费几个小时时间。
发明内容
本发明实施例的主要目的在于提供一种分布式对账方法,装置及系统,以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
为了实现上述目的,本发明实施例提供一种分布式对账方法,包括:
接收来自总服务器的交易流水拆分数据;交易流水拆分数据为所述总服务器按照预设分组数量拆分交易流水数据生成;
按照交易流水拆分数据中的键值排序所述交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
在其中一种实施例中,交易流水拆分数据包括第一交易流水拆分数据和第二交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件包括:
将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配;
当匹配成功时,根据键值对应的对账内容进行对账得到对账内容拆分文件;
当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件;
根据对账内容拆分文件和单边差异拆分文件得到所述对账结果拆分文件。
在其中一种实施例中,按照交易流水拆分数据中的键值排序所述交易流水拆分数据包括:
将交易流水拆分数据进行二次拆分得到各交易流水子数据;
按照键值对各交易流水子数据进行排序;
根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
本发明实施例还提供一种分布式对账装置,包括:
接收模块,用于接收来自总服务器的交易流水拆分数据;交易流水拆分数据为所述总服务器按照预设分组数量拆分交易流水数据生成;
排序模块,用于按照交易流水拆分数据中的键值排序交易流水拆分数据;
对账模块,用于根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送模块,用于发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
在其中一种实施例中,交易流水拆分数据包括第一交易流水拆分数据和第二交易流水拆分数据;
对账模块包括:
匹配单元,用于将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配;
对账单元,用于根据键值对应的对账内容进行对账得到对账内容拆分文件;
单边差异拆分文件单元,用于当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件;
对账结果拆分文件单元,根据对账内容拆分文件和单边差异拆分文件得到对账结果拆分文件。
在其中一种实施例中,排序模块包括:
二次拆分单元,用于将交易流水拆分数据进行二次拆分得到各交易流水子数据;
排序单元,用于按照键值对各交易流水子数据进行排序;
循环单元,用于根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现所述的分布式对账方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现所述的分布式对账方法的步骤。
本发明实施例还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现所述的分布式对账方法的步骤。
本发明实施例还提供一种分布式对账系统,包括:
多个如上所述的分布式对账装置,应用于分服务器;以及
总服务器,用于按照预设分组数量拆分交易流水数据得到交易流水拆分数据,将交易流水拆分数据发送至多个分服务器;合并来自多个分服务器的对账结果拆分文件得到对账结果文件。
本发明实施例的分布式对账方法、装置及系统按照交易流水拆分数据中的键值进行排序,根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件,发送对账结果拆分文件至总服务器以使总服务器合并对账结果拆分文件得到对账结果文件,可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中分布式对账方法的流程图;
图2是本发明另一实施例中分布式对账方法的示意图;
图3是本发明实施例中总服务器的分组示意图;
图4是本发明实施例中的数据分配示意图;
图5是本发明实施例中S102的流程图;
图6是本发明实施例中二次拆分和排序的示意图;
图7是本发明实施例的排序合并示意图;
图8是本发明实施例中S103的流程图;
图9是本发明实施例中键值匹配的示意图;
图10是本发明实施例中分布式对账装置的结构框图;
图11是本发明实施例中计算机设备的结构框图;
图12是本发明实施例中分布式对账系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
需要说明的是,本发明的分布式对账方法,装置及系统可用于金融领域的对账场景中,也可用于除金融领域之外的任意领域。本发明实施例对分布式对账方法,装置及系统的应用领域不做限定。
本发明涉及的术语解释如下:
对账:交易流水记录系统与外部系统提供的流水明细进行交易明细的核对过程。例如银行支付系统将每日记录的流水与银行核心或外部清算组织提供的交易记录进行核对,根据业务规则将差异流水进行调账等处理。
鉴于现有技术对并行处理支持度不高,检索效率比较低,本发明实施例提供一种分布式对账方法,装置及系统,基于文件形式切依赖于数据库,支持并行及分布式处理,可以在比较小的资源下达到最优的性能处理,并且适应业务多样性发展。
对账至少需要两个系统参与,比如支付机构通过清算组织与银行进行交互,清算组织作为发起方记录的支付机构的交易流水和银行作为发卡行记录的真实客户流水需要进行双方对账清算。为了描述方便,本发明将发起方定义为系统A,服务方定义为系统B,实现A、B两个系统的对账。
A、B系统分别输出同一个对账周期(一般与清算周期一致)内的交易流水文件,将A、B系统输出的文件通过一定的算法进行过滤分组,拆分为N个相对较小的文件,分别对小文件进行排序、核对,输出汇总结果文件和差异文件,最后将小文件输出的文件分别合并,合并后的汇总结果文件和差异文件即为对账模块输出的文件,可以根据这两个文件进行调账、清算。调账和清算流程不在本发明范围之内。
本发明对于分组提供算法支持,保证同一笔交易流水可以分配到同一组,以便实现小文件的同组对账;经过分组的小文件对排序、对账都支持并行处理,也支持分布式处理(多台服务器同时运行),所以可以使用低成本的物理资源达到最好的性能支持;数据汇总只是对汇总结果、对账差异进行归纳,所需资源很小,为集中式处理模式。由于发起方和服务方系统都有自身的场景设定,生成的交易流水文件格式差异性也会比较大,所以需要定制文件格式的解析适配。不同的需求场景对于对账的要求也不同,需要根据实际需求进行文件解析过滤。比如交易流水文件只包含交易成功记录,那么只需要核对关键要素匹配(比较交易流水号)、交易金额等即可,但如果也包含失败记录,则还需要核对交易状态等要素。以下结合附图对本发明进行详细说明。
图1是本发明实施例中分布式对账方法的流程图。图2是本发明另一实施例中分布式对账方法的示意图。如图1-图2所示,分布式对账方法包括:
S101:接收来自总服务器的交易流水拆分数据。
其中,交易流水拆分数据为总服务器按照预设分组数量拆分交易流水数据生成。
具体实施时,总服务器将来源于系统A和系统B的交易流水文件进行适配解析过滤,获取到能够标识唯一记录的键值key(如交易流水号),以及需要对账的关键要素,如交易状态、交易金额,然后根据键值key进行分组,生成多个小文件。两个系统的同一个组的小文件是之后并行及分布式计算的最小单元。
源文件提供的数据项很多,过滤令生成的小文件(交易流水拆分数据)只保留键值key、对账要素和原文件记录行号等。后续都是基于分组小文件进行处理,如果保留所有数据,格式的不确定性会带来处理的复杂度,数据项太多会加大内存的使用量。
图3是本发明实施例中总服务器的分组示意图。如图3所示,将源文件进行解析拆分成多个小文件(交易流水拆分数据)的过程叫做分组,拆分的小文件数量就是分组的个数,需要根据实际的性能需求和资源情况进行评估后提前设定。分组算法可以使用哈希取模或一致性哈希等方式,但不能使用随机方式分组,因为分组算法需要保证相同键值key的记录一定会被分配到同一个组。例如使用hash(哈希)取模算法来分组,预设分组数量为64,则解析到键值key后,使用key的哈希对64就行取模,根据取模结果(0-63)可以生成64个小文件。A系统和B系统提供的源文件必须使用同样的分组算法,这样才能保证两个系统分组后的数据可以根据分组编号对应。
图4是本发明实施例中的数据分配示意图。如图4所示,发起方系统A与服务方系统B的处理流程基本一致,如果AB的源文件格式不同,只需要配置不同的格式解析适配即可,其他处理流程完全相同。假定A系统源文件为A.txt,B系统源文件为B.txt,分组后小文件以编号命名,如a1.txt。
如图4所示,系统A和系统B生成的交易流水拆分数据成对分配到不同的服务器(分服务器),由不同的分服务器同时执行S102和S103,且S102和S103是最消耗资源、最影响处理性能的流程,将他们分配到多个服务器运行可以实现分布式计算运行来达到等资源条件下最优的性能处理。分配到多台服务器的文件只要求成对分配,如a1.txt和b1.txt必须分配到同一台服务器;但并不要求每台服务器只分配一对,如a1.txt和b1.txt分配到服务器1,a2.txt和b2.txt也可以分配到服务器1,这需要根据实际服务器的物理资源来决策分配方案。
来源于系统A和系统B的文件支持并行处理,因为实际场景不能保证A系统和B系统的文件可以同时到来,因此也支持系统A或系统B输入多个文件,同一个系统的文件支持串行处理,也支持并行处理;如果进行并行处理需要对过滤后的分组文件进行同组文件合并,这并不是本发明所要阐述的重点,所以不在此进行该并行方式的说明。
S102:按照交易流水拆分数据中的键值排序交易流水拆分数据。
为了提高对账效率,需要先对交易流水拆分数据(小文件)进行排序(这里都是指从小到大排序),但对于几亿级的数据量,即使将总数据量拆分成多个小文件,每个小文件的数据量仍然是千万级别的,如果完全使用内存进行排序,对于系统的内存要求会比较高,甚至会出现内存溢出的风险,所以要采用归纳方式进行排序。该步骤所要处理的最小单元为一对小文件,如上例提到的结果文件中的a1.txt和b1.txt就是一对,也就是两个系统经过步骤1生成的相同编号的小文件为一对,如an.txt和bn.txt。但排序算法是相对独立的,只是对相同文件内部数据进行排序,所以支持成对文件并行处理,如a1.txt和a2.txt可以同时进行排序,此并行处理可进一步提高处理性能。这里所要进行排序的元素只是针对键值key,因为此key是标识唯一的记录。并行指所有小文件的归纳排序都支持并行处理,并行度依赖于系统运行资源。待排序文件比较大,完全加载到内存中排序对资源会要求比较高,所以使用归纳排序;如果分组小文件数据量较小(如只有几万行记录),也可以直接使用内存进行排序。
图5是本发明实施例中S102的流程图。如图5所示,S102包括:
S201:将交易流水拆分数据进行二次拆分得到各交易流水子数据。
图6是本发明实施例中二次拆分和排序的示意图。如图6所示,假定待排序的交易流水拆分数据名称为c.txt,将交易流水拆分数据进行拆分为多个交易流水子数据,每个交易流水子数据的数据量(即记录数,需要预先设定,这里将使用“M”来标识,如果M等于100000,则表示每100000条记录进行一次排序并输出生成交易流水子数据)可使用内存进行存储,
S202:按照键值对各交易流水子数据进行排序。
具体实施时,对拆分的所有数据逐行读取排序,将最小的一行使用追加输出的方式合并到最后一个交易流水子数据文件。这里的排序指读取一个元素排序一次,所以使用“冒泡排序”算法比较合适。
S203:根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
图7是本发明实施例的排序合并示意图。如图7所示,归纳合并时加入一个元素就进行一次排序,也使用“冒泡排序”算法,之后不再单独描述内存中元素的排序算法,统一都是使用“冒泡排序”的从小到大排序。
假定交易流水子数据为c1.txt、c2.txt,……cn.txt,首先需要打开所有交易流水子数据并读取第一行,解析得到key和行记录,以列表方式放到内存;将所有key进行从小到大排序,获取第一个元素数据,也就是key最小的元素数据,将行记录内容以追加的方式输出到结果文件(交易流水拆分数据)C.txt,在追加的过程打开C.txt的文件句柄,无需关闭;假定最小元素对应的记录为key-k,则将key-k追加到结果文件后,从排序好的内存中移除key-k内容,继续读取ck.txt文件的下一行,也就是图7中的虚线部分,表示只对ck.txt文件读取下一行,其他文件并不读取下一行;ck.txt读取到的下一行记录继续加入到内存列表中,进行再次排序,即再获取最小元素记录追加输出到结果文件,以此循环;如果某个文件所有记录都处理完毕,则该文件跳出循环处理,一直到所有文件都读取到了末尾行,此时将内存中存留的数据顺序追加输出到结果文件再关闭结果文件的句柄。
最后生成的C.txt其实就是对第一个模块中拆分的分组小文件(a1.txt、b1.txt等)进行排序的结果文件(排序后的交易流水拆分数据),在排序过程中生成c1.txt、c2.txt……等文件只是临时文件,在排序结束后可以删除。
理论上发起方系统A和服务方系统B需要保证提供的源文件A.txt和B.txt内部数据不能有相同键值key的数据(即同一笔交易流水不能在同一个系统中出现多笔记录),否则在对key-1、key-2……的排序过程中,需要剔除相等key的记录到对账差异文件。因为这个前提条件需要源端系统保证,所以没有在上述流程中标注这种异常情况的处理。也就是说待排序的C.txt文件中需要保证没有重复键值key的记录,否则需要加入等值key记录的异常处理。
S103:根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件。
其中,交易流水拆分数据包括第一交易流水拆分数据和第二交易流水拆分数据。
假定在排序好的成对小文件(交易流水拆分数据)为A1.txt(第一交易流水拆分数据)和B1.txt(第二交易流水拆分数据),核对的过程就是将A1.txt与B1.txt进行对账,数据核对过程支持并行处理和分布式计算。
图8是本发明实施例中S103的流程图。如图8所示,S103包括:
S301:将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配。
图9是本发明实施例中键值匹配的示意图。如图9所示,同一个键值key对应的数据因为分组算法的设定定会被分配到同一对文件中,排序后的数据也是按照同样的规则进行数据分布,所以可以通过A1.txt和B1.txt同时逐行核对来进行对账,两边的数据就像是一个“梯子”进行分布,所以称为“梯式”核对。
在梯式核对过程中就会输出对账结果,需要预先定义一些结果元素,比如对账成功总笔数、对账成功总金额、差异总笔数等汇总信息,以下简称为汇总元素;还需要定义差异类型,比如:01-A系统单边(即A系统有记录,B系统无记录)、02-B系统单边(即A系统无记录,B系统有记录)、03-交易状态不相符、04-交易金额不相等,以及输出到结果文件中的差异数据格式。
具体实施时,打开A1.txt和B1.txt文件句柄,分别读取第一条记录(用“key1-行记录来表示);比较A1.txt读取的key-行记录(键值用A1-key表示)和B1.txt读取的key-行记录(用B1-key表示)中的key大小。
S302:当匹配成功时,根据键值对应的对账内容进行对账得到对账内容拆分文件。
具体实施时,如果A1-key与B1-key相等,则需要进一步比对行记录中的交易状态、交易金额等需要核对的要素(对账内容),根据核对结果分别累积到汇总元素中,并且将核对不成功(如金额不符等)记录的差异类型和原数据信息追加输出到对账内容拆分文件,之后需要分别读取A1.txt和B1.txt的下一行,继续核对。
S303:当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件。
具体实施时,如果A1-key小于B1-key,则表示该条记录A系统单边,累积汇总元素,并将A单边差异类型和原数据信息追加输出到单边差异拆分文件,此时只需要读取A1.txt文件中的下一行记录,继续与B1-key进行比较核对;如果A1-key大于B1-key,则表示该条记录B系统单边,累积汇总元素,并将B单边差异类型和原数据信息追加输出到单边差异拆分文件,此时需要读取B1.txt文件中的下一行记录,继续与A1-key进行比较核对;像“爬梯子”一样遍历A1.txt和B1.txt文件,一直到其中一个文件数据读取完毕,此时另一个文件剩余数据都是剩余文件对应的系统的单边数据,逐条当作该系统的单边差异进行累积并追加输出到单边差异拆分文件,比如A1.txt先读取完毕,则B1.txt剩余的数据都是B系统的单边记录,追加差异类型也为B系统单边;最后可以将汇总元素信息追加到单边差异拆分文件,作为汇总结果信息放到对账结果拆分文件尾行记录。
S304:根据对账内容拆分文件和单边差异拆分文件得到对账结果拆分文件。
梯式核对只对成对的文件遍历一次,算法复杂度为O(n),而数据库核对方式需要双向遍历,算法复杂度为2×O(n2),所以在性能处理上要远远高于一般对账方式。经过并行核对,会生成多个(数量与分组个数一致)对账结果拆分文件,如C1.txt、C2.txt……。
S104:发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
具体实施时,总服务器对C1.txt、C2.txt等对账结果拆分文件进行合并,即除最后一行汇总记录外,其他记录全部追加到一个文件中,如C.txt。可以根据实际场景的需求来定制输出的差异文件格式,对账结果的后续处理(如调账、清算)不在本发明范围之内。
图1所示的分布式对账方法的执行主体可以为分服务器。由图1所示的流程可知本发明实施例的分布式对账方法按照交易流水拆分数据中的键值进行排序,根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件,发送对账结果拆分文件至总服务器以使总服务器合并对账结果拆分文件得到对账结果文件,可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
基于同一发明构思,本发明实施例还提供了一种分布式对账装置,由于该装置解决问题的原理与分布式对账方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图10是本发明实施例中分布式对账装置的结构框图。如图10所示,分布式对账装置包括:
接收模块,用于接收来自总服务器的交易流水拆分数据;交易流水拆分数据为所述总服务器按照预设分组数量拆分交易流水数据生成;
排序模块,用于按照交易流水拆分数据中的键值排序交易流水拆分数据;
对账模块,用于根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送模块,用于发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
在其中一种实施例中,交易流水拆分数据包括第一交易流水拆分数据和第二交易流水拆分数据;
对账模块包括:
匹配单元,用于将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配;
对账单元,用于根据键值对应的对账内容进行对账得到对账内容拆分文件;
单边差异拆分文件单元,用于当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件;
对账结果拆分文件单元,根据对账内容拆分文件和单边差异拆分文件得到对账结果拆分文件。
在其中一种实施例中,排序模块包括:
二次拆分单元,用于将交易流水拆分数据进行二次拆分得到各交易流水子数据;
排序单元,用于按照键值对各交易流水子数据进行排序;
循环单元,用于根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
综上,本发明实施例的分布式对账装置按照交易流水拆分数据中的键值进行排序,根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件,发送对账结果拆分文件至总服务器以使总服务器合并对账结果拆分文件得到对账结果文件,可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
本发明实施例还提供能够实现上述实施例中的分布式对账方法中全部步骤的一种计算机设备的具体实施方式。图11是本发明实施例中计算机设备的结构框图,参见图11,所述计算机设备具体包括如下内容:
处理器(processor)1101和存储器(memory)1102。
所述处理器1101用于调用所述存储器1102中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的分布式对账方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
接收来自总服务器的交易流水拆分数据;交易流水拆分数据为总服务器按照预设分组数量拆分交易流水数据生成;
按照交易流水拆分数据中的键值排序交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
综上,本发明实施例的计算机设备按照交易流水拆分数据中的键值进行排序,根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件,发送对账结果拆分文件至总服务器以使总服务器合并对账结果拆分文件得到对账结果文件,可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
本发明实施例还提供能够实现上述实施例中的分布式对账方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的分布式对账方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
接收来自总服务器的交易流水拆分数据;交易流水拆分数据为总服务器按照预设分组数量拆分交易流水数据生成;
按照交易流水拆分数据中的键值排序交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
综上,本发明实施例的计算机可读存储介质按照交易流水拆分数据中的键值进行排序,根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件,发送对账结果拆分文件至总服务器以使总服务器合并对账结果拆分文件得到对账结果文件,可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
本发明实施例还提供能够实现上述实施例中的分布式对账方法中全部步骤的一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述实施例中的分布式对账方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
接收来自总服务器的交易流水拆分数据;交易流水拆分数据为总服务器按照预设分组数量拆分交易流水数据生成;
按照交易流水拆分数据中的键值排序交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送对账结果拆分文件至总服务器,以使总服务器合并对账结果拆分文件得到对账结果文件。
综上,本发明实施例的计算机程序产品按照交易流水拆分数据中的键值进行排序,根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件,发送对账结果拆分文件至总服务器以使总服务器合并对账结果拆分文件得到对账结果文件,可以使用低成本的物理资源达到最好的性能支持,适应业务多样性发展。
基于同一发明构思,本发明实施例还提供了一种分布式对账系统,由于该系统解决问题的原理与分布式对账方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
图12是本发明实施例中分布式对账系统的示意图。如图12所示,分布式对账系统包括:
多个如上所述的分布式对账装置,应用于分服务器;以及
总服务器,用于按照预设分组数量拆分交易流水数据得到交易流水拆分数据,将交易流水拆分数据发送至多个分服务器;合并来自多个分服务器的对账结果拆分文件得到对账结果文件。
本发明实施例的分布式对账系统的具体工作流程如下:
1、总服务器按照预设分组数量拆分交易流水数据得到交易流水拆分数据,将交易流水拆分数据发送至多个分服务器。
2、分服务器将交易流水拆分数据进行二次拆分得到各交易流水子数据,按照键值对各交易流水子数据进行排序。
3、分服务器根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
4、分服务器将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配;当匹配成功时,根据键值对应的对账内容进行对账得到对账内容拆分文件;当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件。
5、分服务器根据对账内容拆分文件和单边差异拆分文件得到对账结果拆分文件。
6、分服务器发送所述对账结果拆分文件至总服务器。
7、总服务器合并来自多个分服务器的对账结果拆分文件得到对账结果文件
综上,本发明实施例的分布式对账系统基于文件处理交易数据,不使用数据库持久存储,所以对数据库资源没有要求,大大节约了硬件成本。本发明实现了分组对账,将大数据量进行了切分,切分后的数据处理支持并行及分布式处理,可以使用多台较低资源的服务器共同对账,所以能最大程度提高对账效率。本发明采用“梯式”方法进行数据比对,无需重复遍历数据,算法复杂度为O(n),而数据库核对方式需要双向遍历,算法复杂度为2×O(n2),所以效率上也远远高于数据库对账方案。因此,本发明实施例提供的分布式对账系统具有以下有益效果:
1.完全基于文件进行对账,没有数据库参与,可以大大减少数据库成本。特别是大数据量的对账,对于亿万级别的数据,一般的数据库资源使用单表加载数据都是不可能实现的。
2.将大文件拆分成多个小文件来处理后续关键流程,对系统的资源(尤其是内存)需求不高,可以很好地进行资源分配。
3.支持并行及分布式计算,可以通过分配多台服务器共同支持对账来极大提高处理性能,与高配资源不足场景十分契合。
4.核对数据方式采用“梯式”对账模式,算法复杂度远远优于一般的数据库逐笔核对方式,性能处理更高。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
Claims (10)
1.一种分布式对账方法,其特征在于,包括:
接收来自总服务器的交易流水拆分数据;所述交易流水拆分数据为所述总服务器按照预设分组数量拆分交易流水数据生成;
按照交易流水拆分数据中的键值排序所述交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送所述对账结果拆分文件至所述总服务器,以使所述总服务器合并所述对账结果拆分文件得到对账结果文件。
2.根据权利要求1所述的分布式对账方法,其特征在于,所述交易流水拆分数据包括第一交易流水拆分数据和第二交易流水拆分数据;
根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件包括:
将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配;
当匹配成功时,根据键值对应的对账内容进行对账得到对账内容拆分文件;
当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件;
根据所述对账内容拆分文件和所述单边差异拆分文件得到所述对账结果拆分文件。
3.根据权利要求1所述的分布式对账方法,其特征在于,按照交易流水拆分数据中的键值排序所述交易流水拆分数据包括:
将所述交易流水拆分数据进行二次拆分得到各交易流水子数据;
按照所述键值对各交易流水子数据进行排序;
根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
4.一种分布式对账装置,其特征在于,包括:
接收模块,用于接收来自总服务器的交易流水拆分数据;所述交易流水拆分数据为所述总服务器按照预设分组数量拆分交易流水数据生成;
排序模块,用于按照交易流水拆分数据中的键值排序所述交易流水拆分数据;
对账模块,用于根据排序后的交易流水拆分数据中的键值和对应的对账内容进行并行梯式对账得到对账结果拆分文件;
发送模块,用于发送所述对账结果拆分文件至所述总服务器,以使所述总服务器合并所述对账结果拆分文件得到对账结果文件。
5.根据权利要求4所述的分布式对账装置,其特征在于,所述交易流水拆分数据包括第一交易流水拆分数据和第二交易流水拆分数据;
所述对账模块包括:
匹配单元,用于将排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值进行匹配;
对账单元,用于根据键值对应的对账内容进行对账得到对账内容拆分文件;
单边差异拆分文件单元,用于当匹配失败时,根据排序后的第一交易流水拆分数据的键值与排序后的第二交易流水拆分数据的键值的比较结果得到单边差异拆分文件;
对账结果拆分文件单元,根据所述对账内容拆分文件和所述单边差异拆分文件得到所述对账结果拆分文件。
6.根据权利要求4所述的分布式对账装置,其特征在于,所述排序模块包括:
二次拆分单元,用于将所述交易流水拆分数据进行二次拆分得到各交易流水子数据;
排序单元,用于按照所述键值对各交易流水子数据进行排序;
循环单元,用于根据键值从排序后的各交易流水子数据中的首位交易流水数据中选取合并交易流水数据后放入交易流水拆分数据文件中进行对应循环处理得到排序后的交易流水拆分数据。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一项所述的分布式对账方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3任一项所述的分布式对账方法的步骤。
9.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至3任一项所述的分布式对账方法的步骤。
10.一种分布式对账系统,其特征在于,包括:
多个权利要求4-6任一项所述的分布式对账装置,应用于分服务器;以及
总服务器,用于按照预设分组数量拆分交易流水数据得到交易流水拆分数据,将所述交易流水拆分数据发送至所述多个分服务器;合并来自所述多个分服务器的对账结果拆分文件得到对账结果文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210615794.7A CN114997990A (zh) | 2022-05-31 | 2022-05-31 | 分布式对账方法,装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210615794.7A CN114997990A (zh) | 2022-05-31 | 2022-05-31 | 分布式对账方法,装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114997990A true CN114997990A (zh) | 2022-09-02 |
Family
ID=83030689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210615794.7A Pending CN114997990A (zh) | 2022-05-31 | 2022-05-31 | 分布式对账方法,装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114997990A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116308850A (zh) * | 2023-05-19 | 2023-06-23 | 深圳市四格互联信息技术有限公司 | 对账方法、对账系统、对账服务器及存储介质 |
CN117033450A (zh) * | 2023-10-10 | 2023-11-10 | 北京轻松怡康信息技术有限公司 | 多维度数据的处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-05-31 CN CN202210615794.7A patent/CN114997990A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116308850A (zh) * | 2023-05-19 | 2023-06-23 | 深圳市四格互联信息技术有限公司 | 对账方法、对账系统、对账服务器及存储介质 |
CN116308850B (zh) * | 2023-05-19 | 2023-09-05 | 深圳市四格互联信息技术有限公司 | 对账方法、对账系统、对账服务器及存储介质 |
CN117033450A (zh) * | 2023-10-10 | 2023-11-10 | 北京轻松怡康信息技术有限公司 | 多维度数据的处理方法、装置、电子设备及存储介质 |
CN117033450B (zh) * | 2023-10-10 | 2024-08-30 | 北京轻松怡康信息技术有限公司 | 多维度数据的处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114997990A (zh) | 分布式对账方法,装置及系统 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN112669155B (zh) | 基于区块链的交易分发执行方法、装置服务器及存储介质 | |
CN113342750B (zh) | 一种文件的数据比对方法、装置、设备及存储介质 | |
CN106528746A (zh) | 交易信息查询方法、装置及系统 | |
CN113326165B (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
US20210334292A1 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
CN112749167B (zh) | 确定断链数据的方法、装置及非易失性存储介质 | |
CN114511330B (zh) | 一种基于改进的cnn-rf的以太坊庞氏骗局检测方法及系统 | |
CN112948473A (zh) | 数据仓库的数据处理方法、装置、系统及存储介质 | |
CN109542785B (zh) | 一种无效bug确定方法和装置 | |
CN111026737A (zh) | 一种任务处理方法及装置 | |
CN107451007B (zh) | 针对增加区块进行勘误的区块链的验证方法及系统 | |
CN112288567A (zh) | 银行账目信息处理方法、装置及可读介质 | |
CN106803202B (zh) | 一种待测试交易记录的提取方法和装置 | |
CN106599326B (zh) | 一种云化架构下的记录数据剔重处理方法及系统 | |
CN107392745B (zh) | 一种对帐数据碎片化处理方法 | |
CN113806617A (zh) | 基于业务请求数据分析的查询编排方法及装置 | |
US20160196331A1 (en) | Reconstitution order of entity evaluations | |
RU2015156433A (ru) | Способ ведения распределённой базы данных в единой среде учёта наподобие bitcoin | |
CN103793486A (zh) | 对印鉴组合数据进行存储、验印的方法和系统 | |
CN111309370A (zh) | 多项目多系统环境的版本号有向图排序稽核方法和系统 | |
CN109165208A (zh) | 一种用于将数据加载到数据库中的方法及系统 | |
CN108763363B (zh) | 一种检验待写入记录的方法及装置 | |
CN115495483B (zh) | 数据批量处理方法、装置、设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |