CN112256698A - 一种基于多哈希函数的表关系自动关联方法 - Google Patents
一种基于多哈希函数的表关系自动关联方法 Download PDFInfo
- Publication number
- CN112256698A CN112256698A CN202011109507.2A CN202011109507A CN112256698A CN 112256698 A CN112256698 A CN 112256698A CN 202011109507 A CN202011109507 A CN 202011109507A CN 112256698 A CN112256698 A CN 112256698A
- Authority
- CN
- China
- Prior art keywords
- data
- hash function
- primary key
- binary vector
- source database
- 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
Images
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
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多哈希函数的表关系自动关联方法,包括以下步骤:步骤一、获取现有的源端数据库,并根据源端数据库的连接配置,获取待发现关联关系的所有数据表;步骤二,对每一张数据表,首先获取数据表的主键,然后针对主键数据初始化一个二进制对象,并利用构造的哈希函数将源端数据库的原始数据进行映射,计算后的二进制向量与该主键序列一一对应;步骤三,根据主外键之间的引用规则,基于主键的二进制向量,对可能与主键发生关联关系的字段进行核查,核查通过则记录本条关系。解决现有数据库表中关联关系不全、数据质量不高、人工核查费时费力等问题。
Description
技术领域
本发明属于信息技术领域,涉及一种基于多哈希函数的表关系自动关联方法。
背景技术
得益于关系型数据库及其管理系统的出现与发展,企业在数据存储、管理以及利用的效率上有了极大的提高,也直接促进了大数据技术的产生与发展。
在关系型数据库的设计阶段,第三范式限定了具有引用关系的各数据表之间通过外键进行关联。然而在实际操作过程中,随着业务的发展,数据规模在不断扩大,数据之间出现了许多新的关联关系,这些关联关系超出了数据库设计时限定的规则范围;此外,由于系统开发人员的更换等其他原因,导致数据表之间的关联关系出现断层。关联关系的缺乏,导致在进行数据分析与数据价值挖掘等工作时面临极大的困难。
以电网行业台账数据为例,在数据库系统中存储大量的台账表。随着业务的不断拓展,表的数量与规模都在不断扩大,由于开发厂商、维护人员的不同,无法将台账表之间的拓扑关系及时准确地进行更新,这就导致了各类电网实体之间引用关系变得混乱甚至丢失。
发明内容
本发明的目的是提供一种基于多哈希函数的表关系自动关联方法,解决现有数据库表中关联关系不全、数据质量不高、人工核查费时费力等问题;采用本发明中的方法,可以基于数据自动发现各个数据表之间的引用关系,从而建立清晰、完善的数据表拓扑关系。
本发明所采取的技术方案是:
一种基于多哈希函数的表关系自动关联方法,包括以下步骤:
步骤一、获取现有的源端数据库,并根据源端数据库的连接配置,获取待发现关联关系的所有数据表;
步骤二,对每一张数据表,首先获取数据表的主键,然后针对主键数据初始化一个二进制对象,并利用构造的哈希函数将源端数据库的原始数据进行映射,计算后的二进制向量与该主键序列一一对应;
步骤三,根据主外键之间的引用规则,基于主键的二进制向量,对可能与主键发生关联关系的字段进行核查,核查通过则记录本条关系。
在本发明的一个优选实施例中,还包括步骤四,记录本条关系后构建数据表拓扑关系,通过数据表拓扑关系确认相互关联的数据。
在本发明的一个优选实施例中,通过SHA256算法,SHA512算法和MD5算法构建哈希函数。
在本发明的一个优选实施例中,所述主外键之间引用规则包括:主键是一张表的唯一标识,外键通过引用主键中的内容从而将两张表关联起来。
在本发明的一个优选实施例中,所述数据表的主键形成的二进制文件保存到磁盘。
在本发明的一个优选实施例中,根据源端数据库的原始数据集合,初始化一个合适长度的二进制向量,然后根据哈希函数对原始数据进行映射并改写二进制向量的值。
在本发明的一个优选实施例中,所述原始数据集合为数据表中的明细数据。
本发明的有益效果是:
1、本发明是基于数据表中的明细数据而不是表结构或字段信息对表之间的关联关系进行自动识别,因此关系的准确性更高。
2、各主键形成的二进制文件可以保存到磁盘上,从而可以实现重复利用,降低了关联关系发现时的时间成本。
3、本发明在进行关联关系计算时,具有高度的灵活性。用户可以根据业务规则制定相应的限定条件,并添加到计算程序中,从而进一步提升关联结果的准确性。
附图说明
图1是创建一个二进制向量并检查新元素是否存在与已有元素集合中的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细描述。
哈希表是一种数据结构,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,加快查找速度,这个映射函数称为哈希函数。
利用这种特定,首先可以在计算机内存中分配一段定长的空间用于存储二进制向量,然后构造多个哈希函数,每一个哈希函数对于输入的值均映射到一个位置上,然后将二进制向量中该位置上的值设置进行更改。可以证明,利用这种数据结构和哈希函数的映射,可以用于非常快地判断一个元素是否存在于某个集合中。
第一部分:基本原理及验证方法
所谓二进制向量的含义,即该向量的每个位置上的取值为0或者1。初始化的一个二进制向量的所有位置上的值均为0,其长度记为m。哈希函数的作用是将任意值映射成固定区间[1,m]内的一个整数。为了降低重复率,一般采用多个哈希函数,其个数记为k。对于原始集合L中的任意一个元素,经过k个哈希函数映射之后得到k个值,代表二进制向量中的k个位置,然后将这k个位置上的值改写为1。将L中所有的值进行类似的映射之后得到的新的二进制向量,就称为填充后的、与L一一对应的二进制向量。
如图1所示,假设二进制向量的长度m=18,哈希函数个数k=3,一共有3个元素需要进行转换。图中的向量为转换之后的二进制向量。对于一个新的值w,利用相同的3个哈希函数进行计算并得到三个位置,如果该三个位置上的值均为1,则说明w大概率存在于原始数据集合中(即3个元素);否则,w一定不在原始数据集合中。
第二部分:误判概率分析
由于哈希函数的随机性,不同的元素也有可能被映射到相同的位置上,从而得到“该元素存在于原始集合中”的错误结论。很容易想到,如果原始集合中的数据量足够大,或者二进制向量的长度不够长,那么发生误判的概率会增大。在实际应用过程中,知道集合中的元素个数并给定一个较小的误判概率,可以推导出不高于该误判概率的所需要的最小的二进制向量的长度。
假设哈希函数的选取足够的好,对于初始化的二进制向量,一个哈希函数将一个位置设置为1的概率是所以经过k个哈希函数的运算,某个位置仍为0的概率是:假设一共有个元素需要插入,则全部插入后某个位置仍为0的概率是:
由于n及m的取值一般都很大,在极限情况下,即当
m→+∞时,有:
p(误判)=(1-e-nk/m)k
通过数学推导,假定n/m为固定值,那么要想使p最小,哈希函数个数k满足的条件为:
进一步,若n已知,对于设定的误判率p,将k的取值代入误判率计算公式,可以得到所需要的二进制向量的最小长度:
第三部分:构建二进制向量
根据原始数据集合,初始化一个合适长度的二进制向量。然后根据哈希函数对原始数据进行映射并改写二进制向量的值。为了复用,可以将其存储至磁盘上,注意在存储的过程中,构造的哈希函数也要一并进行存储。
第四部分:关联数据核查
利用生成目标主键的二进制向量的哈希函数来对待核查数据进行映射,计算映射后的位置上的值是否为1来判断该值是否在主键数据中。在实际应用中,由于数据质量的问题,可以设置一个阈值来允许一部分数据不在主键集合中。
具体地一种基于多哈希函数的表关系自动关联方法,包括以下步骤:步骤一、获取现有的源端数据库,并根据源端数据库的连接配置,获取待发现关联关系的所有数据表;步骤二,对每一张数据表,首先获取数据表的主键,然后针对主键数据初始化一个二进制对象,并利用构造的哈希函数将源端数据库的原始数据进行映射,计算后的二进制向量与该主键序列一一对应;步骤三,根据主外键之间的引用规则,基于主键的二进制向量,对可能与主键发生关联关系的字段进行核查,核查通过则记录本条关系。还包括步骤四,记录本条关系后构建数据表拓扑关系,通过数据表拓扑关系确认相互关联的数据。
以电网行业台账数据为例,在数据库系统中存储大量的台账表。随着业务的不断拓展,表的数量与规模都在不断扩大,由于开发厂商、维护人员的不同,无法将台账表之间的拓扑关系及时准确地进行更新,这就导致了各类电网实体之间引用关系变得混乱甚至丢失。采用上述方法,利用哈希函数,通过上述步骤,能迅速将相同或关联的台账数据进行整合,节省了人力比对,准确率高。
Claims (7)
1.一种基于多哈希函数的表关系自动关联方法,其特征在于,包括以下步骤:
步骤一、获取现有的源端数据库,并根据源端数据库的连接配置,获取待发现关联关系的所有数据表;
步骤二,对每一张数据表,首先获取数据表的主键,然后针对主键数据初始化一个二进制对象,并利用构造的哈希函数将源端数据库的原始数据进行映射,计算后的二进制向量与该主键序列一一对应;
步骤三,根据主外键之间的引用规则,基于主键的二进制向量,对可能与主键发生关联关系的字段进行核查,核查通过则记录本条关系。
2.根据权利要求1所述的一种基于多哈希函数的表关系自动关联方法,其特征在于,还包括步骤四,记录本条关系后构建数据表拓扑关系,通过数据表拓扑关系确认相互关联的数据。
3.根据权利要求1所述的一种基于多哈希函数的表关系自动关联方法,其特征在于,通过SHA256算法,SHA512算法和MD5算法构建哈希函数。
4.根据权利要求1所述的一种基于多哈希函数的表关系自动关联方法,其特征在于,所述主外键之间引用规则包括:主键是一张表的唯一标识,外键通过引用主键中的内容从而将两张表关联起来。
5.根据权利要求1-4任意一项所述的一种基于多哈希函数的表关系自动关联方法,其特征在于,所述数据表的主键形成的二进制文件保存到磁盘。
6.根据权利要求1-4任意一项所述的一种基于多哈希函数的表关系自动关联方法,其特征在于,根据源端数据库的原始数据集合,初始化一个合适长度的二进制向量,然后根据哈希函数对原始数据进行映射并改写二进制向量的值。
7.根据权利要求6所述的一种基于多哈希函数的表关系自动关联方法,其特征在于,所述原始数据集合为数据表中的明细数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011109507.2A CN112256698B (zh) | 2020-10-16 | 2020-10-16 | 一种基于多哈希函数的表关系自动关联方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011109507.2A CN112256698B (zh) | 2020-10-16 | 2020-10-16 | 一种基于多哈希函数的表关系自动关联方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256698A true CN112256698A (zh) | 2021-01-22 |
CN112256698B CN112256698B (zh) | 2023-09-05 |
Family
ID=74245332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011109507.2A Active CN112256698B (zh) | 2020-10-16 | 2020-10-16 | 一种基于多哈希函数的表关系自动关联方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256698B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420024A (zh) * | 2021-06-02 | 2021-09-21 | 浪潮软件股份有限公司 | 一种业务表单数据分表存储方法 |
CN114244595A (zh) * | 2021-12-10 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 权限信息的获取方法、装置、计算机设备及存储介质 |
CN114385623A (zh) * | 2021-11-30 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 数据表获取方法、设备、装置、存储介质及程序产品 |
CN115292274A (zh) * | 2022-06-29 | 2022-11-04 | 江苏昆山农村商业银行股份有限公司 | 一种数据仓库主题模型构建方法和系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083033A1 (en) * | 2000-12-22 | 2002-06-27 | Abdo Abdo Esmail | Storage format for encoded vector indexes |
US20100179954A1 (en) * | 2009-01-09 | 2010-07-15 | Linkage Technology Group Co., Ltd. | Quick Mass Data Manipulation Method Based on Two-Dimension Hash |
CN101916261A (zh) * | 2010-07-28 | 2010-12-15 | 北京播思软件技术有限公司 | 一种分布式并行数据库系统的数据分区方法 |
CN102521304A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 基于哈希的聚簇表存储方法 |
US20150261793A1 (en) * | 2013-11-22 | 2015-09-17 | Jie Sheng | Method for implementing database |
CN106970930A (zh) * | 2016-10-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 消息发送确定方法及装置、数据表创建方法及装置 |
US20170364562A1 (en) * | 2016-06-21 | 2017-12-21 | Erland Wittkotter | Sample data extraction |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN108959285A (zh) * | 2017-05-18 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 数据库主键获取方法及装置 |
US20200125746A1 (en) * | 2018-10-19 | 2020-04-23 | Oracle International Corporation | Systems and methods for securing data based on discovered relationships |
-
2020
- 2020-10-16 CN CN202011109507.2A patent/CN112256698B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083033A1 (en) * | 2000-12-22 | 2002-06-27 | Abdo Abdo Esmail | Storage format for encoded vector indexes |
US20100179954A1 (en) * | 2009-01-09 | 2010-07-15 | Linkage Technology Group Co., Ltd. | Quick Mass Data Manipulation Method Based on Two-Dimension Hash |
CN101916261A (zh) * | 2010-07-28 | 2010-12-15 | 北京播思软件技术有限公司 | 一种分布式并行数据库系统的数据分区方法 |
CN102521304A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 基于哈希的聚簇表存储方法 |
US20150261793A1 (en) * | 2013-11-22 | 2015-09-17 | Jie Sheng | Method for implementing database |
US20170364562A1 (en) * | 2016-06-21 | 2017-12-21 | Erland Wittkotter | Sample data extraction |
CN106970930A (zh) * | 2016-10-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 消息发送确定方法及装置、数据表创建方法及装置 |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN108959285A (zh) * | 2017-05-18 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 数据库主键获取方法及装置 |
US20200125746A1 (en) * | 2018-10-19 | 2020-04-23 | Oracle International Corporation | Systems and methods for securing data based on discovered relationships |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420024A (zh) * | 2021-06-02 | 2021-09-21 | 浪潮软件股份有限公司 | 一种业务表单数据分表存储方法 |
CN114385623A (zh) * | 2021-11-30 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 数据表获取方法、设备、装置、存储介质及程序产品 |
CN114244595A (zh) * | 2021-12-10 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 权限信息的获取方法、装置、计算机设备及存储介质 |
CN114244595B (zh) * | 2021-12-10 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 权限信息的获取方法、装置、计算机设备及存储介质 |
CN115292274A (zh) * | 2022-06-29 | 2022-11-04 | 江苏昆山农村商业银行股份有限公司 | 一种数据仓库主题模型构建方法和系统 |
CN115292274B (zh) * | 2022-06-29 | 2023-12-26 | 江苏昆山农村商业银行股份有限公司 | 一种数据仓库主题模型构建方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112256698B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256698A (zh) | 一种基于多哈希函数的表关系自动关联方法 | |
CN111247518A (zh) | 数据库分片 | |
EP3251033B1 (en) | Hybrid data distribution in a massively parallel processing architecture | |
CN104967620A (zh) | 一种基于属性访问控制策略的访问控制方法 | |
CN111221840B (zh) | 数据处理方法及装置、数据缓存方法、存储介质、系统 | |
CN103514229A (zh) | 用于在分布式数据库系统中处理数据库数据的方法和装置 | |
CN105808622A (zh) | 一种文件存储的方法和装置 | |
CN111522811B (zh) | 数据库的处理方法及装置、存储介质、终端 | |
Hao et al. | Cleaning relations using knowledge bases | |
CN104731969A (zh) | 分布式环境下海量数据连接聚集查询方法、装置和系统 | |
CN111966707A (zh) | 查询语句生成方法、装置、电子设备和计算机可读介质 | |
CN111984745A (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN113901131A (zh) | 基于索引的链上数据查询方法及装置 | |
CN114185895A (zh) | 数据导入导出方法、装置、电子设备及存储介质 | |
CN105677645A (zh) | 一种数据表比对方法和装置 | |
CN105468521A (zh) | 一种基于子图搜索的指针相关语义错误定位方法 | |
US11403273B1 (en) | Optimizing hash table searching using bitmasks and linear probing | |
CN105550220A (zh) | 一种异构系统的取数的方法及装置 | |
CN110109867A (zh) | 改进在线模式检测的方法、装置和计算机程序产品 | |
CN112433753A (zh) | 基于参数信息的接口文档生成方法、装置、设备和介质 | |
CN112486988A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN109918074B (zh) | 编译链接优化方法 | |
CN112711627B (zh) | 一种Greenplum数据库的数据导入方法、装置及设备 | |
CN111897837A (zh) | 数据查询方法、装置、设备和介质 | |
CN115114297A (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 |