CN110362560A - 一种无业务主键数据在存储数据库时去重的方法 - Google Patents

一种无业务主键数据在存储数据库时去重的方法 Download PDF

Info

Publication number
CN110362560A
CN110362560A CN201910619770.7A CN201910619770A CN110362560A CN 110362560 A CN110362560 A CN 110362560A CN 201910619770 A CN201910619770 A CN 201910619770A CN 110362560 A CN110362560 A CN 110362560A
Authority
CN
China
Prior art keywords
data
duplicate removal
database
module
character string
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
Application number
CN201910619770.7A
Other languages
English (en)
Other versions
CN110362560B (zh
Inventor
杨建华
陈洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zheng Wei Yun Ltd
Original Assignee
Zheng Wei Yun Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zheng Wei Yun Ltd filed Critical Zheng Wei Yun Ltd
Priority to CN201910619770.7A priority Critical patent/CN110362560B/zh
Publication of CN110362560A publication Critical patent/CN110362560A/zh
Application granted granted Critical
Publication of CN110362560B publication Critical patent/CN110362560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种无业务主键数据在存储数据库时去重的方法,其特征在于,包括以下步骤:数据转换模块将导入数据库内的外部业务数据拼接为字符串,数据hash运算模块将拼接组合成的字符串使用sha256算法计算得到字节数组,消息摘要转换模块将字节数组格式的消息摘要转换为字符串H1,消息摘要hash模块对消息摘要转换的字符串H1再次进行hash运算,得到一个整型值H2,去重处理模块主要是用以上步骤中两次hash运算得到的值H1和H2作为条件查询数据库。本发明中,该无业务主键数据在存储数据库时去重的方法采用根据消息摘要算法结果碰撞率极低的特性,通过只比较两个字段即可判断数据是否相等,并且有效利用了数据库索引以提高效率。

Description

一种无业务主键数据在存储数据库时去重的方法
技术领域
本发明涉及数据库查询去重技术领域,尤其涉及一种无业务主键数据在存储数据库时去重的方法。
背景技术
通常数据库表结构设计时,会设计业务主键字段,通过业务主键字段判断数据的唯一性,但有时也会碰到一些外部输入的数据没有业务主键的情况,我们在将这些数据存库前需要判断是否已经存在相同的数据以决定后续的处理方式,在业务主键不存在时,需要通过将数据的每个字段都作为查询条件,来查询是否有相同数据,这种方式在表中数据量非常大时效率会非常低下,尤其是所存字段不适合加数据库索引时。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的一种无业务主键数据在存储数据库时去重的方法。
为了实现上述目的,本发明采用了如下技术方案:一种无业务主键数据在存储数据库时去重的方法,包括以下步骤:
S1:接收外部数据,通过数据库接收模块将原有数据库***外部的业务数据导入到原有数据库内,确保导入业务数据的快速性;
S2:数据字段转换,通过数据转换模块将导入数据库内的外部业务数据按照规则,将字段名和字段值拼接为字符串,保证每条业务数据都按照同一个规则拼接字符串;
S3:数据字符串运算,通过数据hash运算模块将拼接组合成的字符串使用sha256算法计算得到消息摘要,消息摘要为字节数组,保证每一个字符串都能够被准确的计算;
S4:数据摘要转换,通过消息摘要转换模块将字节数组格式的消息摘要转换为字符串H1,为后续的查询比较时提供了便捷的查询判断基准点;
S5:字符串再运算,通过消息摘要hash模块对消息摘要转换的字符串H1使用FNV1_32_HASH算法再次进行hash运算,得到一个整型值H2,保证后续数据库索引时的查询去重效率;
S6:去重查询,通过去重处理模块主要是用以上步骤中两次hash运算得到的值H1和H2作为条件查询数据库,如查询有数据,则做相应的去重处理,如没有已存在的数据,则将业务数据和两次hash运算得到的值H1和H2一同存入数据库,实现快速高效的去重查询;
S7:干预处理,通过数据库***后续处理模块对去重查询后的结果进行定向准确的覆盖和去重处理,清除掉重合的业务数据,确保数据库***内数据的一致性和单一性。
作为上述技术方案的进一步描述:
所述数据转换的规则:字段名F1,值V1,组合F1=V1,字段名Fn,值Vn,组合Fn=Vn,再按照字段名英文排序后最终组成:F1=V1&Fn=Vn。
作为上述技术方案的进一步描述:
所述消息摘要转换模块得到的字符串的形式为16进制。
作为上述技术方案的进一步描述:
所述hash运算是一种从任何一种数据中创建小的数字指纹的方法,通过散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来,摘要通常用一个短的随机字母和数字组成的字符串来代表。
作为上述技术方案的进一步描述:
所述sha算法是安全散列算法,是一个密码散列函数家族,能计算出一个数字消息所对应到的,长度固定的字符串的算法,且若输入的消息不同,它们对应到不同字符串的几率很高,sha256是其中的一个算法标准。
作为上述技术方案的进一步描述:
所述去重处理模块在查询是否存在相同数据时,采用数据库sql查询方式进行查询,数据库sql查询方式是一种数据库查询语言,用来查询数据库数据,数据库sql语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力。
作为上述技术方案的进一步描述:
所述FNV1_32_HASH算法是一种hash算法,能够将输入的业务数据通过运算得到一个整型数字。
作为上述技术方案的进一步描述:
所述数据库接收模块、数据转换模块、数据hash运算模块、消息摘要转换模块、消息摘要hash模块、去重处理模块和数据库***后续处理模块之间的输出端与输入端依次电性连接。
作为上述技术方案的进一步描述:
所述去重处理模块中判断数据库内是否存在相同数据时,需要将字段值H1和H2同步作为条件进行查询处理,以提高查询的高效性和准确性。
作为上述技术方案的进一步描述:
所述数据库***后续处理模块由覆盖模块和去重模块组成,其中,覆盖模块能够对查询后数据库内已有的数据进行数据的逐一覆盖处理,确保业务数据的单一性,去重模块能够对查询后数据库内已有的数据进行数据的筛选去重处理,确保业务数据的一致性。
有益效果
本发明提供了一种无业务主键数据在存储数据库时去重的方法。具备以下有益效果:
(1):该无业务主键数据在存储数据库时去重的方法通过避免对比一行数据的所有字段来判断是否相等,而采用根据消息摘要算法结果碰撞率极低的特性,通过只比较两个字段即可判断数据是否相等,并且有效利用了数据库索引以提高效率,达到了快速全面高效准确的查询去重的效果。
(2):该无业务主键数据在存储数据库时去重的方法采用空间换时间的方式,打破了传统对数据进行逐一查询去重的方式,实现了海量数据库内业务数据的快速查询去重效果,并且随着数据量的增大,更加能够凸显出数据查询去重的效率。
附图说明
图1为本发明提出的一种无业务主键数据在存储数据库时去重的方法的数据处理流程示意图;
图2为本发明中数据库业务表的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1-2所示,一种无业务主键数据在存储数据库时去重的方法,包括以下步骤:
S1:接收外部数据,通过数据库接收模块将原有数据库***外部的业务数据导入到原有数据库内,确保导入业务数据的快速性;
S2:数据字段转换,通过数据转换模块将导入数据库内的外部业务数据按照规则,将字段名和字段值拼接为字符串,保证每条业务数据都按照同一个规则拼接字符串;
S3:数据字符串运算,通过数据hash运算模块将拼接组合成的字符串使用sha256算法计算得到消息摘要,消息摘要为字节数组,保证每一个字符串都能够被准确的计算;
S4:数据摘要转换,通过消息摘要转换模块将字节数组格式的消息摘要转换为字符串H1,为后续的查询比较时提供了便捷的查询判断基准点;
S5:字符串再运算,通过消息摘要hash模块对消息摘要转换的字符串H1使用FNV1_32_HASH算法再次进行hash运算,得到一个整型值H2,保证后续数据库索引时的查询去重效率;
S6:去重查询,通过去重处理模块主要是用以上步骤中两次hash运算得到的值H1和H2作为条件查询数据库,如查询有数据,则做相应的去重处理,如没有已存在的数据,则将业务数据和两次hash运算得到的值H1和H2一同存入数据库,实现快速高效的去重查询;
S7:干预处理,通过数据库***后续处理模块对去重查询后的结果进行定向准确的覆盖和去重处理,清除掉重合的业务数据,确保数据库***内数据的一致性和单一性。
数据转换的规则:字段名F1,值V1,组合F1=V1,字段名Fn,值Vn,组合Fn=Vn,再按照字段名英文排序后最终组成:F1=V1&Fn=Vn。
数据转换模块中数据拼接字符串方式可变,可以使用数据对象转json字符串的方式进行数据的转换。
消息摘要转换模块得到的字符串的形式为16进制,消息摘要转换模块中消息摘要字节数组可以使用base64转码字符串。
hash运算是一种从任何一种数据中创建小的数字指纹的方法,通过散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来,摘要通常用一个短的随机字母和数字组成的字符串来代表。
sha算法是安全散列算法,是一个密码散列函数家族,能计算出一个数字消息所对应到的,长度固定的字符串的算法,且若输入的消息不同,它们对应到不同字符串的几率很高,sha256是其中的一个算法标准。
去重处理模块在查询是否存在相同数据时,采用数据库sql查询方式进行查询,数据库sql查询方式是一种数据库查询语言,用来查询数据库数据,数据库sql语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力。
FNV1_32_HASH算法是一种hash算法,能够将输入的业务数据通过运算得到一个整型数字。
数据hash运算模块中hash算法可变,可以使用MD5或sha1算法,MD5消息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位的散列值,用于确保信息传输完整一致,sha1算法主要适用于数字签名标准里面定义的数字签名算法,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。
消息摘要hash模块中可以直接使用java字符串hashcode或者CRC32算法。
数据库接收模块、数据转换模块、数据hash运算模块、消息摘要转换模块、消息摘要hash模块、去重处理模块和数据库***后续处理模块之间的输出端与输入端依次电性连接。
去重处理模块中判断数据库内是否存在相同数据时,需要将字段值H1和H2同步作为条件进行查询处理,以提高查询的高效性和准确性。
数据库***后续处理模块由覆盖模块和去重模块组成,其中,覆盖模块能够对查询后数据库内已有的数据进行数据的逐一覆盖处理,确保业务数据的单一性,去重模块能够对查询后数据库内已有的数据进行数据的筛选去重处理,确保业务数据的一致性。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种无业务主键数据在存储数据库时去重的方法,其特征在于,包括以下步骤:
S1:接收外部数据,通过数据库接收模块将原有数据库***外部的业务数据导入到原有数据库内,确保导入业务数据的快速性;
S2:数据字段转换,通过数据转换模块将导入数据库内的外部业务数据按照规则,将字段名和字段值拼接为字符串,保证每条业务数据都按照同一个规则拼接字符串;
S3:数据字符串运算,通过数据hash运算模块将拼接组合成的字符串使用sha256算法计算得到消息摘要,消息摘要为字节数组,保证每一个字符串都能够被准确的计算;
S4:数据摘要转换,通过消息摘要转换模块将字节数组格式的消息摘要转换为字符串H1,为后续的查询比较时提供了便捷的查询判断基准点;
S5:字符串再运算,通过消息摘要hash模块对消息摘要转换的字符串H1使用FNV1_32_HASH算法再次进行hash运算,得到一个整型值H2,保证后续数据库索引时的查询去重效率;
S6:去重查询,通过去重处理模块主要是用以上步骤中两次hash运算得到的值H1和H2作为条件查询数据库,如查询有数据,则做相应的去重处理,如没有已存在的数据,则将业务数据和两次hash运算得到的值H1和H2一同存入数据库,实现快速高效的去重查询;
S7:干预处理,通过数据库***后续处理模块对去重查询后的结果进行定向准确的覆盖和去重处理,清除掉重合的业务数据,确保数据库***内数据的一致性和单一性。
2.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述数据转换的规则:字段名F1,值V1,组合F1=V1,字段名Fn,值Vn,组合Fn=Vn,再按照字段名英文排序后最终组成:F1=V1&Fn=Vn。
3.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述消息摘要转换模块得到的字符串的形式为16进制。
4.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述hash运算是一种从任何一种数据中创建小的数字指纹的方法,通过散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来,摘要通常用一个短的随机字母和数字组成的字符串来代表。
5.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述sha算法是安全散列算法,是一个密码散列函数家族,能计算出一个数字消息所对应到的,长度固定的字符串的算法,且若输入的消息不同,它们对应到不同字符串的几率很高,sha256是其中的一个算法标准。
6.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述去重处理模块在查询是否存在相同数据时,采用数据库sql查询方式进行查询,数据库sql查询方式是一种数据库查询语言,用来查询数据库数据,数据库sql语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力。
7.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述FNV1_32_HASH算法是一种hash算法,能够将输入的业务数据通过运算得到一个整型数字。
8.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述数据库接收模块、数据转换模块、数据hash运算模块、消息摘要转换模块、消息摘要hash模块、去重处理模块和数据库***后续处理模块之间的输出端与输入端依次电性连接。
9.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述去重处理模块中判断数据库内是否存在相同数据时,需要将字段值H1和H2同步作为条件进行查询处理,以提高查询的高效性和准确性。
10.根据权利要求1所述的一种无业务主键数据在存储数据库时去重的方法,其特征在于,所述数据库***后续处理模块由覆盖模块和去重模块组成,其中,覆盖模块能够对查询后数据库内已有的数据进行数据的逐一覆盖处理,确保业务数据的单一性,去重模块能够对查询后数据库内已有的数据进行数据的筛选去重处理,确保业务数据的一致性。
CN201910619770.7A 2019-07-10 2019-07-10 一种无业务主键数据在存储数据库时去重的方法 Active CN110362560B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910619770.7A CN110362560B (zh) 2019-07-10 2019-07-10 一种无业务主键数据在存储数据库时去重的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910619770.7A CN110362560B (zh) 2019-07-10 2019-07-10 一种无业务主键数据在存储数据库时去重的方法

Publications (2)

Publication Number Publication Date
CN110362560A true CN110362560A (zh) 2019-10-22
CN110362560B CN110362560B (zh) 2021-12-31

Family

ID=68218608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910619770.7A Active CN110362560B (zh) 2019-07-10 2019-07-10 一种无业务主键数据在存储数据库时去重的方法

Country Status (1)

Country Link
CN (1) CN110362560B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259013A (zh) * 2020-02-03 2020-06-09 京东数字科技控股有限公司 一种存储数据的方法和装置
CN112559506A (zh) * 2020-12-22 2021-03-26 卫宁健康科技集团股份有限公司 健康数据处理方法、装置、处理设备及存储介质
CN113609123A (zh) * 2021-08-26 2021-11-05 四川效率源信息安全技术股份有限公司 基于HBase的海量用户数据去重存储的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916262A (zh) * 2010-07-29 2010-12-15 北京用友政务软件有限公司 一种财政要素匹配的加速方法
US20120185465A1 (en) * 2006-02-17 2012-07-19 Google Inc. Sharing user distributed search results
US8943024B1 (en) * 2003-01-17 2015-01-27 Daniel John Gardner System and method for data de-duplication
CN105989532A (zh) * 2015-02-28 2016-10-05 阿里巴巴集团控股有限公司 数据处理方法及装置
CN106708927A (zh) * 2016-11-18 2017-05-24 北京二六三企业通信有限公司 文件的去重处理方法和装置
US10055422B1 (en) * 2013-12-17 2018-08-21 Emc Corporation De-duplicating results of queries of multiple data repositories

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943024B1 (en) * 2003-01-17 2015-01-27 Daniel John Gardner System and method for data de-duplication
US20120185465A1 (en) * 2006-02-17 2012-07-19 Google Inc. Sharing user distributed search results
CN101916262A (zh) * 2010-07-29 2010-12-15 北京用友政务软件有限公司 一种财政要素匹配的加速方法
US10055422B1 (en) * 2013-12-17 2018-08-21 Emc Corporation De-duplicating results of queries of multiple data repositories
CN105989532A (zh) * 2015-02-28 2016-10-05 阿里巴巴集团控股有限公司 数据处理方法及装置
CN106708927A (zh) * 2016-11-18 2017-05-24 北京二六三企业通信有限公司 文件的去重处理方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259013A (zh) * 2020-02-03 2020-06-09 京东数字科技控股有限公司 一种存储数据的方法和装置
CN112559506A (zh) * 2020-12-22 2021-03-26 卫宁健康科技集团股份有限公司 健康数据处理方法、装置、处理设备及存储介质
CN113609123A (zh) * 2021-08-26 2021-11-05 四川效率源信息安全技术股份有限公司 基于HBase的海量用户数据去重存储的方法及装置

Also Published As

Publication number Publication date
CN110362560B (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
US7730058B2 (en) Searching for information utilizing a probabilistic detector
Xiang et al. A linguistic steganography based on word indexing compression and candidate selection
Gagie et al. LZ77-based self-indexing with faster pattern matching
US9054876B1 (en) Fast efficient vocabulary computation with hashed vocabularies applying hash functions to cluster centroids that determines most frequently used cluster centroid IDs
CN105718502B (zh) 用于高效特征匹配的方法和设备
CN110362560A (zh) 一种无业务主键数据在存储数据库时去重的方法
CN108197226A (zh) Mptc账户状态树以及mptc区块链快速检索方法
US10275229B2 (en) Encoded data object notation persistence format
US10223550B2 (en) Generating canonical representations of JSON documents
TW201918924A (zh) 資料加密、解密及查詢方法、資料加密、解密及查詢裝置
WO2017017738A1 (ja) 符号化プログラム、符号化装置、及び符号化方法
US20200212932A1 (en) Reducing storage of blockchain metadata via dictionary-style compression
Moia et al. Similarity digest search: A survey and comparative analysis of strategies to perform known file filtering using approximate matching
US10303791B2 (en) Efficient join on dynamically compressed inner for improved fit into cache hierarchy
JP2006351001A (ja) コンテンツ特徴量抽出方法及び装置及びコンテンツ同一性判定方法及び装置
CN110069489B (zh) 一种信息处理方法、装置、设备及计算机可读存储介质
CN110941831B (zh) 基于分片技术的漏洞匹配方法
US9509757B2 (en) Parallel sorting key generation
US11991290B2 (en) Associative hash tree
KR20200094673A (ko) Ra 트리를 이용한 rdf 트리플 데이터 압축 방법 및 장치
Moia et al. A comparative analysis about similarity search strategies for digital forensics investigations
US8682644B1 (en) Multi-language sorting index
US20090083267A1 (en) Method and System for Compressing Data
US20230138113A1 (en) System for retrieval of large datasets in cloud environments
TW517204B (en) Compression in the presence of shared data

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