结构化数据比较的方法及系统技术方案

技术编号:9865917 阅读:82 留言:0更新日期:2014-04-03 01:24
本发明专利技术公开了一种结构化数据比较的方法及系统。其中该方法包括如下步骤:采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;分别将标准定序哈希表和比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算标准字符和比较字符的标准哈希值和比较哈希值;判断标准哈希值和比较哈希值是否相同,若相同,则标准数据库和比较数据库中的数据相同;否则不相同。其无需数据库服务器进行排序工作,减小数据库服务器的计算压力,资源占用率低,效率高,且不存在服务器宕机的风险。

【技术实现步骤摘要】
结构化数据比较的方法及系统
本专利技术涉及计算机领域,尤其涉及一种结构化数据比较的方法及系统。
技术介绍
随着近年来各个行业IT建设不断完善,保障用户的数据完整性的灾备系统、业务连续性的容灾系统等计算机软硬件集成方案的逐渐普及,业界逐渐产生和明确了这样一个需求:对于主备数据库的数据进行日常比较和同步后比较,得到是否一致的结论,如果有差异,对存在差异的数据进行精确定位。因此容灾解决方案中是否包含数据比较已成为该容灾解决方案是否成熟的衡量标志之一,而数据比较能否实现差异数据精确定位更是整个方案的技术水平的直接体现。在传统技术中,使用“select*from表名orderby关键字”或其它查询条件得到的查询结果求得MD5值,进行比较。比较结果准确,但数据的排序工作交给数据库,对数据库服务器造成的压力大,资源占用率高,当比较的数据量庞大时有数据库服务器宕机的风险。
技术实现思路
基于此,有必要提供一种数据库服务器计算压力小,资源占用率低的结构化数据比较的方法及系统。为实现本专利技术目的提供的一种结构化数据比较的方法,包括以下步骤:采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。在其中一个实施例中,所述采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,包括以下步骤:根据数据库的行数,选定装填因子创建哈希表;查询所述数据库,并返回查询结果集;根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字插入所述哈希表;采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。在其中一个结构化数据比较的方法的实施例中,采用MD5算法计算所述哈希值。在其中一个结构化数据比较的方法的实施例中,还包括以下步骤:当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。在其中一个结构化数据比较的方法的实施例中,当所述标准哈希表或所述比较哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对插入所述定序哈希表中的节点进行排序。基于同一专利技术构思的一种结构化数据比较的系统,包括定序哈希表构建模块,比较哈希值计算模块,以及第一判断模块,其中:所述定序哈希表构建模块,用于采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;所述比较哈希值计算模块,用于分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;所述第一判断模块,用于判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。在其中一个结构化数据比较的系统的实施例中,所述定序哈希表构建模块包括装填因子创建子模块,查询子模块,行哈希值计算子模块,节点子模块,以及定序子模块,其中:所述装填因子创建子模块,用于根据数据库的行数,选定装填因子创建哈希表;所述查询子模块,用于查询所述数据库,并返回查询结果集;所述行哈希值计算子模块,用于根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;所述节点子模块,用于将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字插入所述哈希表;所述定序子模块,用于采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。在其中一个结构化数据比较的系统的实施例中,采用MD5算法计算所述哈希值。在其中一个结构化数据比较的系统的实施例中,还包括第二判断模块,第一执行模块,第二执行模块,以及第三执行模块,其中:所述第二判断模块,用于当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;所述第一执行模块,用于根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;所述第二执行模块,用于根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;所述第三执行模块,用于查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。在其中一个结构化数据比较的系统的实施例中,当所述标准哈希表或所述比较哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对插入所述定序哈希表中的节点进行排序。本专利技术的有益效果包括:本专利技术提供的结构化数据比较的方法及系统,标准哈希值与比较哈希值可在不同的服务器上同时单独进行,且无需数据库服务器进行排序工作。减小数据库服务器的计算压力,资源占用率低,不存在服务器宕机的风险。进行一次哈希值的比较,判断出两数据库是否相同,判断方式简单明了,效率高。附图说明图1为本专利技术一种结构化数据比本文档来自技高网...
结构化数据比较的方法及系统

【技术保护点】
一种结构化数据比较的方法,其特征在于,包括以下步骤:采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的行关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表;分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置。

【技术特征摘要】
1.一种结构化数据比较的方法,其特征在于,包括以下步骤:采用定序哈希分布算法,以数据库的数据行的行哈希值作为节点值,以所述数据行的关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,其中,根据数据库的行数,选定装填因子创建哈希表;分别将所述标准定序哈希表和所述比较定序哈希表中有数据的节点的关键字和节点值连接成标准字符和比较字符,并计算所述标准字符和所述比较字符的标准哈希值和比较哈希值;判断所述标准哈希值和所述比较哈希值是否相同,若相同,则所述标准数据库和所述比较数据库中的数据相同;否则不相同;所述定序哈希表中,相同关键字的哈希表节点在所述定序哈希表中的相同位置;其中,所述定序哈希分布算法是指:对数据行的行关键字的哈希值使用time33算法,使数据行对应的节点插入到哈希表的特定位置。2.根据权利要求1所述的结构化数据比较的方法,其特征在于,所述采用定序哈希分布算法,以数据库的数据行的哈希值作为节点值,以所述数据行的关键字的哈希值作为节点的关键字,分别构建标准数据库和比较数据库的标准定序哈希表和比较定序哈希表,还包括以下步骤:查询所述数据库,并返回查询结果集;根据所述查询结果集,逐行计算所述查询结果集的行哈希值,得到所述数据库的行哈希值及行关键字;将所述行哈希值作为所述哈希表的节点值,将所述行关键字的哈希值作为所述哈希表节点的关键字插入所述哈希表;采用定序哈希分布算法使得所述行关键字相同的哈希表节点在哈希表中的相同位置,得到标准数据库和比较数据库的标准定序哈希表和比较定序哈希表。3.根据权利要求1或2所述的结构化数据比较的方法,其特征在于,采用MD5算法计算所述哈希值。4.根据权利要求1所述的结构化数据比较的方法,其特征在于,还包括以下步骤:当所述标准数据库和比较数据库的数据不同时,返回逐行查询所述比较数据库,判断所述标准定序哈希表中是否存在与所述比较数据库的行关键字的哈希值相同的关键字的节点,得到第一判断结果;根据所述第一判断结果,当所述标准定序哈希表中存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,判断所述行关键字对应的数据行的行哈希值与所述标准定序哈希表中的节点值是否相同,若是,则所述数据行数据相同,并删除所述节点;若否,则所述数据行数据不相同,并删除所述节点;根据所述第一判断结果,当所述标准定序哈希表中不存在与所述比较数据库的行关键字的哈希值相同的关键字的节点时,则所述行关键字对应的数据行为额外数据,记录比较结果;查找完所述比较数据库中的所有数据行后,若所述标准定序哈希表中还存在剩余节点,则所述剩余节点对应的标准数据库中数据行为比较数据库中缺失的数据行,并记录比较结果。5.根据权利要求2所述的结构化数据比较的方法,其特征在于,当所述哈希表中同一位置中包括多个节点时,根据所述节点的关键字的大小对插入所述定序哈希表中的节点进行排序。6.一种结构化数据比较的系统,其特征在于,包括定序哈希表构建模块,比较哈希值计算模块,以及第一判断模块,其中:所述定序哈希表构建模块,用于采用定序哈希分布算法...

【专利技术属性】
技术研发人员:蒋剑云王斌
申请(专利权)人:北京华胜天成科技股份有限公司北京华胜天成软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1