CN109656964A - 数据比对的方法、装置以及存储介质 - Google Patents
数据比对的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN109656964A CN109656964A CN201811555818.4A CN201811555818A CN109656964A CN 109656964 A CN109656964 A CN 109656964A CN 201811555818 A CN201811555818 A CN 201811555818A CN 109656964 A CN109656964 A CN 109656964A
- Authority
- CN
- China
- Prior art keywords
- data
- cryptographic hash
- hash
- form data
- row
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据比对的方法、装置以及存储介质。其中,方法包括:获取数据库中的预定数据表的第一表单数据;对第一表单数据进行哈希计算,得到第一哈希值;将第一哈希值与第二哈希值进行对比,其中第二哈希值为对预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及在第一哈希值与第二哈希值不同的情况下,确定第一表单数据与第二表单数据存在不同数据。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据比对的方法、装置以及存储介质。
背景技术
随着数据行业的飞速发展,数据服务商需要实时关注数据的变化。当一笔数据(例如,ERP或者WMS等系统产生的数据)写入到数据库中,用户端需要知道数据库中的数据是否发生了变更。通常情况下,当数据库中的数据发生变化时,数据库会主动向用户端推送变更信息。因此数据库每次变更,用户端都会被动的收到信息,这样的好处是用户端的用户可以随时了解到数据库中的数据变化。目前,好多新版本的数据库都提供这种功能(Write-Ahead Transaction Log)。但是,这样的功能是需要用户拥有较高的权限才可以使用。此外,权限低的用户每次确定数据库中的变更数据时,需要在知道表格字段的情况下,进行全表查询,并且查询时间还需要尽可能的短。因此,用户在确定数据库中的数据变更时,会遇到极大的困难。
针对上述的现有技术中存在的不能快速确定数据库中的数据变更以及不能快速确定发生变化的数据的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种数据比对的方法、装置以及存储介质,以至少解决现有技术中存在的不能快速确定数据库中的数据变更以及不能快速确定发生变化的数据的技术问题。
根据本公开实施例的一个方面,提供了一种数据比对的方法,包括:获取数据库中的预定数据表的第一表单数据;对所述第一表单数据进行哈希计算,得到第一哈希值;将所述第一哈希值与第二哈希值进行对比,其中所述第二哈希值为对所述预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及在所述第一哈希值与所述第二哈希值不同的情况下,确定所述第一表单数据与所述第二表单数据存在不同数据。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上所述的方法。
根据本公开实施例的另一个方面,还提供了一种数据比对装置,包括:表单数据获取模块,用于获取数据库中的预定数据表的第一表单数据;哈希值计算模块,用于对所述第一表单数据进行哈希计算,得到第一哈希值;对比模块,用于将所述第一哈希值与第二哈希值进行对比,其中所述第二哈希值为对所述预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及确定模块,用于在所述第一哈希值与所述第二哈希值不同的情况下,确定所述第一表单数据与所述第二表单数据存在不同的数据。
根据本公开实施例的另一个方面,还提供了一种数据比对装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取数据库中的预定数据表的第一表单数据;对第一表单数据进行哈希计算,得到第一哈希值;将第一哈希值与第二哈希值进行对比,其中第二哈希值为对预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及在第一哈希值与第二哈希值不同的情况下,确定第一表单数据与第二表单数据存在不同数据。
从而,在本公开的实施例中,将数据库中预定数据表的不同表单数据进行哈希计算得到不同表单数据的哈希值,并且将计算得到的哈希值进行对比。最终确定数据库中的数据是否发生变化。以及,在表单数据哈希值不同的情况下,确定数据库中的数据发生改变的部分。由于进行哈希计算时不需要了解表单数据的逻辑以及字段解释,所以达到了通过计算哈希值即可确定数据库中的数据是否发生变化的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的技术效果。进而解决了现有技术中存在的不能快速确定数据库中的数据的是否发生变化的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算装置的硬件结构框图;
图2是根据本公开实施例1所述的数据库系统的示意图;
图3是根据本公开实施例1的第一个方面所述的数据比对方法的流程示意图;
图4是根据本公开实施例1所述的第一表单数据的示意图;
图5是根据本公开实施例1所述的第二表单数据的示意图;
图6是根据本公开实施例2所述的数据比对装置的示意图;以及
图7是根据本公开实施例3所述的数据比对装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种数据比对的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据比对的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本公开实施例中的数据比对的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据比对的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,
图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
图2是根据本实施例所述的数据库系统的示意图。参照图2所示,该数据库系统包括:终端设备210、数据库220以及服务器230。其中,用户201可以通过终端设备210访问数据库220。服务器230例如可以是ERP或者WMS等系统的服务器,并且该服务器230所产生的数据写入到数据库220中。需要说明的是,系统中的终端设备210、数据库220以及服务器230均可适用上面所述的硬件结构。
在上述运行环境下,根据本实施例的第一个方面,提供了一种数据比对的方法,该方法由图2中所示的数据库220实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:获取数据库中的预定数据表的第一表单数据;
S304:将第一表单数据进行哈希计算,得到第一哈希值;
S306:将第一哈希值与第二哈希值进行对比,其中第二哈希值为将预定数据表的第二表单数据根据哈希计算所生成的数值;以及
S308:在第一哈希值与第二哈希值不同的情况下,确定第一表单数据与第二表单数据存在不同的数据。
正如背景技术中所述的,随着数据行业的飞速发展,数据服务商需要实时关注数据的变化。当一笔数据(例如,ERP或者WMS等系统产生的数据)写入到数据库中,用户端需要知道数据库中的数据是否发生了变更。通常情况下,当数据库中的数据发生变化时,数据库会主动向用户端推送变更信息。因此数据库每次变更,用户端都会被动的收到信息,这样的好处是用户端的用户可以随时了解到数据库中的数据变化。目前,好多新版本的数据库都提供这种功能(Write-Ahead Transaction Log)。但是,这样的功能是需要用户拥有较高的权限才可以使用。此外,权限低的用户每次确定数据库中的变更数据时,需要在知道表格字段的情况下,进行全表查询,并且查询时间还需要尽可能的短。因此,用户在确定数据库中的数据变更时,会遇到极大的困难。
参考图2所示,针对上述背景技术中的现有技术中存在的不能快速确定数据库中发生的数据变更的技术问题,本实施例的技术方案提供了能够快速确定数据库中预定数据表的数据是否变更的方法。例如,服务器230是仓储系统的服务器,并且仓储系统中的数据保存在数据库220中。当用户201想要查看该仓储系统中的预定数据表的数据是否发生变化时,或者数据库220自动检查仓储系统中的预定数据表的数据是否发生变化时,会调取数据库220中的预定数据表(即,仓储系统的数据表)的当前数据(即第一表单数据)。
进一步地,数据库220将第一表单数据进行哈希计算,得到第一哈希值。例如但不限于,采用数据库系统中常用的MD5或SHA1哈希函数进行哈希计算。得到的第一哈希值与第一表单数据唯一对应。然后,数据库220将第一哈希值与第二哈希值进行对比。其中第二哈希值为将该预定数据表的第二表单数据根据哈希计算所生成的数值。例如,该预定数据表单为仓储系统的数据表,第一表单数据是该仓储系统在当前时刻(例如:10:00)时的存储信息表单,而第二表单数据是该仓储系统在之前的另一时刻(例如:9:00)时的存储信息表单。
然后数据库210会利用与生成第一哈希值同样的哈希计算过程,计算第二数据表单并得到第二哈希值。然后将第一哈希值与第二哈希值进行比较。最终,在第一哈希值与第二哈希值不同的情况下,确定第一表单数据与第二表单数据存在不同的数据。即确定数据库220的预定数据表所存储的数据发生变化。
其中,图4示出了第一表单数据的示意图,图5示出了第二表单数据的示意图。参考图4和图5所示,由于第一表单数据和第二表单数据都是数据库中的同一个表的数据(例如在不同时刻的数据),因此其字段都是相同的。但是,当图4所示的第一表单数据与图5中所示的第二表单数据的数据不同时,根据第一表单数据生成的第一哈希值与根据第二表单数据生成的第二哈希值也不相同。
从而通过这种方式,数据库220将预定数据表的不同表单数据进行哈希计算得到不同表单数据的哈希值,然后将计算得到的哈希值进行对比。最终在表单数据哈希值不同的情况下,确定数据库220中的数据发生变更。由于进行哈希计算时不需要了解表单数据的逻辑以及字段解释,所以达到了通过计算哈希值即可确定数据库中的数据是否发生变化的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的技术效果。进而解决了现有技术中存在的不能快速确定数据库中的数据的是否发生变化的技术问题。
可选地,对第一表单数据进行哈希计算,得到第一哈希值的操作,包括:确定与第一表单数据中的各行数据分别对应的多个行数据哈希值;以及对多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到第一哈希值。
具体地,参考图4所示,数据库220将在对第一表单数据进行哈希计算时,首先确定与第一表单数据中的各行数据分别对应的多个行数据哈希值。例如确定与第1行的行数据cell_1,1~cell_1,n对应的行数据哈希值h_1、与第2行的行数据cell_2,1~cell_2,n对应的行数据哈希值h_2、……、与第k-1行的行数据cell_k-1,1~cell_k-1,n对应的行数据哈希值h_k-1以及与第k行的行数据cell_k,1~cell_k,n对应的行数据哈希值h_k。
然后,数据库220将行数据哈希值h_1~h_k进行合并,并且对合并后的行数据进行哈希计算从而得到与第一表单数据对应的第一哈希值table_hash_1。
从而通过这种方式,可以在不了解表单数据的逻辑以及字段解释的情况下,生成与第一表单数据对应的第一哈希值,从而简化了计算表单数据的哈希值的过程。
并且进一步可选地,确定多个行数据哈希值的操作,包括对第一表单数据的每行数据执行以下操作:将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及对合并数据进行哈希计算,生成行数据哈希值。
例如,数据库220将第一表单数据中第1行中与各个字段对应的数据cell_1,1~cell_1,n进行合并,从而生成合并后的合并数据(例如,构成数据串)。然后,数据库220将合并后的合并数据进行哈希计算,从而生成与第1行行数据对应的行数据哈希值h_1。
然后,数据库220对第一表单数据中的各行的行数据依次执行与上述操作相同的操作,从而生成各个行的行数据哈希值h_2~h_k。
然后,正如前面所述,数据库220再将各个行数据哈希值h_1~h_k合并后进行哈希计算,从而计算得到第一哈希值table_hash_1。
下面示出了针对第一表单数据生成第一哈希值table_hash_1的过程:
数据库220对第一表单数据的每一个数据行,利用哈希函数(hash())对行数据进行哈希计算,得到行数据哈希值:
h_1=hash(cell_1,1||cell_1,2||……||cell_1,n);
h_2=hash(cell_2,1||cell_2,2||……||cell_2,n);
……
h_k=hash(cell_k,1||cell_k,2||……||cell_k,n)。
然后数据库220对多个行数据哈希值进行合并,然后进行哈希计算,得到第一表单数据的第一哈希值table_hash_1:
table_hash_1=hash(h_1||h_2||……||h_k)。
其中,符号“||”表示对字符串进行串联连接。而“hash()”可以是任意的哈希函数。例如,可以是md5函数。
从而通过这种方式,在不需要了解表单数据的逻辑以及字段解释的情况下,也可以通过计算哈希值确定数据库中的数据是否发生变化的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的技术效果。进而解决了现有技术中存在的不能快速确定数据库中发生变化的数据的技术问题。
可选地,对第二表单数据进行哈希计算,得到第二哈希值的操作,包括:确定与第二表单数据中的各行数据分别对应的多个行数据哈希值;以及对多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到第二哈希值。并且进一步可选地,确定多个行数据哈希值的操作,包括对第二表单数据的每行数据执行以下操作:将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及对合并数据进行哈希计算,生成行数据哈希值。
也就是说,参考与第一表单数据相同的方式,生成第二表单数据的第二哈希值table_hash_2。
然后,数据库220通过对第一哈希值table_hash_1与第二哈希值table_hash_2进行比对,即可判定第一表单数据和第二表单数据是否存在不同的数据。
此外,本实施例的方法还包括:在确定第一表单数据与第二表单数据存在不同数据的情况下,确定第一表单数据与第二表单数据之间的不同数据。
具体地,数据库220在确定第一表单数据和第二表单数据存在不同数据之后,进一步确定第一表单数据和第二表单数据之间的不同数据。
例如,预定数据表单为仓储系统的数据表,第一表单数据是该仓储系统在当前时刻(例如:10:00)时的存储信息表单,而第二表单数据是该仓储系统在之前的另一时刻(例如:9:00)时的存储信息表单。因此当第一表单数据与第二表单数据存在不同数据时,就意味着仓储系统内储存的物品有变化。
因此数据库220在此基础上确定第一表单数据与第二表单数据之间的不同数据,即可向用户201的终端210返回不同的数据,从而用户201可以及时了解数据的变化。
进一步可选地,确定第一表单数据与第二表单数据之间的不同数据的操作,包括:将第一表单数据划分成多个数据块,分别对多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与第一表单数据的多个数据块对应的多个第一数据块哈希值;将第二表单数据划分成多个数据块,分别对多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与第二表单数据的多个数据块对应的多个第二数据块哈希值;将多个第一数据块哈希值与多个第二数据块哈希值进行比对;以及在多个第一数据块哈希值与多个第二数据块哈希值之间存在不同哈希值的情况下,将不同哈希值所对应的数据块的数据确定为不同数据。
具体地,数据库220将第一表单数据中的数据cell_1,1~cell_k,n划分成多个数据块,例如数据库220将第一表单数据的每两行数据划分为一个数据块,从而将第一表单数据划分成多个数据块。即,将cell_1,1~cell_2,n划分为一个数据块、将cell_3,1~cell_4,n划分为一个数据块,等等。从而,得到k/2个数据块。然后参考上面所述的方法步骤,对k/2个数据块的数据求取哈希值,从而得到k/2个哈希值(k/2个数据块哈希值)。
然后,数据库220将第二表单数据中的数据cell’_1,1~cell’_m,n按照与第一表单数据相同的方式分割成多个数据块(m/2个数据块),并根据m/2个数据块的数据生成m/2个哈希值(即m/2个数据块哈希值)。
然后数据库220对第一表单数据生成的k/2个哈希值与第二表单数据生成的m/2个哈希值进行比对。然后在第一表单数据的k/2个数据块哈希值与第二表单数据的m/2个数据块哈希值之间不存在不同的哈希值的情况下,将不同的数据块哈希值对应的数据块确定为第一表单数据与第二表单数据之间的不同数据。
由于进行哈希计算时不需要了解表单数据的逻辑以及字段解释,所以达到了通过计算哈希值即可确定数据库中的发生变化的数据的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的部分的技术效果。进而解决了现有技术中存在的不能快速确定数据库中发生变化的数据的技术问题。
可选地,将第一表单数据划分成多个数据块的操作,包括:按照预定行数,将第一表单数据中每预定行数的数据划分为一个数据块。以及,将第二表单数据划分成多个数据块的操作,包括:按照预定行数,将第一表单数据中每预定行数的数据划分为一个数据块。
正如上面所述,数据库220在对第一表单数据和第二表单数据划分数据块时,可以以预定行数为周期,每预定行数的数据划分为一个数据块。譬如说,将每2行数据划分为一个数据块,或者将每3行数据划分为一个数据块。
具体,例如,数据库220可以对第一表单数据和第二表单数据中的数据按照唯一ID进行排序。在排序后,再按照预定行数为周期进行划分。然后数据库220对第一表单数据和第二表单数据划分后的数据块求取哈希值,并进行比对。从而,数据库220根据比对结果,确定发生变化的数据。
至于数据表单的唯一ID可以按照以下方式来确定:可以通过读取表单中带“unique”属性的字段作为唯一ID;如果出现多个带“unique”属性的字段,则可以把它们的值合并当做一个数据行的唯一ID。
综上,根据本实施例的方法,数据库220将预定数据表的不同表单数据进行哈希计算得到不同表单数据的哈希值,将计算得到的哈希值进行对比。最终确定数据库中的数据是否发生变化。以及,在表单数据哈希值不同的情况下,确定数据库220中的数据发生改变的部分。由于进行哈希计算时不需要了解表单数据的逻辑以及字段解释,所以达到了通过计算哈希值即可确定数据库中的数据是否发生变化的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的技术效果。进而解决了现有技术中存在的不能快速确定数据库中的数据的是否发生变化的技术问题。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质104。所述存储介质104包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图6示出了根据本实施例的所述的确定数据变更的装置600,该装置600与根据实施例1的所述的方法相对应。参考图6所示,该装置600包括:表单数据获取模块610,用于获取数据库中的预定数据表的第一表单数据;哈希值计算模块620,用于对第一表单数据进行哈希计算,得到第一哈希值;对比模块630,用于将第一哈希值与第二哈希值进行对比,其中第二哈希值为对预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及确定模块640,用于在第一哈希值与第二哈希值不同的情况下,确定第一表单数据与第二表单数据存在不同的数据。
可选地,哈希值计算模块620包括:行数据哈希值确定子模块,用于确定与第一表单数据中的各行数据分别对应的多个行数据哈希值;以及第一哈希值计算子模块,用于对多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到第一哈希值。
可选地,行数据哈希值确定子模块包括:行数据合并单元,用于将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及行数据哈希值计算单元,用于对合并数据进行哈希计算,生成行数据哈希值。
可选地,对第二表单数据进行哈希计算,得到第二哈希值的操作,包括:确定与第二表单数据中的各行数据分别对应的多个行数据哈希值;以及对多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到第二哈希值。
可选地,确定多个行数据哈希值的操作,包括对第二表单数据的每行数据执行以下操作:将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及对合并数据进行哈希计算,生成行数据哈希值。
可选地,还包括,数据确定模块用于在确定第一表单数据与第二表单数据存在不同数据的情况下,确定第一表单数据与第二表单数据之间的不同数据。
可选地,数据确定模块包括:第一数据块哈希值生成子模块,用于将第一表单数据划分成多个数据块,分别对多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与第一表单数据的多个数据块对应的多个第一数据块哈希值;第二数据块哈希值生成子模块,用于将第二表单数据划分成多个数据块,分别对多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与第二表单数据的多个数据块对应的多个第二数据块哈希值;数据比对子模块,用于将多个第一数据块哈希值与多个第二数据块哈希值进行比对;以及数据确定子模块,用于在多个第一数据块哈希值与多个第二数据块哈希值之间存在不同哈希值的情况下,将不同哈希值所对应的数据块的数据确定为不同数据。
可选地,第一数据块哈希值生成子模块包括第一数据划分单元,用于按照预定行数,将第一表单数据中每预定行数的数据划分为一个数据块,以及第二数据块哈希值生成子模块包括第二数据划分单元,用于按照预定行数,将第一表单数据中每预定行数的数据划分为一个数据块。
综上,根据本实施例的方法,将数据库中预定数据表的不同表单数据进行哈希计算得到不同表单数据的哈希值,并且将计算得到的哈希值进行对比。最终确定数据库中的数据是否发生变化。以及,在表单数据哈希值不同的情况下,确定数据库中的数据发生改变的部分。由于进行哈希计算时不需要了解表单数据的逻辑以及字段解释,所以达到了通过计算哈希值即可确定数据库中的数据是否发生变化的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的技术效果。进而解决了现有技术中存在的不能快速确定数据库中的数据的是否发生变化的技术问题。
实施例3
图7示出了根据本实施例的所述的数据比对装置700,该装置700与根据实施例1的第一个方面所述的方法相对应。参考图7所示,该装置700包括:处理器710;以及存储器720,与处理器710连接,用于为处理器710提供处理以下处理步骤的指令:获取数据库中的预定数据表的第一表单数据;对第一表单数据进行哈希计算,得到第一哈希值;将第一哈希值与第二哈希值进行对比,其中第二哈希值为对预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及在第一哈希值与第二哈希值不同的情况下,确定第一表单数据与第二表单数据存在不同数据。
可选地,对第一表单数据进行哈希计算,得到第一哈希值的操作,包括:确定与第一表单数据中的各行数据分别对应的多个行数据哈希值;以及对多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到第一哈希值。
可选地,确定多个行数据哈希值的操作,包括对第一表单数据的每行数据执行以下操作:将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及对合并数据进行哈希计算,生成行数据哈希值。
可选地,对第二表单数据进行哈希计算,得到第二哈希值的操作,包括:确定与第二表单数据中的各行数据分别对应的多个行数据哈希值;以及对多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到第二哈希值。
可选地,确定多个行数据哈希值的操作,包括对第二表单数据的每行数据执行以下操作:将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及对合并数据进行哈希计算,生成行数据哈希值。
可选地,存储器720还包括执行以下操作步骤的指令:在确定第一表单数据与第二表单数据存在不同数据的情况下,确定第一表单数据与第二表单数据之间的不同数据。
可选地,确定第一表单数据与第二表单数据之间的不同数据的操作,包括:将第一表单数据划分成多个数据块,分别对多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与第一表单数据的多个数据块对应的多个第一数据块哈希值;将第二表单数据划分成多个数据块,分别对多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与第二表单数据的多个数据块对应的多个第二数据块哈希值;将多个第一数据块哈希值与多个第二数据块哈希值进行比对;以及在多个第一数据块哈希值与多个第二数据块哈希值之间存在不同哈希值的情况下,将不同哈希值所对应的数据块的数据确定为不同数据。
可选地,将第一表单数据划分成多个数据块的操作,包括:按照预定行数,将第一表单数据中每预定行数的数据划分为一个数据块,以及将第二表单数据划分成多个数据块的操作,包括:按照预定行数,将第一表单数据中每预定行数的数据划分为一个数据块。
综上,根据本实施例的方法,将数据库中预定数据表的不同表单数据进行哈希计算得到不同表单数据的哈希值,并且将计算得到的哈希值进行对比。最终确定数据库中的数据是否发生变化。以及,在表单数据哈希值不同的情况下,确定数据库中的数据发生改变的部分。由于进行哈希计算时不需要了解表单数据的逻辑以及字段解释,所以达到了通过计算哈希值即可确定数据库中的数据是否发生变化的目的。从而实现了权限低的用户即使在不清楚数据表单的使用逻辑的情况下,也能通过哈希计算快速确定数据库中的数据发生变化的技术效果。进而解决了现有技术中存在的不能快速确定数据库中的数据的是否发生变化的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据比对的方法,其特征在于,包括:
获取数据库中的预定数据表的第一表单数据;
对所述第一表单数据进行哈希计算,得到第一哈希值;
将所述第一哈希值与第二哈希值进行对比,其中所述第二哈希值为对所述预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及
在所述第一哈希值与所述第二哈希值不同的情况下,确定所述第一表单数据与所述第二表单数据存在不同数据。
2.根据权利要求1所述的方法,其特征在于,对所述第一表单数据进行哈希计算,得到第一哈希值的操作,包括:
确定与所述第一表单数据中的各行数据分别对应的多个行数据哈希值;以及
对所述多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到所述第一哈希值。
3.根据权利要求2所述的方法,其特征在于,确定所述多个行数据哈希值的操作,包括对所述第一表单数据的每行数据执行以下操作:
将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及
对所述合并数据进行哈希计算,生成行数据哈希值。
4.根据权利要求1所述的方法,其特征在于,对所述第二表单数据进行哈希计算,得到第二哈希值的操作,包括:
确定与所述第二表单数据中的各行数据分别对应的多个行数据哈希值;以及
对所述多个行数据哈希值进行合并,并对合并后的行数据哈希值进行哈希计算,得到所述第二哈希值。
5.根据权利要求4所述的方法,其特征在于,确定所述多个行数据哈希值的操作,包括对所述第二表单数据的每行数据执行以下操作:
将数据行内与各个字段对应的数据进行合并,生成合并后的合并数据;以及
对所述合并数据进行哈希计算,生成行数据哈希值。
6.根据权利要求1所述的方法,其特征在于,还包括,在确定所述第一表单数据与所述第二表单数据存在不同数据的情况下,确定所述第一表单数据与所述第二表单数据之间的所述不同数据。
7.根据权利要求6所述的方法,其特征在于,确定所述第一表单数据与所述第二表单数据之间的所述不同数据的操作,包括:
将所述第一表单数据划分成多个数据块,分别对所述多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与所述第一表单数据的所述多个数据块对应的多个第一数据块哈希值;
将所述第二表单数据划分成多个数据块,分别对所述多个数据块的数据进行合并并且对合并后的数据进行哈希运算,从而生成与所述第二表单数据的所述多个数据块对应的多个第二数据块哈希值;
将所述多个第一数据块哈希值与所述多个第二数据块哈希值进行比对;以及
在所述多个第一数据块哈希值与所述多个第二数据块哈希值之间存在不同哈希值的情况下,将所述不同哈希值所对应的数据块的数据确定为所述不同数据。
8.根据权利要求7所述的方法,其特征在于,将所述第一表单数据划分成多个数据块的操作,包括:按照预定行数,将所述第一表单数据中每预定行数的数据划分为一个数据块,以及
将所述第二表单数据划分成多个数据块的操作,包括:按照所述预定行数,将所述第一表单数据中每预定行数的数据划分为一个数据块。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至8中任意一项所述的方法。
10.一种数据比对装置(600),其特征在于,包括:
表单数据获取模块(610),用于获取数据库中的预定数据表的第一表单数据;
哈希值计算模块(620),用于对所述第一表单数据进行哈希计算,得到第一哈希值;
对比模块(630),用于将所述第一哈希值与第二哈希值进行对比,其中所述第二哈希值为对所述预定数据表的第二表单数据进行哈希计算所生成的哈希值;以及
确定模块(640),用于在所述第一哈希值与所述第二哈希值不同的情况下,确定所述第一表单数据与所述第二表单数据存在不同的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811555818.4A CN109656964A (zh) | 2018-12-19 | 2018-12-19 | 数据比对的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811555818.4A CN109656964A (zh) | 2018-12-19 | 2018-12-19 | 数据比对的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656964A true CN109656964A (zh) | 2019-04-19 |
Family
ID=66115720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811555818.4A Pending CN109656964A (zh) | 2018-12-19 | 2018-12-19 | 数据比对的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656964A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506499A (zh) * | 2020-04-08 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 一种小程序中参数可用性检测方法、装置以及电子设备 |
CN112347130A (zh) * | 2020-12-11 | 2021-02-09 | 南威软件股份有限公司 | 一种表格数据一致性的比对方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678583B (zh) * | 2013-12-11 | 2017-07-21 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
US20170286544A1 (en) * | 2015-09-16 | 2017-10-05 | RiskIQ, Inc. | Using hash signatures of dom objects to identify website similarity |
CN107392745A (zh) * | 2017-07-14 | 2017-11-24 | 上海瀚之友信息技术服务有限公司 | 一种对帐数据碎片化处理方法 |
CN107807982A (zh) * | 2017-10-27 | 2018-03-16 | 中国农业银行股份有限公司 | 一种异构数据库的一致性校验方法及装置 |
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN108153784A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 同步数据处理方法和装置 |
-
2018
- 2018-12-19 CN CN201811555818.4A patent/CN109656964A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678583B (zh) * | 2013-12-11 | 2017-07-21 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
US20170286544A1 (en) * | 2015-09-16 | 2017-10-05 | RiskIQ, Inc. | Using hash signatures of dom objects to identify website similarity |
CN108153784A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 同步数据处理方法和装置 |
CN107392745A (zh) * | 2017-07-14 | 2017-11-24 | 上海瀚之友信息技术服务有限公司 | 一种对帐数据碎片化处理方法 |
CN107807982A (zh) * | 2017-10-27 | 2018-03-16 | 中国农业银行股份有限公司 | 一种异构数据库的一致性校验方法及装置 |
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506499A (zh) * | 2020-04-08 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 一种小程序中参数可用性检测方法、装置以及电子设备 |
CN112347130A (zh) * | 2020-12-11 | 2021-02-09 | 南威软件股份有限公司 | 一种表格数据一致性的比对方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636130B (zh) | 用于生成事件树的方法和系统 | |
CN105915650B (zh) | 负载均衡方法和装置 | |
EP3751787A1 (en) | Techniques to generate network simulation scenarios | |
CN113590776B (zh) | 基于知识图谱的文本处理方法、装置、电子设备及介质 | |
CN114785696B (zh) | 复杂网络节点的重要度评估方法及装置 | |
US20220036491A1 (en) | Method, system, and non-transitory computer-readable recording medium for providing learner-personalized education service | |
CN110046036A (zh) | 一种操作请求分配方法、装置及设备 | |
Levitin et al. | Optimizing Dynamic Performance of Multistate Systems With Heterogeneous 1-Out-of-${N} $ Warm Standby Components | |
KR102084092B1 (ko) | 수학 교육 서비스 제공 방법, 학습 관리 서버 및 수학 교육 시스템 | |
CN109656964A (zh) | 数据比对的方法、装置以及存储介质 | |
CN112256886A (zh) | 图谱中的概率计算方法、装置、计算机设备及存储介质 | |
US20180336494A1 (en) | Translating sensor input into expertise | |
CN110493736A (zh) | 短信发送方法、装置和存储介质 | |
WO2018078761A1 (ja) | クラスタリングシステム、方法およびプログラム、並びに、レコメンドシステム | |
CN109697249A (zh) | 搜索目标对象以及发布对象的方法、系统以及存储介质 | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
CN109669807A (zh) | 业务事件的校验方法及装置、处理器、存储介质 | |
CN109445995A (zh) | 服务器数据处理方法、装置以及存储介质 | |
CN110321540A (zh) | 一种生成表单的方法、装置、电子设备及介质 | |
CN115774707A (zh) | 基于对象属性数据处理方法和装置、电子设备和存储介质 | |
CN109299195A (zh) | 数据处理方法、装置及存储介质 | |
CN106294058A (zh) | 处理运营问题单据的目标策略确定方法及装置 | |
CN110011971A (zh) | 一种网络安全策略的手动配置方法 | |
CN114693131A (zh) | 配件机器人的故障处理方法及装置 | |
CN108052335A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |
|
RJ01 | Rejection of invention patent application after publication |