CN109743133A - 数据对账方法及装置 - Google Patents
数据对账方法及装置 Download PDFInfo
- Publication number
- CN109743133A CN109743133A CN201811590839.XA CN201811590839A CN109743133A CN 109743133 A CN109743133 A CN 109743133A CN 201811590839 A CN201811590839 A CN 201811590839A CN 109743133 A CN109743133 A CN 109743133A
- Authority
- CN
- China
- Prior art keywords
- data
- reconciliation
- data block
- coding
- state
- 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.)
- Granted
Links
Abstract
本申请提供一种数据对账方法及装置,涉及数据处理领域,能够实现数据接收方单方对账,提高对账效率。该方法包括:数据接收方接收数据块;解析数据块,获取第一编码、第二编码和待对账数据;根据解析获取的第二编码对解析获取的待对账数据进行校验;若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据对账方法及装置。
背景技术
目前,移动互联网高速发展,大型分布式系统或多个系统之间常采用异步的消息组件进行数据(消息)交换,以减小系统之间的依赖与耦合。消息组件分为数据生产者(又称数据发送方)和数据消费者(又称数据接收方)。由于数据发送方和数据接收方是异步的,数据发送方无法知晓所发送的数据是否都被数据接收方正确接收。数据接收方无法知晓数据发送方发送了多少数据。因此,需要对两方的数据进行对账。
现有的数据对账方法的工作原理大多为:数据发送方记录发送表,数据接收方记录接收表,定时对比接收表和发送表的差异,以完成数据对账,若存在数据丢失,则进行数据补发。
以增量对账方法为例,数据对账方法的具体执行过程如下:
(1)确定当前基准时间(如10:00)、当前对账时间(如10:30)和需对账的数据表;
(2)获取在当前基准时间和当前对账时间之间写入源数据库数据表内的源快照表,和写入目的数据库数据表内的目的快照表,其中,快照表用于存储从当前基准时间至当前对账时间之间的增量数据;
(3)判断目的快照表与源快照表是否一致;
(4)若一致,则将当前对账时间作为下一基准时间,即下一基准时间为10:30;
(5)若不一致,根据缺失数据向数据接收方重传数据,数据接收方将重传数据写入目的数据库中,直至数据重传后获取的目的快照表和源快照表一致,将当前对账时间设置作为下一基准时间。
在上述数据对账过程中,需要数据发送方和数据接收方两方参与,数据接收方无法自动对账,另外,对账效率低。
发明内容
本申请提供一种数据对账方法及装置,能够实现数据接收方单方对账,对账效率高。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种数据对账方法,应用于数据对账系统,数据对账系统包括数据发送方和数据接收方,数据发送方将数据划分成至少一个数据块,划分后的至少一个数据块能够构成数据链;数据块中包括第一编码、第二编码和待对账数据;第一编码为基于与数据块相邻的前一数据块中的待对账数据生成的特征码;第二编码为基于数据块中的待对账数据生成的特征码。具体的,该数据对账方法应用于数据接收方,方法包括:
数据接收方接收数据块;解析数据块,获取第一编码、第二编码和待对账数据;根据解析获取的第二编码对解析获取的待对账数据进行校验;若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。
第二方面,本申请还提供一种数据对账方法,应用于数据对账系统,数据对账系统包括数据发送方和数据接收方。具体的,该数据对账方法应用于数据发送方,方法包括:
数据发送方将数据划分成至少一个数据块;其中,划分后的至少一个数据块能够构成数据链;数据块中包括第一编码、第二编码和待对账数据;第一编码为基于与数据块相邻的前一数据块中的待对账数据生成的特征码;第二编码为基于数据块中的待对账数据生成的特征码;向数据接收方发送数据块。
第三方面,本申请提供一种数据对账装置,应用于数据对账系统的数据接收方,数据对账系统还包括数据发送方,数据发送方将数据划分成至少一个数据块,划分后的至少一个数据块能够构成数据链;数据块中包括第一编码、第二编码和待对账数据;第一编码为基于与数据块相邻的前一数据块中的待对账数据生成的特征码;第二编码为基于数据块中的待对账数据生成的特征码。具体的,数据对账装置为数据接收方。装置包括:接收模块、解析模块、校验模块和对账模块。其中,接收模块用于接收数据块;解析模块用于解析数据块,获取第一编码、第二编码和待对账数据;校验模块用于根据解析获取的第二编码对解析获取的待对账数据进行校验;对账模块用于若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。
第四方面,本申请还提供一种数据对账装置,应用于数据发送方,数据对账系统包括数据发送方和数据接收方。具体的,数据对账装置为数据发送方。装置包括:划分模块和发送模块。其中,划分模块用于将数据划分成至少一个数据块;其中,划分后的至少一个数据块能够构成数据链;数据块中包括第一编码、第二编码和待对账数据;第一编码为基于与数据块相邻的前一数据块中的待对账数据生成的特征码;第二编码为基于数据块中的待对账数据生成的特征码;发送模块用于向数据接收方发送数据块。
第五方面,本申请提供一种数据对账装置,数据对账装置包括:处理器、通信接口和存储器;其中,存储器用于存储一个或多个程序,该一个或多个程序包括计算机执行指令,当该数据对账装置运行时,处理器执行该存储器存储的该计算机执行指令,以使该数据对账装置执行第一方面及其各种可选的实现方式中任意之一的数据对账方法。
第六方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述第一方面及其各种可选的实现方式中任意之一的数据对账方法。
第七方面,本申请提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面及其各种可选的实现方式中任意之一的数据对账方法。
本申请提供的数据对账方法及装置,数据接收方接收到数据块,需要对账时,则解析数据块,获取第一编码、第二编码和待对账数据,根据解析获取的第二编码对解析获取的待对账数据进行校验,若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。相对于现有技术中,需要数据发送方和数据接收方两方参与,完成对账,本申请提供的数据对账方法,利用数据块中的第二编码,对数据块中的待对账数据进行正确性校验,利用数据块中的第一编码,对待对账数据进行对账,从而实现数据接收方单方对账,无需数据发送方和数据接收方双方参与,对账效率高。
附图说明
图1为本申请实施例提供的数据对账系统架构示意图;
图2为本申请实施例提供的数据块结构示意图;
图3为本申请实施例提供的数据链结构示意图;
图4为本申请实施例提供的数据对账方法流程示意图一;
图5为本申请实施例提供的数据对账方法流程示意图二;
图6为本申请实施例提供的数据对账装置结构示意图一;
图7为本申请实施例提供的数据对账装置结构示意图二;
图8为本申请实施例提供的数据对账装置结构示意图三。
具体实施方式
下面结合附图对本申请实施例提供的数据对账方法及装置进行详细地描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本申请实施例提供的数据对账方法可以应用于图1所示的数据对账系统中,数据对账系统包括数据发送方、数据接收方、消息组件、对账线程和对账表。
其中,数据发送方,主要用于将数据划分成至少一个数据块,然后将数据块打包为数据包,异步发送到消息组件。其中,划分后的至少一个数据块能够构成数据链。数据块包括第一编码、第二编码和待对账数据。当前数据块中包含的第一编码为基于与当前数据块相邻的前一数据块中的待对账数据生成的特征码。当前数据块中包含的第二编码为基于当前数据块中的待对账数据生成的特征码。
参见图2,图2为一种示例性的数据块。其中,数据块中的Pre_MD5为第一编码,Time为发送时间,Cur_MD5为第二编码,Record为待对账数据。每一数据块中的待对账数据数目可以是20条、40条,或者也可以是其他数目。
数据接收方,用于对从数据发送方接收的数据块进行解析,并对数据块进行对账。
参见图3,为一种示例性的数据链。由于数据块中均有第一编码和第二编码,基于数据块的第一编码和第二编码,能够将数据块构成数据链。其中,第一个数据块的第一编码为NULL。在进行编码计算时,数据发送方采用唯一化的编码方式,如信息摘要(messagedigest,MD)算法,对待对账数据进行编码。消息组件可以是Kafka、ActiveMQ、RabbitMQ或RocketMQ,或者消息组件有其他实现形式,本申请实施例对此不进行限定,消息组件主要将接收的数据包进行持久化本地存储,并且存储在数据队列中。数据接收方异步从消息组件中读取数据包,从数据包中获取数据块,然后进行数据正确性自主校验,若检验正确,则将校验正确的数据块记录在对账表中,启动对账线程对对账表中的数据进行对账,标记对账结果。其中,对账表是Oracle、MySQL或MariaDB等关系型数据库中的一种表,主要存储的字段有:Cur_MD5、Pre_MD5、是否对账完成和数据等,具体如下表1所示:
表1
Cur_MD5 | Pre_MD5 | 是否对账完成 | 数据 |
MD5(1) | NULL | 是 | DATA(1) |
MD5(2) | MD5(1) | 是 | DATA(2) |
MD5(3) | MD5(2) | 是 | DATA(3) |
MD5(4) | MD5(3) | 是 | DATA(4) |
… |
若需要数据发送方重新发送数据块,则基于超文本传输协议(hyper texttransport protocol,http)通知数据发送方重新发送数据块,以便数据接收方从消息组件中再次读取重发的数据块。
本申请实施例提供一种数据对账方法,如图4所示,该方法可以包括步骤401~步骤405:
步骤401、数据发送方将数据划分成至少一个数据块。
具体包括:记录发送时间。
具体的,发送时间的格式可以为“YYYY-MM-dd HH:mm:ss.SSS”,其中,YYYY表示年份,MM表示月份,dd表示日期,HH表示小时,mm表示分钟,ss表示秒,SSS表示毫秒。
获取待对账数据。其中,待对账数据是根据数据块中所能够承载的数据条数对待对账数据进行划分后的数据。
对发送时间和待对账数据进行编码计算,获得数据块所对应的编码,作为第二编码。
具体的,数据发送方所采用的编码计算方式均为唯一化的编码方式,如信息摘要(message digest,MD)算法,这里采用MD5算法,即消息摘要算法第五版。这里,基于发送时间和待对账数据进行编码计算,由于发送时间具有唯一性,所以,计算获得的编码不会冲突,避免待对账数据相同而导致计算获得的编码一样。
确定数据块的第一编码。
具体的,若该数据块相邻的前一数据块存在,则获取该数据块相邻的前一数据块所对应的第二编码,作为该数据块的第一编码。若数据块相邻的前一数据块不存在,则将该数据块的第一编码设置为NULL。
将第一编码、第二编码和待对账数据封装为数据块。数据块的格式可以采用JS对象简谱(javascript object notation,JSON)的格式。
步骤402、数据发送方向数据接收方发送数据块。
相应的,数据接收方从数据发送方接收数据块。
作为一种可能的实现方式:数据发送方将数据块发送至消息组件,数据接收方从消息组件中读取数据块。
其中,消息组件可以为Kafka、ActiveMQ、RabbitMQ或RocketMQ。或者消息组件有其他实现形式,本申请实施例对此不进行限定。
可选的,数据发送方将数据块(包括第一编码、第二编码和待对账数据)写入备份表,后续,当存在数据块重传的需求时,数据发送方可将备份表中的数据块发送给数据接收方。
步骤403、数据接收方解析数据块,获取第一编码、第二编码和待对账数据。
其中,当前数据块中的第一编码为基于与当前数据块相邻的前一数据块中的待对账数据生成的特征码,当前数据块中的第二编码为基于当前数据块中的待对账数据生成的特征码。示例性的,参见图3,图3为数据块的一种示例性表示方法。其中,图3中示出了4个数据块。第一个数据块之前不存在其他数据块,第一数据块的第一编码为NULL,第一数据块的第二编码为MD5(1),MD5(1)是根据第一数据块中的DATA(1)生成的特征码。第二数据块的第一编码为MD5(1),第二数据块的第二编码为MD5(2),该MD5(2)是根据第二数据块中的DATA(2)生成的特征码,以此类推。
步骤404、数据接收方根据解析获取的第二编码对解析获取的待对账数据进行校验。
作为一种可能的实现方式,数据发送方在发送当前数据块时,使用第一编码算法对当前数据块中的待对账数据进行编码,生成第二编码。相应的,数据接收方接收到该当前数据块后,同样使用第一编码算法对当前数据块中的待对账数据进行编码计算,获得第三编码。之后,数据接收方判断第二编码和第三编码是否相同,可以理解的是,当第三编码和第二编码相同时,说明待对账数据未经过第三方篡改,此时待对账数据校验成功。当第三编码和第二编码不同时,说明待对账数据已被修改,此时待对账数据校验失败。
可选的,第一编码算法为MD5算法、hash算法。当然,第一编码算法还可以为其他算法,只要数据发送方和数据接收方采用相同编码算法即可,本申请实施例对第一编码算法不进行限制。
步骤405、若校验成功,则数据接收方根据解析获取的第一编码对解析获取的待对账数据进行对账。
可选的,数据接收方将校验成功的数据块所包含的相关字段信息写入对账表。
具体的,参见表1,对账表中主要存储的字段有:Cur_MD5,Pre_MD5,是否对账完成和数据。将校验成功的数据块的第一编码存入Pre_MD5字段中,将校验成功的数据块的第二编码存入Cur_MD5字段中,待对账数据存入数据字段中。
步骤405可以具体实现为如下步骤:
步骤4051、若校验成功,数据接收方判断当前数据块的第一编码是否为空,若解析获取的第一编码为空,直接则执行步骤4052,若解析获取的第一编码为非空,则执行步骤4053。
步骤4052、数据接收方将当前数据块的对账状态更新为第一对账状态。
其中,第一对账状态用于表示:第一对账状态所对应的数据块对账完
成
需要说明的是,参见图3,当前数据块的第一编码为空,说明该当前数据块之前不存在其他数据块,则当该当前数据块的待对账数据校验成功后,就可以完成当前数据块中待对账数据的对账。
可选的,当前数据块对账完成后,数据接收方在对账表中当前数据块对应的“是否对账完成”字段写入:是,以表示该校验成功的当前数据块对账完成。参见表2,当前数据块为第一个数据块,其第一编码为空,在该第一个数据块校验成功后,数据接收方在表2的“是否对账完成”列中写入“是”,从而将第一个数据块的对账状态更新为第一对账状态,即对账完成状态。
步骤4053、数据接收方将校验成功的当前数据块作为待标记数据块。
步骤4054、数据接收方判断与待标记数据块相邻的前一数据块是否存在,若否,则执行步骤4055,若是,则执行步骤4056。
作为一种可能的实现方式,数据接收方可以根据待标记数据块的前一数据块的对账状态更新待标记数据块的对账状态。具体的,数据接收方根据解析获取的第一编码确定与数据块相邻的前一数据块,并根据所述与数据块相邻的前一数据块的对账状态,更新所述数据块的对账状态。
其中,在根据解析获取的第一编码确定与数据块相邻的前一数据块时,会存在两种情况,一种为:与数据块相邻的前一数据块不存在,另一种为:与数据块相邻的前一数据块存在。在第一种情况下,与数据块相邻的前一数据块不存在,可选的,数据接收方向数据发送方发送提示信息,以提示数据发送方重发不存在的数据块。在第二种情况下,与本数据块相邻的前一数据块存在,则根据与本数据块相邻的前一数据块的对账状态,更新本数据块的对账状态,可以具体实现为步骤4056~步骤4058。
步骤4055、数据接收方向数据发送方发送提示信息。
其中,提示信息用于提示数据发送方重新发送待标记数据块之前的不存在(比如缺失)的数据块。
这里,结合表2,以MD5(4)所对应的数据块作为待标记数据块,进行详细说明。在表2中,MD5(4)对应的数据块为待标记数据块,与待标记数据块相邻前一数据块为MD5(3)对应的数据块,而MD5(3)所对应的数据块缺失。此时,数据接收方可生成提示信息,并向数据发送方发送该提示信息,以指示数据发送方重发缺失的数据块。
表2
Cur_MD5 | Pre_MD5 | 是否对账完成 | 数据 |
MD5(1) | NULL | 是 | DATA(1) |
MD5(2) | MD5(1) | 是 | DATA(2) |
MD5(4) | MD5(3) | DATA(4) | |
… |
步骤4056、数据接收方判断与待标记数据块相邻的前一数据块的对账状态,若对账为第一对账状态,则执行步骤4057,若对账为第二对账状态,则执行步骤4058。
作为一种可能的实现方式,数据接收方通过判断与待标记数据块相邻的前一数据块的“是否对账完成”字段状态来判断前一数据块的对账状态。当“是否对账完成”字段是否标记为“是”,说明前一数据块的对账完成,当“是否对账完成”字段标记为“空”,说明前一数据块的对账未完成。
步骤4057、数据接收方将待标记数据块的对账状态更新为第一对账状态。
作为一种可能的实现方式,数据接收方将待标记数据块的“是否对账完成”字段写入:是,以更新待标记数据块的对账状态为第一对账状态,进而表示该待标记数据块以及待标记数据块块之前的数据块均对账完成。
在表3中,MD5(4)对应的数据块为待标记数据块,与待标记数据块相邻的前一数据块为MD5(3),MD5(3)所对应的数据块“是否对账完成”字段状态标记为:是,表明该数据块的对账状态为第一对账状态,即对账完成状态。此时,待标记数据块之前的全部数据块均对账完成,相应的,将待标记数据块的对账状态更新为对账完成状态。
表3
Cur_MD5 | Pre_MD5 | 是否对账完成 | 数据 |
MD5(1) | NULL | 是 | DATA(1) |
MD5(2) | MD5(1) | 是 | DATA(2) |
MD5(3) | MD5(2) | 是 | DATA(3) |
MD5(4) | MD5(3) | DATA(4) | |
… |
步骤4058、数据接收方对待标记数据块相邻的前一数据块的待对账数据进行对账,并在对账完成后将待标记数据块的对账状态更新为第一对账状态。
示例性的,参见表4,待标记数据块为MD5(4)对应的数据块,与待标记数据块相邻前一数据块应为MD5(3)对应的数据块,MD5(3)所对应的数据块“是否对账完成”字段状态标记为空,表明待标记数据块的前一数据块未完成对账。此时,数据接收方对待标记数据块的前一数据块进行对账,并在对账完成后对待标记数据块进行对账,相应的,将待标记数据块的对账状态更新为第一对账状态,即对账完成状态。
表4
Cur_MD5 | Pre_MD5 | 是否对账完成 | 数据 |
MD5(1) | NULL | 是 | DATA(1) |
MD5(2) | MD5(1) | 是 | DATA(2) |
MD5(3) | MD5(2) | DATA(3) | |
MD5(4) | MD5(3) | DATA(4) | |
… |
作为一种可能的实现方式,对待标记数据块的前一数据块进行对账的流程可以参见对待标记数据块进行对账的流程,即针对待标记数据块的前一数据块,可执行步骤4051至步骤4058,以实现该前一数据块的对账。
可选的,针对“是否对账完成”字段为空的数据块,可以在下一次启动对账线程后,对“是否对账完成”字段为空的数据块进行对账。或者,采用定时扫描的方式,每个预设时间,扫描对账表中“是否对账完成”字段状态,对“是否对账完成”字段为空的数据块进行对账。
可选的,步骤404中,若待对账数据的校验失败,则数据接收方基于超文本传输协议(hyper text transport protocol,http)通知数据发送方重新发送检验失败的数据块,以便数据接收方从消息组件中再次读取检验失败的数据块,执行数据对账的流程。
本申请实施例提供的数据对账方法,数据接收方接收到数据块,需要对账时,则解析数据块,获取第一编码、第二编码和待对账数据,根据解析获取的第二编码对解析获取的待对账数据进行校验,若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。相对于现有技术中,需要数据发送方和数据接收方两方参与,完成对账,本申请实施例提供的数据对账方法,利用数据块中的第二编码,对数据块中的待对账数据进行正确性校验,利用数据块中的第一编码,对待对账数据进行对账,从而实现数据接收方单方对账,无需数据发送方和数据接收方双方参与,对账效率高。
本申请实施例可以根据上述方法示例对数据对账装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图6示出了上述实施例中所涉及的数据对账装置的一种可能的结构示意图。数据对账装置600应用于数据接收方,其包括接收模块601、解析模块602、校验模块603和对账模块604。
其中,接收模块601,用于接收数据块。
解析模块602,用于解析数据块,获取第一编码、第二编码和待对账数据。
校验模块603,用于根据解析获取的第二编码对解析获取的待对账数据进行校验。
对账模块604,用于若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。
可选的,校验模块603具体用于:对解析获取的待对账数据进行编码计算得到第三编码。若解析获取的第二编码和第三编码相同,则确定数据块校验成功。若解析获取的第二编码和第三编码不同,则确定数据块校验失败。
可选的,本申请实施例提供的数据对账装置600还可以包括提示模块605。
提示模块605,用于在确定数据块校验失败之后,向数据发送方发送提示信息,提示信息用于提示数据发送方重新发送校验失败的数据块。
可选的,对账模块604具体用于:根据解析获取的第一编码确定与数据块相邻的前一数据块。根据与数据块相邻的前一数据块的对账状态,更新数据块的对账状态。
可选的,对账模块604,用于若解析获取的第一编码为空,将数据块的对账状态更新为第一对账状态。其中,第一对账状态用于表示:第一对账状态所对应的数据块对账完成。还用于若解析获取的第一编码为非空,若与数据块相邻的前一数据块的对账状态为第一对账状态,则将数据块的对账状态更新为第一对账状态。其中,第一对账状态还用于表示:第一对账状态所对应的数据块以及数据块之前的数据块均对账完成。若与数据块相邻的前一数据块的对账状态为第二对账状态,则对与数据块相邻的前一数据块的待对账数据进行对账,在对账完成后将数据块的对账状态更新为第一对账状态。其中,第二对账状态用于表示:第二对账状态所对应的数据块未对账完成。装置还包括提示模块605,提示模块605用于若不存在与数据块相邻的前一数据块,则向数据发送方发送提示信息,提示信息用于提示数据发送方重新发送不存在的数据块。
本申请实施例提供的数据对账装置,数据接收方接收到数据块,需要对账时,则解析数据块,获取第一编码、第二编码和待对账数据,根据解析获取的第二编码对解析获取的待对账数据进行校验,若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。相对于现有技术中,需要数据发送方和数据接收方两方参与,完成对账,本申请实施例提供的数据对账装置,利用数据块中的第二编码,对数据块中的待对账数据进行正确性校验,利用数据块中的第一编码,对待对账数据进行对账,从而实现数据接收方单方对账,无需数据发送方和数据接收方双方参与,对账效率高。
图7示出了上述实施例中所涉及的数据对账装置的一种可能的结构示意图。数据对账装置700应用于数据发送方,其包括划分模块701和发送模块702。
其中,划分模块701,用于将数据划分成至少一个数据块。其中,划分后的至少一个数据块能够构成数据链。数据块中包括第一编码、第二编码和待对账数据。第一编码为基于与数据块相邻的前一数据块中的待对账数据生成的特征码。第二编码为基于数据块中的待对账数据生成的特征码。
发送模块702,用于向数据接收方发送数据块。
可选的,数据块中还包括时间值,第一编码为基于与数据块相邻的前一数据块中的待对账数据和时间值生成的特征码,第二编码为基于数据块中的待对账数据和时间值生成的特征码。
本申请实施例提供的数据对账装置,数据发送方将数据划分成至少一个数据块。其中,划分后的至少一个数据块能够构成数据链。数据块中包括第一编码、第二编码和待对账数据。第一编码为基于与数据块相邻的前一数据块中的待对账数据生成的特征码。第二编码为基于数据块中的待对账数据生成的特征码。向数据接收方发送数据块。相对于现有技术中,数据发送方直接发送待对账数据,本申请实施例提供的数据对账装置,能够基于数据块的待对账数据生成第二编码,以便于在数据接收方的数据对账过程中进行数据正确性校验。利用数据块相邻前一数据块所对应的编码作为该数据块的第一编码,以便于在数据接收方的数据对账过程中进行对账,无需数据发送方参与数据对账过程,以实现数据接收方单方对账,有助于提高对账效率。
图8示出了上述实施例中所涉及的数据对账装置的又一种可能的结构示意图。该数据对账装置800包括:处理器802和通信接口803。
处理器802用于对数据对账装置的动作进行控制管理,当数据对账装置为数据发送方时,处理器802用于执行上述划分模块701所执行的步骤,和/或用于执行本文所描述的技术的其它过程。当数据对账装置为数据接收方时,处理器用于执行上述解析模块602、校验模块603和对账模块604所执行的步骤,和/或用于执行本文所描述的技术的其它过程。
通信接口803用于支持数据对账装置与其他网络实体的通信,当数据对账装置为数据发送方时,通信接口803用于执行上述发送模块702所执行的步骤。当数据对账装置为数据接收方时,通信接口803用于执行上述接收模块601和提示模块605所执行的步骤,和/或用于执行本文所描述的技术的其它过程。
可选的,数据对账装置800还可以包括存储器801和总线804,存储器801用于存储数据对账装置的程序代码和数据。
其中,存储器801可以是数据对账装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器。该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘。该存储器还可以包括上述种类的存储器的组合。
上述处理器802可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线804可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供一种数据对账系统,该数据对账系统可以包括应用于数据发送方的数据对账装置700、应用于数据接收方的数据对账装置600和消息组件,该消息组件用于存储数据发送方异步发送的数据块,进行本地化存储,方便数据接收方从消息组件中读取数据块,以执行本申请实施例提供的数据对账方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例的数据对账方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当网络设备执行该指令时,该网络设备执行上述方法实施例所示的方法流程中网络设备执行的各个步骤。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (17)
1.一种数据对账方法,其特征在于,应用于数据对账系统,所述数据对账系统包括数据发送方和数据接收方,所述数据发送方将数据划分成至少一个数据块,划分后的所述至少一个数据块能够构成数据链;所述数据块中包括第一编码、第二编码和待对账数据;所述第一编码为基于与所述数据块相邻的前一数据块中的待对账数据生成的特征码;所述第二编码为基于所述数据块中的待对账数据生成的特征码;所述方法包括:
数据接收方接收数据块;
解析所述数据块,获取第一编码、第二编码和待对账数据;
根据解析获取的第二编码对解析获取的待对账数据进行校验;
若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。
2.根据权利要求1所述的数据对账方法,其特征在于,所述根据解析获取的第二编码对解析获取的待对账数据进行校验,包括:
对解析获取的待对账数据进行编码计算得到第三编码;
若解析获取的第二编码和第三编码相同,则确定数据块校验成功;
若解析获取的第二编码和第三编码不同,则确定数据块校验失败。
3.根据权利要求2所述的数据对账方法,其特征在于,在所述确定数据块校验失败之后,所述方法还包括:
向数据发送方发送提示信息,所述提示信息用于提示数据发送方重新发送校验失败的数据块。
4.根据权利要求1所述的数据对账方法,其特征在于,所述若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账,包括:
根据解析获取的第一编码确定与数据块相邻的前一数据块;
根据所述与数据块相邻的前一数据块的对账状态,更新所述数据块的对账状态。
5.根据权利要求4所述的数据对账方法,其特征在于,
若解析获取的第一编码为空;
所述若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账,包括:
将所述数据块的对账状态更新为第一对账状态;其中,所述第一对账状态用于表示:所述第一对账状态所对应的数据块对账完成;
若解析获取的第一编码为非空;
所述根据所述与数据块相邻的前一数据块的对账状态,更新所述数据块的对账状态,包括:
若所述与数据块相邻的前一数据块的对账状态为第一对账状态,则将所述数据块的对账状态更新为第一对账状态;其中,所述第一对账状态还用于表示:所述第一对账状态所对应的数据块以及所述数据块之前的数据块均对账完成;
若所述与数据块相邻的前一数据块的对账状态为第二对账状态,则对所述与数据块相邻的前一数据块的待对账数据进行对账,在对账完成后将所述数据块的对账状态更新为第一对账状态;其中,所述第二对账状态用于表示:所述第二对账状态所对应的数据块未对账完成;
若不存在所述与数据块相邻的前一数据块,则向数据发送方发送提示信息,所述提示信息用于提示所述数据发送方重新发送不存在的数据块。
6.一种数据对账方法,其特征在于,应用于数据对账系统,所述数据对账系统包括数据发送方和数据接收方;所述方法包括:
所述数据发送方将数据划分成至少一个数据块;其中,划分后的所述至少一个数据块能够构成数据链;所述数据块中包括第一编码、第二编码和待对账数据;所述第一编码为基于与所述数据块相邻的前一数据块中的待对账数据生成的特征码;所述第二编码为基于所述数据块中的待对账数据生成的特征码;
向数据接收方发送所述数据块。
7.根据权利要求6所述的数据对账方法,其特征在于,所述数据块中还包括时间值,所述第一编码为基于与所述数据块相邻的前一数据块中的待对账数据和时间值生成的特征码,所述第二编码为基于所述数据块中的待对账数据和时间值生成的特征码。
8.一种数据对账装置,其特征在于,应用于数据对账系统的数据接收方,所述数据对账系统还包括数据发送方,所述数据发送方将数据划分成至少一个数据块,划分后的所述至少一个数据块能够构成数据链;所述数据块中包括第一编码、第二编码和待对账数据;所述第一编码为基于与所述数据块相邻的前一数据块中的待对账数据生成的特征码;所述第二编码为基于所述数据块中的待对账数据生成的特征码;所述装置包括:
接收模块,用于接收数据块;
解析模块,用于解析所述数据块,获取第一编码、第二编码和待对账数据;
校验模块,用于根据解析获取的第二编码对解析获取的待对账数据进行校验;
对账模块,用于若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账。
9.根据权利要求8所述的数据对账装置,其特征在于,
所述校验模块用于根据解析获取的第二编码对解析获取的待对账数据进行校验,具体为:
对解析获取的待对账数据进行编码计算得到第三编码;
若解析获取的第二编码和第三编码相同,则确定数据块校验成功;
若解析获取的第二编码和第三编码不同,则确定数据块校验失败。
10.根据权利要求9所述的数据对账装置,其特征在于,所述装置还包括:
提示模块,用于在所述确定数据块校验失败之后,向数据发送方发送提示信息,所述提示信息用于提示数据发送方重新发送校验失败的数据块。
11.根据权利要求8所述的数据对账装置,其特征在于,
所述对账模块,用于若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账,具体为:
根据解析获取的第一编码确定与数据块相邻的前一数据块;
根据所述与数据块相邻的前一数据块的对账状态,更新所述数据块的对账状态。
12.根据权利要求11所述的数据对账装置,其特征在于,
若解析获取的第一编码为空;
所述对账模块,用于若校验成功,则根据解析获取的第一编码对解析获取的待对账数据进行对账,具体为:
将所述数据块的对账状态更新为第一对账状态;其中,所述第一对账状态用于表示:所述第一对账状态所对应的数据块对账完成;
若解析获取的第一编码为非空;
所述对账模块,用于根据所述与数据块相邻的前一数据块的对账状态,更新所述数据块的对账状态,具体为:
若所述与数据块相邻的前一数据块的对账状态为第一对账状态,则将所述数据块的对账状态更新为第一对账状态;其中,所述第一对账状态还用于表示:所述第一对账状态所对应的数据块以及所述数据块之前的数据块均对账完成;
若所述与数据块相邻的前一数据块的对账状态为第二对账状态,则所述对账模块对所述与数据块相邻的前一数据块的待对账数据进行对账,在对账完成后将所述数据块的对账状态更新为第一对账状态;其中,所述第二对账状态用于表示:所述第二对账状态所对应的数据块未对账完成;
所述装置还包括:提示模块,用于若不存在所述与数据块相邻的前一数据块,则向数据发送方发送提示信息,所述提示信息用于提示所述数据发送方重新发送不存在的数据块。
13.一种数据对账装置,其特征在于,应用于数据发送方,所述装置包括:
划分模块,用于将数据划分成至少一个数据块;其中,划分后的所述至少一个数据块能够构成数据链;所述数据块中包括第一编码、第二编码和待对账数据;所述第一编码为基于与所述数据块相邻的前一数据块中的待对账数据生成的特征码;所述第二编码为基于所述数据块中的待对账数据生成的特征码;
发送模块,用于向数据接收方发送所述数据块。
14.根据权利要求13所述的数据对账装置,其特征在于,所述数据块中还包括时间值,所述第一编码为基于与所述数据块相邻的前一数据块中的待对账数据和时间值生成的特征码,所述第二编码为基于所述数据块中的待对账数据和时间值生成的特征码。
15.一种数据对账装置,其特征在于,所述装置包括:处理器、通信接口和存储器;其中,存储器用于存储一个或多个程序,所述一个或多个程序包括计算机执行指令,当所述数据对账装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据对账装置执行权利要求1至7中任意之一所述的数据对账方法。
16.一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行所述指令时,所述计算机执行上述权利要求1至7中任意之一所述的数据对账方法。
17.一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,所述计算机执行上述权利要求1至7中任意之一所述的数据对账方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811590839.XA CN109743133B (zh) | 2018-12-25 | 2018-12-25 | 数据对账方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811590839.XA CN109743133B (zh) | 2018-12-25 | 2018-12-25 | 数据对账方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743133A true CN109743133A (zh) | 2019-05-10 |
CN109743133B CN109743133B (zh) | 2021-05-28 |
Family
ID=66361154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811590839.XA Active CN109743133B (zh) | 2018-12-25 | 2018-12-25 | 数据对账方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743133B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064736A (zh) * | 2021-03-19 | 2021-07-02 | 北京房江湖科技有限公司 | 消息处理系统、方法、装置、电子设备和存储介质 |
CN113609119A (zh) * | 2021-08-11 | 2021-11-05 | 平安国际智慧城市科技股份有限公司 | 一种数据对账修复方法、装置、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453478A (zh) * | 2007-11-28 | 2009-06-10 | 新奥特(北京)视频技术有限公司 | 一种在文件传输中的完整性校验方法 |
CN102156434A (zh) * | 2011-04-20 | 2011-08-17 | 上海交通大学 | 基于fpga实现的超高吞吐量md5暴力破解装置 |
US20130073524A1 (en) * | 2010-10-18 | 2013-03-21 | Michael Bentkofsky | Database synchronization and validation |
CN103957080A (zh) * | 2014-04-30 | 2014-07-30 | 浙江中控技术股份有限公司 | 一种数据完整性校验方法及系统 |
CN105320899A (zh) * | 2014-07-22 | 2016-02-10 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
CN105786911A (zh) * | 2014-12-25 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 应用数据的校验方法及装置 |
CN107729553A (zh) * | 2017-11-07 | 2018-02-23 | 北京京东金融科技控股有限公司 | 系统数据对账方法及装置、存储介质、电子设备 |
US20180189312A1 (en) * | 2016-12-30 | 2018-07-05 | Guardtime Ip Holdings Limited | Event Verification Receipt System and Methods |
-
2018
- 2018-12-25 CN CN201811590839.XA patent/CN109743133B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453478A (zh) * | 2007-11-28 | 2009-06-10 | 新奥特(北京)视频技术有限公司 | 一种在文件传输中的完整性校验方法 |
US20130073524A1 (en) * | 2010-10-18 | 2013-03-21 | Michael Bentkofsky | Database synchronization and validation |
CN102156434A (zh) * | 2011-04-20 | 2011-08-17 | 上海交通大学 | 基于fpga实现的超高吞吐量md5暴力破解装置 |
CN103957080A (zh) * | 2014-04-30 | 2014-07-30 | 浙江中控技术股份有限公司 | 一种数据完整性校验方法及系统 |
CN105320899A (zh) * | 2014-07-22 | 2016-02-10 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
CN105786911A (zh) * | 2014-12-25 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 应用数据的校验方法及装置 |
US20180189312A1 (en) * | 2016-12-30 | 2018-07-05 | Guardtime Ip Holdings Limited | Event Verification Receipt System and Methods |
CN107729553A (zh) * | 2017-11-07 | 2018-02-23 | 北京京东金融科技控股有限公司 | 系统数据对账方法及装置、存储介质、电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064736A (zh) * | 2021-03-19 | 2021-07-02 | 北京房江湖科技有限公司 | 消息处理系统、方法、装置、电子设备和存储介质 |
CN113609119A (zh) * | 2021-08-11 | 2021-11-05 | 平安国际智慧城市科技股份有限公司 | 一种数据对账修复方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109743133B (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442652B (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
CN109361740B (zh) | 一种区块链的区块生成方法、装置、设备和介质 | |
US11265164B2 (en) | Method and system for an efficient consensus mechanism for permissioned blockchains using audit guarantees | |
US11177962B2 (en) | Optimizations for verification of interactions system and method | |
US10198325B2 (en) | Method and system for desynchronization recovery for permissioned blockchains using bloom filters | |
US20210049715A1 (en) | Blockchain-based data procesing method, apparatus, and electronic device | |
CN108681565B (zh) | 区块链数据并行处理方法、装置、设备和存储介质 | |
CN108921556A (zh) | 一种区块链的验证方法、装置、设备及存储介质 | |
CN103473088B (zh) | 一种单片机在线升级方法和系统 | |
CN111316279A (zh) | 用于连接区块链与数字孪生集合的计算机实现的系统和方法 | |
CN109474488A (zh) | 接口测试方法、装置及计算机设备 | |
CN110417502A (zh) | 一种区块链节点时钟共识方法及装置 | |
CN111327490B (zh) | 区块链的拜占庭容错检测方法及相关装置 | |
CN104580104A (zh) | 身份验证的方法、装置及系统 | |
CN112884477B (zh) | 一种区块链交易发起方法及系统 | |
US8581751B2 (en) | Multi-cell voltage secure data encoding in hybrid vehicles | |
CN109299193A (zh) | 数据同步方法及相关设备 | |
CN109743133A (zh) | 数据对账方法及装置 | |
CN106650496A (zh) | 一种数据处理方法及装置 | |
CN110222323A (zh) | 一种凭证生成方法、装置、可读存储介质及终端设备 | |
CN111127011A (zh) | 一种基于区块链进行对账的交易方法、系统和计算机可读存储介质 | |
CN105512130A (zh) | 数据源融合的方法和装置 | |
CN110706108B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN104639585B (zh) | 一种实时数据传输系统及其数据同步方法 | |
CN110245126A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |