CN114153898A - 梳理数据库表间关系的方法、装置及应用 - Google Patents
梳理数据库表间关系的方法、装置及应用 Download PDFInfo
- Publication number
- CN114153898A CN114153898A CN202111410432.6A CN202111410432A CN114153898A CN 114153898 A CN114153898 A CN 114153898A CN 202111410432 A CN202111410432 A CN 202111410432A CN 114153898 A CN114153898 A CN 114153898A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- association
- matched
- combing
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出了一种梳理数据库表间关系的方法、装置及应用,其中,所述方法包括:获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表;查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。采用对与业务主表相关联的历史执行语句进行处理,从而获取与业务主表相关联的数据表并建立字段间的关联关系的手段,达到了快速梳理数据库表间关系的有益效果。
Description
技术领域
本申请涉及数据挖掘技术领域,特别是涉及一种梳理数据库表间关系的方法、装置及应用。
背景技术
在城市化和创新技术发展的双重驱动下,智慧城市在我国大江南北遍地开花。经过十多年的发展,中国成为全球智慧城市实践基地和前沿国家之一。目前,随着我国改革的深入推进,以“城市大脑”为特色的新型智慧城市建设模式伴着数字经济发展的节拍诞生于杭州,正向全国乃至全世界蔓延。做智慧城市离不开数据支持,面对复杂的业务和海量数据表,不知如何有效进行数仓建设,提取业务系统有效数据。比如一个系统通过自定义表单创建的一组表,表字段名和表名是自定义序列生成,不能通过表名和字段名的命名得出字段含义。
数据库表间的关联性梳理对数据挖掘而言有着重要意义,例如,在数据资源中,当A表来源于城管部门描述管理人员的城管业务信息,A表的A-1字段代表人员的证件信息;另有一张B表来源于行政部门,代表人员的身份信息,同时B-1字段也是人员证件信息,那么两张表在业务上是有业务关联的。通过A表与B表的关联,可以衍生出新的业务。此外,当A表来源于城管业务数据的城管案件表,记录的是简要的案件信息。多个城管人员在各个流程节点处理每个城管案件又能分为多个从表,如何通过建立A表与其他从表的关联从而衍生出新的数据信息也尤为重要。
即,当存在海量的归集数据时,通过表与表之间的业务关联关系,直观体现数据之间的业务关联,非常有利于数据的使用和价值的挖掘。
对数据业务关联性研究中,现有技术普遍通过业务属性对数据进行归属分类。如:通过数据描述的对象、数据的业务领域、数据的来源进行归类。这种粗放型的针对表数据关系管理方式,在一定程度上反映了数据的业务关联关系,但是无法体现例如上述举例的城管部门的表与行政部门的表间的相关性,也无法更加细致地体现跨类型、跨领域的数据本身的相关性,因此这种分类方法无法应用于对海量数据进行关联性研究中。
此外,现有技术中还存在诸如人为建立表与表之间的业务关联的方法挖掘数据之间的相关性。而在海量数据的情况下,当业务系统中数据表结构字段数目多,关联关系错综复杂时,人工分析的方法势必存在工作效率低、错误率高、开发周期长等问题。
综上,针对目前在数据库表间关联性研究中存在的表与表之间的业务关联性无法自动快熟梳理导致目前尚未得到能实现快速从海量数据中梳理出数据之间关联关系的目的的有效解决方案。
发明内容
本申请实施例提供了一种梳理数据库表间关系的方法、装置及应用,针对现有的数据库表间关联性无法快速、自动梳理的问题,采用对与业务主表相关联的历史执行语句进行处理,从而获取与业务主表相关联的数据表并建立字段间的关联关系的手段,达到了快速梳理数据库表间关系的有益效果。
第一方面,本申请实施例提供了一种梳理数据库表间关系的方法,所述方法包括:获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表;查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
在其中一些实施例中,“根据所述比较结果确定业务主表”包括:获取所述记录行数与所述业务数据量一致的所述待匹配数据表作为待定业务表;获取所述业务数据列表的业务数据内容,将所述待定业务表的数据信息与所述业务数据内容进行内容匹配性验证,在验证通过的情况下确定所述待定业务表为业务主表。
在其中一些实施例中,所述方法还包括:获取所述业务主表中的第一其他字段,其中,所述第一其他字段包括:通过所述历史执行语句未查询到与所述待匹配数据表存在所述关联关系的字段;从所述第一其他字段中获取编码字段,选取所述编码字段下的编码值,查询与所述编码值一致的第一主键所在的所述待匹配数据表作为第一待定关联表。
在其中一些实施例中,将所述第一主键下的其他第一主键值与所述编码字段下的其他编码值进行内容匹配性验证,验证通过则确定所述第一待定关联表为第一关联表。
在其中一些实施例中,所述方法还包括:获取所述业务主表中的第二其他字段,其中,所述第二其他字段包括:通过所述编码值未匹配到与所述待匹配数据表存在所述关联关系的字段;从所述第二其他字段中获取外键字段,选取所述外键字段下的外键值,查询与所述外键值一致的第二主键所在的所述待匹配数据表作为第二待定关联表。
在其中一些实施例中,将所述第二主键下的其他第二主键值与所述外键字段下其他外键值进行内容匹配性验证,验证通过则确定所述第二待定关联表为第二关联表。
在其中一些实施例中,所述关联关系包括所述业务主表的第一字段与待匹配数据表的第二字段之间的关联性。
第二方面,本申请实施例提供了一种自动梳理数据库表间关系的装置,包括:业务主表获取模块,用于获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表;关联表梳理模块,用于查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行第一方面任一项所述的梳理数据库表间关系的方法。
第四方面,本申请实施例提供了一种计算机程序产品,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行根据第一方面任一项所述的梳理数据库表间关系的方法。
第五方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据第一方面任一项所述的梳理数据库表间关系的方法。
本申请实施例的主要贡献和创新点如下:
本申请实施例在海量数据中先通过提取能包含业务主要内容的业务主表,在获取业务主表时自动通过待匹配数据表的记录行数与业务系统的业务数据量进行比对,快速从待匹配数据表中筛选出业务主表,通过分析历史执行记录可以快速建立业务主表与待匹配数据表的关联关系,避免了字段间的一一比对带来的效率低以及准确率低的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请第一实施例的梳理数据库表间关系的方法的主要步骤流程图。
图2是根据本申请第二实施例的梳理数据表间关系的方法的步骤流程图。
图3是根据本申请第三实施例的梳理数据库表间关系的装置的结构框图。
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本方案目的在于自动梳理数据表之间的关联关系,即梳理得到多张数据表间是否相关联以及因为什么相关联。梳理表间关联性的目的包括但不限于:体现跨类型、跨领域的数据本身的相关性,有利于数据挖掘;梳理相似业务下的数据表间的数据本身相关性,有利于数据的使用以及业务的管理;从表间关联性中能发现数据的因果关系、内部联系和业务规模等,有利于更好提供业务服务。具体地,为多张表梳理关联关系,相当于多张涵盖不同信息的表因为一些字段建立了关系,因此挖掘出关联关系后能够为业务系统的数据治理提供帮助,避免了空有数据而无法从业务系统中提取有效数据的情况。
图1是根据本申请第一实施例的梳理数据库表间关系的方法的主要步骤流程图。
为实现该目的,如图1所示,梳理数据库表间关系的方法主要包括如下的步骤S101至步骤S102。
步骤S101、获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表。
在步骤S101中,业务数据量是指业务数据的存储记录数量。一般来说,数据在后端被存储于数据库中,并在前端的业务系统中以业务数据列表进行可视化展示。在本方案中,以同一业务场景分析业务表的关联关系,例如在海量数据中查询到城管案件信息的表、城管执法人员的信息表以及违法人员的信息表并建立关系。这些表被存储在数据库中,并且一个业务的多张表会以一张主表为关联,主表的外键就是其他表的主键。由于其他表之间的两两的关联关系是很难直接分析得到的,因此本方案通过建立主表与其他表的关联关系间接分析出一个业务中的所有关联表之间的关联性。
例如业务场景为城管业务,则城管业务系统中记录城管数据,通过获取城管数据的量能够得出城管业务数,获取到城管业务数有利于匹配到待匹配数据表中的业务主表。
由于业务主表是保存业务信息主要内容的表,比如城管案件表中会保存案件内容、上报人、上报时间、发生地点、案件大类、案件小类、所属区县、街道等信息。因此呈现在业务系统上的一般是业务主表上的数据。通过待匹配数据表的记录行数与业务系统上业务数据量相比对,若相等,则说明该表为业务主表。
在步骤S101中,数据以每一列表示一字段的方式存储在表中,因此一行数据代表一条业务数据,例如每行数据包括主键、案件内容、上报人、上报时间、发生地点、案件大类、案件小类、所属区县、街道等信息,通过获取表中的行数,即可知道该表记录了多少条业务数据。若业务数据与业务系统上的数据量一致,则该表为业务主表。
在本步骤中,比较结果是指业务数据量与记录行数是否相等,若比较结果相等,则表示表该所存储的记录数与业务系统中可视化展示的业务数相等,那么确认该表为业务主表,并可以进一步梳理该业务主表与其他业务表存在的关联关系。
在一些实施例下,业务系统中每一页所能呈现的数据量有限,因此业务数据量是需要计算得到的。示例性的,业务数据量可以通过以下方式得到:打开系统并登录业务数据列表页,打开案件列表页,通过总页码和每页行数,计算得到总行数,总行数DataCnt=(总页数-1)*页行数+末页行数。
针对上述步骤S101,本方案在海量数据中先通过提取能包含业务主要内容的业务主表,在获取业务主表时自动通过待匹配数据表的记录行数与业务系统的业务数据量进行比对,从而实现快速从待匹配数据表中筛选出业务主表的有益效果。相比于现有技术中直接在待匹配数据表之间两两建立业务关系的手段,本方案区别在于能够通过建立主表与其他表的关联关系间接分析出一个业务中的所有关联表之间的关联性。
步骤S102、查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
在本方案中通过历史执行语句分析业务主表和其他数据表的关联关系。具体地,在目前复杂的业务和海量数据的情况下,每张待匹配数据表中的字段是非常多的,如果通过字段与字段一一匹配,不仅效率慢,而且也容易遗漏字段之间不能完全匹配但实质上两个表存在关联性的情况。因此本方案技术点在于获取到业务主表后,查询与业务主表相关联的历史执行语句。例如,语句查询条件为SQL内容中包含“SELECT”、“tb01”等内容,得到最近执行记录如下:
从上面的SQL语句可以得出以下结论:tb01和tb02、tb03存在左连接关系,tb02是目录大类字典表,通过tb01案件信息表的a4字段与目录大类字典表tb02的标识字段b1关联,tb03是目录小类字典表,通过tb01案件信息表的a5字段与目录小类字典表tb03的标识字段b1关联。
即,通过分析历史执行记录可以快速建立业务主表与待匹配数据表的关联关系,避免了字段间的一一比对带来的效率低以及准确率低的问题。
具体地,本方案所分析的海量数据都存储于数据库中,数据库例如SQL库中包含历史执行记录功能,当获取当业务主表后,通过查询有关业务主表的历史执行记录即可查看业务主表与其他待匹配数据表的关联关系。此外,历史执行记录里不仅有待匹配数据表之间的字段关联关系,还有执行时间、执行信息等,通过执行时间、执行信息能进一步筛选出与业务主表有关的关联数据表。
在本步骤中,关联关系是指所述业务主表的第一字段与关联数据表的字段之间的关联性。例如,关联关系包括:在tb01案件中a4字段与tb02案件中的b1字段关联。通过字段关联能使前端在可视化展示数据时不仅能展示业务主表的数据,在需要获取与业务主表相关联的数据的情况下能够基于关联关系找到对应的关联数据表的字段值,从而提取有效数据。
针对上述步骤S102,本方案区别于现有技术的关键点在于,现有技术采用直接比对各待匹配数据表的字段名或者字段值,通过相似性判断两个待匹配数据表中的字段是否表示同一含义的技术手段。这种方式不仅计算量大、效率低,而且容易遗漏关联表,因此应用在海量数据挖掘时的效果不理想。而本步骤可以从历史执行语句中提取得到与业务主表存在关联关系的待匹配数据表,并通过记录关联关系便于业务系统能够通过该关联关系调取和使用关联数据表的数据以及根据表间关联分析得到业务之间的联系。
在其中一个可行实施例中,“根据所述比较结果确定业务主表”包括:获取所述记录行数与所述业务数据量一致的所述待匹配数据表作为待定业务表;获取所述业务数据列表的业务数据内容,将所述待定业务表的数据信息与所述业务数据内容进行内容匹配性验证,在验证通过的情况下确定所述待定业务表为业务主表。
在本实施例中将根据记录行数与业务数据量比对一致所得到的待定业务表通过业务数据内容进行验证。具体地,在待匹配数据表的记录行数比对过程中,有一定几率存在两张待匹配数据表的记录行数相等且都等于业务系统的业务数据量的情况,因此通过内容比对来进一步筛选出最终的业务主表。
示例性的,先根据业务系统中业务数据的排列顺序确定所要获取的待匹配数据表的顺序,如:业务系统中最新的数据排在最前面,则在每张待匹配数据表中根据主键倒序排列,取N条数据,与业务系统中的N条数据比较,如果比较结果一一匹配成功,则通过验证可知待定业务表即为业务主表。
针对上述实施例,本方案先通过数量比对获取比对结果,若只匹配到一张表,则该表确认为业务主表,若匹配到多张表,再将多张表的部分内容与业务数据内容相比较。通过该方式能够快速且准确地从待匹配数据表中提取出业务主表,且先比较记录数可以剔除大部分不符合要求的待匹配数据表,再在少量待匹配数据表中采用内容相似度比对也能极大程度的节约计算资源。
在其中一个可行实施例中,所述方法还包括:获取所述业务主表中的第一其他字段,其中,所述第一其他字段包括:通过所述历史执行语句未查询到与所述待匹配数据表存在所述关联关系的字段;从所述第一其他字段中获取编码字段,选取所述编码字段下的编码值,查询与所述编码值一致的第一主键所在的所述待匹配数据表作为第一待定关联表。
具体地,通过历史执行语句能够基本确定业务主表与外表的关联关系,但也存在业务主表中的部分字段未关联的情况,例如某一字段存的是编码而不是文本描述,有关编码的描述信息存在其他表中,因此历史执行记录中未体现该字段与其他待匹配数据表的关系。针对上述情况,本方案先在所有未关联字段中识别出存储编码值的编码字段,再随机选取任一编码值,通过该编码值在其他待匹配数据表中匹配,查询该值是哪个待匹配数据表的主键,找出的待匹配数据表即为第一待定关联表。在本实施例中,第一待定关联表可以作为与业务主表具有关联关系的数据表,因此记录第一待定关联表与业务主表的关联关系。
在另一实施例中,将所述第一主键下的其他第一主键值与所述编码字段下的其他编码值进行内容匹配性验证,验证通过则确定所述第一待定关联表为第一关联表。
具体地,在本实施例中,在获取到第一待定关联表后,再通过编码字段的其他编码值做验证,即,验证其他编码值是否能在第一待定关联表找到关联。若验证成功则说明关联关系正确。采用验证第一待定关联表的方式能够自动且准确地获取到与第一业务表存在关联关系的表。
在其中一个可行实施例中,所述方法还包括:获取所述业务主表中的第二其他字段,其中,所述第二其他字段包括:通过所述编码值未匹配到与所述待匹配数据表存在所述关联关系的字段;从所述第二其他字段中获取外键字段,选取所述外键字段下的外键值,查询与所述外键值一致的第二主键所在的所述待匹配数据表作为第二待定关联表。
在本实施例中,对经过编码值匹配仍未匹配到的第二其他字段再做匹配。即,某些字段既没有出现在代码执行语句中,也不用来存储编码,则可以通过查询这些字段与外表的主键之间的匹配度得出这些字段与哪些待匹配数据表存在关系。
在另一实施例中,将所述第二主键下的其他第二主键值与所述外键字段下其他外键值进行内容匹配性验证,验证通过则确定所述第二待定关联表为第二关联表。
基于相同的构思,在获取到第二待定关联表后,再通过外键字段的其他外键值做验证,即,验证其他外键值是否能在第二待定关联表找到关联。若验证成功则说明关联关系正确。
在其中一个可行实施例中,所述关联关系包括所述业务主表的第一字段与待匹配数据表的第二字段之间的关联性。
具体的,在通过历史执行记录获取到逻辑关系整理入库可以得到例如tb01.a4=tb02.b1,tb01.a5=tb03.b1。其中,tb.01为业务主表,tb02、tb03为与业务主表存在关联关系的关联数据表,tb01.a4、tb01.a5表示第一字段,tb02.b1、tb03.b1表示第二字段。同理,在通过编码值匹配以及其他外键值匹配获取到逻辑关系整理入库也可以得到业务主表与第一关联表、第二关联表的关联关系,对应的,业务主表的字段是第一字段,第一关联表的字段以及第二关联表的字段是第二字段。
综上,本申请实施例提供了一种梳理数据库表间关系的方法,该方案针对海量数据的关系梳理可以先从记录行数查询到待定业务表,并通过内容比对进一步确认待定业务表是否为业务主表,通过提取业务主表相关联的历史执行语句快速得出与业务主表存在字段关联的待匹配数据表,避免了通过各字段间相似度匹配带来的计算量大的问题。并且本方案还能将现有技术中无法通过相似度匹配得出匹配结果的编码字段进行匹配,能通过编码字段与其他待匹配数据表的主键的关系得出业务主表与其他待匹配数据表的关联关系。相比于现有技术,本方案能实现快速、自动梳理数据的有益效果。
下面以一个具体实例对本方案的实施进行详细说明。
图2是根据本申请第二实施例的自动梳理数据表间关系的方法的步骤流程图。为实现该目的,如图2所示,该方法包括:
S201、查看业务数据记录数和最新10行数据内容。
登录业务系统并进入业务数据列表页,获取业务数据量=93,并记录业务数据的最新N条数据内容“最新数据TOP”,可以将“最新数据TOP”以图片形式保存,方便后续的内容比对。
S202、数据库中查找业务主表。
通过数据库中的系统视图:information_schema.tables,或直接拼接sql的方式得到行数为DataCnt的表名称,比如业务数据记录数DataCnt=93,与S201的业务数据记录数比对,行数为93的表就是tb01,没有其他表行数为93,说明表tb01就是存放主要业务数据的表。
查询语句如下,查询结果如表1-1所示。
SELECT table_name,table_rows FROM information_schema.tables
WHERE TABLE_SCHEMA=‘localtest’
表1-1查询结果
table_name | table_rows |
tb01 | 93 |
tb02 | 6 |
tb03 | 156 |
tb04 | 7 |
S203、确认是否为业务信息主表。
打开表tb01,根据主键倒序排列后,取最新N条记录,与S201步骤的“最新数据TOP”相比较,若N条记录的每一条内容都能匹配上,说明tb01为业务主表。
S204、查找业务信息主表关联逻辑。
通过SQL语句插孔最近一段时间数据库SQL语句历史执行记录,语句查询条件为SQL内容中包含“SELECT”、“tb01”等内容,得到最近执行记录如下:
从上面的SQL语句得出以下结论:tb01和tb02、tb03存在左连接关系,tb02是目录大类字典表,通过tb01案件信息表的a4字段与目录大类字典表tb02的标识字段b1关联,tb03是目录小类字典表,通过tb01案件信息表的a5字段与目录小类字典表tb03的标识字段b1关联。
S205、整理表逻辑关系。
新建逻辑关系对应表,包含序号、表名、相关表、关联逻辑字段,将上一步骤确定逻辑关系整理入库,得到表1-2。
表1-2关联关系
序号 | 表名 | 相关表 | 关联逻辑 |
1 | tb01 | tb02 | tb01.a4=tb02.b1 |
2 | tb01 | tb03 | tb01.a5=tb03.b1 |
S206、未关联字段逻辑关系确认。
上一步骤基本能确定业务主表与外表关联关系,但也可能存在部分字段未关联的情况,比如tb01的a3字段,存的是编码而非文本描述,对于这样的字段,先从a3字段随机挑选一个值,如deadd7c5-03e8-11ec-9dd0-00ffb409e6ec,先查找这个外键键值是那张表的主键,找出那张表后再把其他a3字段的其他值做验证,是否都能在此表中找到关联,全部能关联上既说明关联关系正确。具体过程如下,先可以通过系统视图拼接如下SQL语句形式,
select'tb01'as table_name,count(1)cnt from tb01 where主键=’deadd7c5-03e8-11ec-9dd0-00ffb409e6ec’
Union all
select'tb02'as table_name,count(1)cnt from tb02 where主键=’deadd7c5-03e8-11ec-9dd0-00ffb409e6ec’
......
只取cnt返回为1的行,0代表无关联,执行上述语句最终得到结果
从结果可以判断,cnt为1的行对应的表名就是tb04,得到表tb04的主键就是与tb01的a3字段关联。
S207、验证上一步骤正确性。
S206步骤直接通过一个值,得到表间关联关系。为验证其他值也是否能关联上,直接编写SQL语句关联,关联条件是tb01.a3=tb04.b1,得到关联后的描述信息b3字段,结果如下:
可以看到所有tb01.a3编码关联后得到tb04.b3字段,每个键值全都匹配上,再结合“最新数据TOP10.jpg”文件比对,每条数据的上报来源是否就是b3字段显示的内容,如果也能匹配上,就说明tb01.a3=tb04.b1就是正确的关联关系。
S208、判断是否所有字段已关联。
查看表tb01是否还存在外键字段,如果有重复S206。
S209、添加表逻辑关系。
将上一步骤得到逻辑关系,添加到逻辑关系对应表。如有其它未关联字段,重复步骤S206,最终得到表1-3。
表1-3逻辑关系对应表
序号 | 表名 | 相关表 | 关联逻辑 |
1 | tb01 | tb02 | tb01.a4=tb02.b1 |
2 | tb01 | tb03 | tb01.a5=tb03.b1 |
3 | tb01 | tb04 | tb01.a3=tb04.b1 |
图3是根据本申请的第三实施例的自动梳理数据库表间关系的装置的结构框图。
如图3所示,本申请的一个实施例提出了一种自动梳理数据库表间关系的装置,包括:
业务主表获取模块301,用于获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表。
关联表梳理模块302,用于查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
图4是根据本申请实施例的电子装置的硬件结构示意图。
如图4所示,本申请一个实施例的电子装置,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种梳理数据库表间关系的方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是海量数据等,输出的信息可以是关联关系等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表。
S102、查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种梳理数据库表间关系的方法,其特征在于,包括以下步骤:
获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表;
查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
2.根据权利要求1所述的梳理数据库表间关系的方法,其特征在于,“根据所述比较结果确定业务主表”包括:
获取所述记录行数与所述业务数据量一致的所述待匹配数据表作为待定业务表;
获取所述业务数据列表的业务数据内容,将所述待定业务表的数据信息与所述业务数据内容进行内容匹配性验证,在验证通过的情况下确定所述待定业务表为业务主表。
3.根据权利要求1所述的梳理数据库表间关系的方法,其特征在于,所述方法还包括:
获取所述业务主表中的第一其他字段,其中,所述第一其他字段包括:通过所述历史执行语句未查询到与所述待匹配数据表存在所述关联关系的字段;
从所述第一其他字段中获取编码字段,选取所述编码字段下的编码值,查询与所述编码值一致的第一主键所在的所述待匹配数据表作为第一待定关联表。
4.根据权利要求3所述的梳理数据库表间关系的方法,其特征在于,将所述第一主键下的其他第一主键值与所述编码字段下的其他编码值进行内容匹配性验证,验证通过则确定所述第一待定关联表为第一关联表。
5.根据权利要求3或4任一所述的梳理数据库表间关系的方法,其特征在于,所述方法还包括:
获取所述业务主表中的第二其他字段,其中,所述第二其他字段包括:通过所述编码值未匹配到与所述待匹配数据表存在所述关联关系的字段;
从所述第二其他字段中获取外键字段,选取所述外键字段下的外键值,查询与所述外键值一致的第二主键所在的所述待匹配数据表作为第二待定关联表。
6.根据权利要求5所述的梳理数据库表间关系的方法,其特征在于,将所述第二主键下的其他第二主键值与所述外键字段下其他外键值进行内容匹配性验证,验证通过则确定所述第二待定关联表为第二关联表。
7.根据权利要求1所述的梳理数据库表间关系的方法,其特征在于,所述关联关系包括所述业务主表的第一字段与待匹配数据表的第二字段之间的关联性。
8.一种自动梳理数据库表间关系的装置,其特征在于,包括:
业务主表获取模块,用于获取业务数据列表及每一待匹配数据表的记录行数,将所述业务数据列表的业务数据量与每一所述记录行数进行比较得到比较结果,根据所述比较结果确定业务主表;
关联表梳理模块,用于查询与所述业务主表相关联的历史执行语句,从所述历史执行语句中提取出与所述业务主表存在关联关系的所述待匹配数据表作为关联数据表并记录关联关系。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7任一项所述的梳理数据库表间关系的方法。
10.一种计算机程序产品,其特征在于,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行根据权利要求1至7任一项所述的梳理数据库表间关系的方法。
11.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1至7任一项所述的梳理数据库表间关系的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111410432.6A CN114153898A (zh) | 2021-11-25 | 2021-11-25 | 梳理数据库表间关系的方法、装置及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111410432.6A CN114153898A (zh) | 2021-11-25 | 2021-11-25 | 梳理数据库表间关系的方法、装置及应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114153898A true CN114153898A (zh) | 2022-03-08 |
Family
ID=80457608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111410432.6A Pending CN114153898A (zh) | 2021-11-25 | 2021-11-25 | 梳理数据库表间关系的方法、装置及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114153898A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712691A (zh) * | 2022-11-17 | 2023-02-24 | 创新奇智(重庆)科技有限公司 | 一种数据关系处理方法及系统 |
CN117931898B (zh) * | 2024-03-25 | 2024-06-07 | 成都同步新创科技股份有限公司 | 一种基于大模型的多维数据库统计分析方法 |
CN118193544A (zh) * | 2024-05-20 | 2024-06-14 | 浪潮通用软件有限公司 | 一种业务数据的自动标注方法、设备及介质 |
-
2021
- 2021-11-25 CN CN202111410432.6A patent/CN114153898A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712691A (zh) * | 2022-11-17 | 2023-02-24 | 创新奇智(重庆)科技有限公司 | 一种数据关系处理方法及系统 |
CN117931898B (zh) * | 2024-03-25 | 2024-06-07 | 成都同步新创科技股份有限公司 | 一种基于大模型的多维数据库统计分析方法 |
CN118193544A (zh) * | 2024-05-20 | 2024-06-14 | 浪潮通用软件有限公司 | 一种业务数据的自动标注方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11977541B2 (en) | Systems and methods for rapid data analysis | |
CN114153898A (zh) | 梳理数据库表间关系的方法、装置及应用 | |
WO2019214245A1 (zh) | 一种信息推送方法、装置、终端设备及存储介质 | |
CN109117440B (zh) | 一种元数据信息获取方法、系统和计算机可读存储介质 | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
CN106909642B (zh) | 数据库索引方法及系统 | |
CN110019542B (zh) | 企业关系的生成、生成组织成员数据库及识别同名成员 | |
CN110727857A (zh) | 针对业务对象识别潜在用户的关键特征的方法及装置 | |
CN110909266B (zh) | 深度分页的方法、装置及服务器 | |
CN114741368A (zh) | 基于人工智能的日志数据统计方法及相关设备 | |
CN114153925A (zh) | 数据表关联分析方法和装置 | |
CN112363996B (zh) | 用于建立电网知识图谱的物理模型的方法及系统和介质 | |
CN113205442A (zh) | 基于区块链的电子政务数据反馈管理方法及装置 | |
CN111813773A (zh) | 一种电网抄表数据存储方法、上传方法、装置和存储装置 | |
CN113535962B (zh) | 数据入库方法、装置、电子装置、程序产品及存储介质 | |
CN112365248B (zh) | 一种分析数字货币交易路径的方法及系统 | |
CN112612817B (zh) | 数据处理方法、装置、终端设备及计算机可读存储介质 | |
CN114416806A (zh) | 电力安全知识数据的采集方法、装置及计算机设备 | |
CN112131215B (zh) | 自底向上的数据库信息获取方法及装置 | |
CN111209733B (zh) | 文本记录处理方法及装置 | |
CN108132971B (zh) | 数据库碎片文件的分析方法和装置 | |
CN112100670A (zh) | 一种基于大数据的隐私数据分级保护方法 | |
CN104951869A (zh) | 一种基于工作流的舆情监控方法及装置 | |
CN113138936B (zh) | 数据处理方法、装置、存储介质及处理器 | |
CN114724656A (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 |