CN103678583B - 结构化数据比较的方法及*** - Google Patents
结构化数据比较的方法及*** Download PDFInfo
- Publication number
- CN103678583B CN103678583B CN201310676018.9A CN201310676018A CN103678583B CN 103678583 B CN103678583 B CN 103678583B CN 201310676018 A CN201310676018 A CN 201310676018A CN 103678583 B CN103678583 B CN 103678583B
- Authority
- CN
- China
- Prior art keywords
- database
- hash
- row
- sequencing
- hash table
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种结构化数据比较的方法及***。其中该方法包括如下步骤:采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;分别将标准定序哈希表和比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算标准字符和比较字符的标准哈希值和比较哈希值;判断标准哈希值和比较哈希值是否相同,若相同,则标准数据库和比较数据库中的数据相同;否则不相同。其无需数据库服务器进行排序工作,减小数据库服务器的计算压力,资源占用率低,效率高,且不存在服务器宕机的风险。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种结构化数据比较的方法及***。
背景技术
随着近年来各个行业IT建设不断完善,保障用户的数据完整性的灾备***、业务连续性的容灾***等计算机软硬件集成方案的逐渐普及,业界逐渐产生和明确了这样一个需求:对于主备数据库的数据进行日常比较和同步后比较,得到是否一致的结论,如果有差异,对存在差异的数据进行精确定位。因此容灾解决方案中是否包含数据比较已成为该容灾解决方案是否成熟的衡量标志之一,而数据比较能否实现差异数据精确定位更是整个方案的技术水平的直接体现。
在传统技术中,使用“select*from表名order by关键字”或其它查询条件得到的查询结果求得MD5值,进行比较。比较结果准确,但数据的排序工作交给数据库,对数据库服务器造成的压力大,资源占用率高,当比较的数据量庞大时有数据库服务器宕机的风险。
发明内容
基于此,有必要提供一种数据库服务器计算压力小,资源占用率低的结构化数据比较的方法及***。
为实现本发明目的提供的一种结构化数据比较的方法,包括以下步骤:
采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;
分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;
判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;
所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。
在其中一个实施例中,所述采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,包括以下步骤:
根据数据库的行数,选定装填因子创建哈希表;
查询所述数据库,并返回查询结果集;
根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;
将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字***所述哈希表;
采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。
在其中一个结构化数据比较的方法的实施例中,采用MD5算法计算所述哈希值。
在其中一个结构化数据比较的方法的实施例中,还包括以下步骤:
当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;
根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;
根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;
查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。
在其中一个结构化数据比较的方法的实施例中,当所述标准哈希表或所述比较哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对***所述定序哈希表中的节点进行排序。
基于同一发明构思的一种结构化数据比较的***,包括定序哈希表构建模块,比较哈希值计算模块,以及第一判断模块,其中:
所述定序哈希表构建模块,用于采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;
所述比较哈希值计算模块,用于分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;
所述第一判断模块,用于判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;
所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。
在其中一个结构化数据比较的***的实施例中,所述定序哈希表构建模块包括装填因子创建子模块,查询子模块,行哈希值计算子模块,节点子模块,以及定序子模块,其中:
所述装填因子创建子模块,用于根据数据库的行数,选定装填因子创建哈希表;
所述查询子模块,用于查询所述数据库,并返回查询结果集;
所述行哈希值计算子模块,用于根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;
所述节点子模块,用于将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字***所述哈希表;
所述定序子模块,用于采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。
在其中一个结构化数据比较的***的实施例中,采用MD5算法计算所述哈希值。
在其中一个结构化数据比较的***的实施例中,还包括第二判断模块,第一执行模块,第二执行模块,以及第三执行模块,其中:
所述第二判断模块,用于当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;
所述第一执行模块,用于根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;
所述第二执行模块,用于根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;
所述第三执行模块,用于查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。
在其中一个结构化数据比较的***的实施例中,当所述标准哈希表或所述比较哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对***所述定序哈希表中的节点进行排序。
本发明的有益效果包括:
本发明提供的结构化数据比较的方法及***,标准哈希值与比较哈希值可在不同的服务器上同时单独进行,且无需数据库服务器进行排序工作。减小数据库服务器的计算压力,资源占用率低,不存在服务器宕机的风险。进行一次哈希值的比较,判断出两数据库是否相同,判断方式简单明了,效率高。
附图说明
图1为本发明一种结构化数据比较的方法的一具体实施例的流程图;
图2为本发明一种结构化数据比较的***的一具体实施例的***结构示意图;
图3为本发明一种结构化数据比较的***的一具体实施例的定序哈希表构建模块的结构示意图;
图4为本发明一种结构化数据比较的***的另一具体实施例的***结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例的结构化数据比较的方法及***的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的结构化数据比较的方法,如图1所示,包括以下步骤:
S100,采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。所述标准数据库是指真实应用的实际的作为比较标准的数据库,所述比较数据库可以为所述标准数据库的备份数据库。所述定序哈希分布算法是指:对数据行的行关键字的哈希值使用time33算法,使数据行对应的节点***到哈希表的特定位置。进而对标准库和比较库,在装填因子相同的情况下,相同行关键字的数据行在哈希表中相同的位置。构建以数据行为单位计算节点的哈希值构成定序哈希表,哈希表中的数据包括数据库数据行的哈希值,数据行的行关键字数据。所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。如此,无论标准数据库与比较数据库中数据存储的顺序是否相同,只要所包含的数据完全相同则可以得到完全相同的定序哈希表。
S200,分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值。在所述哈希表中,可能存在某些节点为空节点,有数据的节点中的数据为从所述数据库中得到的哈希值及行关键字。将所述定序哈希表中的所有有数据的节点的节点值及关键字连接成字符串,对于包含数据相同的数据库,此字符串应完全相同,当然所述字符串得到的哈希值也应完全相同。因此,可构建所述的标准哈希值和比较哈希值,并通过其对数据库进行判断。
S300,判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同。如上所述,相同的数据库数据会得到相同的定序哈希表,从而标准哈希值与比较哈希值会完全相同。
本发明实施例的结构化数据比较的方法,标准哈希值与比较哈希值可在不同的服务器上同时单独进行,且无需数据库的排序工作。减小数据库服务器的计算压力,资源占用率低,不存在服务器宕机的风险。进行一次哈希值比较,判断两数据库是否相同,判断方式简单明了,效率高。
在其中一个实施例中,步骤S100,包括以下步骤:
S110,根据数据库的行数,选定装填因子创建哈希表。例如可选定装填因子为0.5,则若数据库中包含20000行数据,构建包含40000行的哈希表。
S120,查询所述数据库,并返回查询结果集。对数据库中的数据逐行进行查找,并返回查询结果集。
S130,根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字。
S140,将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字***所述哈希表。根据所述行关键字的值即可对应的得到所述行关键字。
S150,采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。此处需要说明的是,步骤S150与步骤S140为结合进行的,没有完全的前后关系。
在其中一个实施例中,采用MD5算法计算所述哈希值。采用消息摘要算法第五版(Message Digest Algorithm5,MD5)计算哈希值,保证数据的安全性与准确性。
在其中一个结构化数据比较的方法的实施例中,还包括以下步骤:
S400,当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果。当所述标准数据库和所述比较数据库的数据不相同时,需要判断所述不相同数据的类型,如额外数据或者缺少数据。因此,以所述标准定序哈希表为基础,返回所述比较数据库逐行查找所述比较数据库中的数据,逐行进行判断。
S500,根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点。根据关键字进行判断,查找到相同关键字时,则说明比较数据库与所述标准数据库中存在关键字相同的数据行,则进一步比较该数据行对应的哈希值是否相同。若数据行的哈希值完全相同则说明两数据库该关键字的数据行完全相同。删除数据行相同的哈希表的节点,以便后续进一步进行判断。若存在相同的关键字,但相同数据行的行哈希值不同,则说明对应数据行存在差异,做出相应的标记。
S600,根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果。若不存在相同关键字的节点,则说明比较数据库中此数据行在标准数据库中不存在,则其为额外的数据行,做出相应的标记。
S700,查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。因步骤S500中删除了已查找到的关键字的节点,证明剩余的节点在比较数据库中没有对应的数据行,因此,剩余的节点的数据行为比较数据库中缺失的数据行。
本发明实施例中,通过查询比较数据库中的数据行,并与标准定序哈希表进行比较,在发现不同数据类型的同时准确定位不同数据对应的数据行。定位准确简单,计算量相对传统数据小。
在其中一个实施例中,当所述标准哈希表或所述比较哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对***所述定序哈希表中的节点进行排序。由此,可避免定序哈希表中同一位置包含多个节点时,造成输出的标准哈希值不唯一。
基于同一发明构思,本发明实施例提供一种结构化数据比较的***,由于此***解决问题的原理与前述一种结构化数据比较的方法相似,因此,该***的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
本发明实施例的一种结构化数据比较的***,如图2所示,包括定序哈希表构建模块100,比较哈希值计算模块200,以及第一判断模块300,其中:所述定序哈希表构建模块100,用于采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;所述比较哈希值计算模块200,用于分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;所述第一判断模块300,用于判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。
本发明实施例的结构化数据比较的***,标准哈希值与比较哈希值可在不同的服务器上同时单独进行,且无需数据库的排序工作。减小数据库服务器的计算压力,资源占用率低,不存在服务器宕机的风险。进行一次哈希值的比较,判断出两数据库是否相同,判断方式简单明了,效率高。
在其中一个实施例中,所述定序哈希表构建模块100包括装填因子创建子模块110,查询子模块120,行哈希值计算子模块130,节点子模块140,以及定序子模块150,其中:所述装填因子创建子模块110,用于根据数据库的行数,选定装填因子创建哈希表;所述查询子模块120,用于查询所述数据库,并返回查询结果集;所述行哈希值计算子模块130,用于根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;所述节点子模块140,用于将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字***所述哈希表;所述定序子模块150,用于采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。
在其中一个结构化数据比较的***的实施例中,采用MD5算法计算所述哈希值。可保证数据的安全性与准确性。
在其中一个结构化数据比较的***的实施例中,还包括第二判断模块400,第一执行模块500,第二执行模块600,以及第三执行模块700,其中:所述第二判断模块400,用于当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;所述第一执行模块500,用于根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;所述第二执行模块600,用于根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;所述第三执行模块700,用于查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。
本发明实施例中,通过查询比较数据库中的数据行,并与标准定序哈希表进行比较,在发现不同数据类型的同时准确定位不同数据对应的数据行。定位准确简单,计算量相对传统数据小。
在其中一个实施例中,当所述标准哈希表或所述比较哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对***所述定序哈希表中的节点进行排序。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种结构化数据比较的方法,其特征在于,包括以下步骤:
采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,其中,根据数据库的行数,选定装填因子创建哈希表;
分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;
判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;
所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置;
其中,所述定序哈希分布算法是指:对数据行的行关键字的哈希值使用time33算法,使数据行对应的节点***到哈希表的特定位置。
2.根据权利要求1所述的结构化数据比较的方法,其特征在于,所述采用定序哈希分布算法,以数据库的数据行的哈希值作为节点值,以所述数据行的关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,还包括以下步骤:
查询所述数据库,并返回查询结果集;
根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;
将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字***所述哈希表;
采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。
3.根据权利要求1或2所述的结构化数据比较的方法,其特征在于,采用MD5算法计算所述哈希值。
4.根据权利要求1所述的结构化数据比较的方法,其特征在于,还包括以下步骤:
当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;
根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;
根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;
查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。
5.根据权利要求2所述的结构化数据比较的方法,其特征在于,当所述哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对***所述定序哈希表中的节点进行排序。
6.一种结构化数据比较的***,其特征在于,包括定序哈希表构建模块,比较哈希值计算模块,以及第一判断模块,其中:
所述定序哈希表构建模块,用于采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,包括装填因子创建子模块,所述装填因子创建子模块,用于根据数据库的行数,选定装填因子创建哈希表;
所述比较哈希值计算模块,用于分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;
所述第一判断模块,用于判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;
所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置;
其中,所述定序哈希分布算法是指:对数据行的行关键字的哈希值使用time33算法,使数据行对应的节点***到哈希表的特定位置。
7.根据权利要求6所述的结构化数据比较的***,其特征在于,所述定序哈希表构建模块还包括查询子模块,行哈希值计算子模块,节点子模块,以及定序子模块,其中:
所述查询子模块,用于查询所述数据库,并返回查询结果集;
所述行哈希值计算子模块,用于根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;
所述节点子模块,用于将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字***所述哈希表;
所述定序子模块,用于采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。
8.根据权利要求6或7所述的结构化数据比较的***,其特征在于,采用MD5算法计算所述哈希值。
9.根据权利要求6所述的结构化数据比较的***,其特征在于,还包括第二判断模块,第一执行模块,第二执行模块,以及第三执行模块,其中:
所述第二判断模块,用于当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;
所述第一执行模块,用于根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;
所述第二执行模块,用于根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;
所述第三执行模块,用于查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。
10.根据权利要求6所述的结构化数据比较的***,其特征在于,当所述哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对***所述定序哈希表中的节点进行排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310676018.9A CN103678583B (zh) | 2013-12-11 | 2013-12-11 | 结构化数据比较的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310676018.9A CN103678583B (zh) | 2013-12-11 | 2013-12-11 | 结构化数据比较的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678583A CN103678583A (zh) | 2014-03-26 |
CN103678583B true CN103678583B (zh) | 2017-07-21 |
Family
ID=50316128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310676018.9A Active CN103678583B (zh) | 2013-12-11 | 2013-12-11 | 结构化数据比较的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678583B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656964A (zh) * | 2018-12-19 | 2019-04-19 | 北京超萌国际文化有限公司 | 数据比对的方法、装置以及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778179B (zh) * | 2014-01-14 | 2019-05-28 | 阿里巴巴集团控股有限公司 | 一种数据迁移测试方法和*** |
CN104036029B (zh) * | 2014-06-27 | 2016-04-13 | 深圳市腾讯计算机***有限公司 | 大数据一致性对比方法和*** |
CN104331438B (zh) * | 2014-10-24 | 2018-04-17 | 北京奇虎科技有限公司 | 对小说网页内容选择性抽取方法和装置 |
CN104391894A (zh) * | 2014-11-11 | 2015-03-04 | 广州科腾信息技术有限公司 | 一种重复数据的检查处理方法 |
CN105677645B (zh) * | 2014-11-17 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种数据表比对方法和装置 |
CN105988889B (zh) * | 2015-02-11 | 2019-06-14 | 阿里巴巴集团控股有限公司 | 一种数据校验方法及装置 |
CN106815100A (zh) * | 2015-11-27 | 2017-06-09 | 北京国双科技有限公司 | 接口测试方法及装置 |
CN107247749B (zh) | 2017-05-25 | 2020-08-25 | 创新先进技术有限公司 | 一种数据库状态确定方法、一致性验证方法及装置 |
CN112468697B (zh) * | 2020-11-18 | 2022-05-27 | 江汉大学 | 一种具有智能化位置调整功能的视觉采集方法和装置 |
CN114791916B (zh) * | 2022-06-22 | 2022-10-11 | 广东杰纳医药科技有限公司 | 一种临床试验数据的快速比对方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067547A (en) * | 1997-08-12 | 2000-05-23 | Microsoft Corporation | Hash table expansion and contraction for use with internal searching |
CN1778087A (zh) * | 2003-04-04 | 2006-05-24 | 丛林网络公司 | 攻击数据库结构 |
US7167980B2 (en) * | 2002-05-30 | 2007-01-23 | Intel Corporation | Data comparison process |
CN101957858A (zh) * | 2010-09-27 | 2011-01-26 | 中兴通讯股份有限公司 | 数据比对方法和装置 |
CN102362273A (zh) * | 2009-04-01 | 2012-02-22 | 赛贝斯股份有限公司 | 用于关系数据库***中高效数据存取的动态散列表 |
-
2013
- 2013-12-11 CN CN201310676018.9A patent/CN103678583B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067547A (en) * | 1997-08-12 | 2000-05-23 | Microsoft Corporation | Hash table expansion and contraction for use with internal searching |
US7167980B2 (en) * | 2002-05-30 | 2007-01-23 | Intel Corporation | Data comparison process |
CN1778087A (zh) * | 2003-04-04 | 2006-05-24 | 丛林网络公司 | 攻击数据库结构 |
CN102362273A (zh) * | 2009-04-01 | 2012-02-22 | 赛贝斯股份有限公司 | 用于关系数据库***中高效数据存取的动态散列表 |
CN101957858A (zh) * | 2010-09-27 | 2011-01-26 | 中兴通讯股份有限公司 | 数据比对方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656964A (zh) * | 2018-12-19 | 2019-04-19 | 北京超萌国际文化有限公司 | 数据比对的方法、装置以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103678583A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678583B (zh) | 结构化数据比较的方法及*** | |
US10628449B2 (en) | Method and apparatus for processing database data in distributed database system | |
CN101436192B (zh) | 用于优化针对垂直存储式数据库的查询的方法和设备 | |
CN107451208B (zh) | 一种数据搜索方法与装置 | |
CN106815326B (zh) | 一种检测无主键数据表一致性的***及方法 | |
CN104077423A (zh) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 | |
CN103631924B (zh) | 一种分布式数据库平台的应用方法和*** | |
CN109299157B (zh) | 一种分布式大单表的数据导出方法及装置 | |
CN103856462B (zh) | 一种会话的管理方法及*** | |
CN106874788B (zh) | 一种敏感数据发布中的隐私保护方法 | |
CN105302920A (zh) | 一种云存储数据的优化管理方法和*** | |
CN103823846A (zh) | 一种基于图论的大数据存储及查询方法 | |
CN106599091A (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN104268298A (zh) | 一种创建数据库索引及其查询的方法 | |
CN102420771A (zh) | 高速网络环境中提高tcp并发连接速度的方法 | |
CN102082832B (zh) | 一种分布式文件***中的数据存储方法和装置 | |
CN105471893A (zh) | 一种分布式等值数据流连接方法 | |
CN105138638A (zh) | 一种基于应用层的数据库分布方法 | |
CN110134698A (zh) | 数据管理方法及相关产品 | |
CN112948898A (zh) | 一种区块链中防止应用数据被篡改的方法和安全模块 | |
WO2013097065A1 (zh) | 一种索引数据处理方法及设备 | |
CN108345699A (zh) | 获取多媒体数据的方法、装置及存储介质 | |
CN113779025B (zh) | 一种区块链中分类数据检索效率的优化方法、***及应用 | |
CN104391931A (zh) | 一种云计算中海量数据高效索引方法 | |
CN112488708B (zh) | 区块链账户关联性查询方法及虚假交易筛选方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |