CN112434024B - 面向关系型数据库的数据字典生成方法、装置、设备及介质 - Google Patents
面向关系型数据库的数据字典生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112434024B CN112434024B CN202011148458.3A CN202011148458A CN112434024B CN 112434024 B CN112434024 B CN 112434024B CN 202011148458 A CN202011148458 A CN 202011148458A CN 112434024 B CN112434024 B CN 112434024B
- Authority
- CN
- China
- Prior art keywords
- data
- relational database
- columns
- sample table
- column
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000012549 training Methods 0.000 claims description 8
- 230000033772 system development Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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
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
技术领域
本发明涉及数据处理技术领域,特别涉及一种面向关系型数据库的数据字典生成方法、装置、设备及介质。
背景技术
传统企业为了优化工作流程、提高工作效率,都会交由第三方软件***公司安装企业管理软件等信息化***,比如ERP(Enterprise Resource Planning,)企业资源计划)***、CRM(Customer Relationship Management,客户关系管理)***等。但是企业虽有数据库管理权限,然而由于关系型数据库内容含糊不清,数据库内可能存在几百甚至上千张表格,每张表格可能有几十到上百个数据列,在建立企业级数据资产中心时,对软件***的二次功能开发,往往是额外付费让***软件厂商提供相应的数据字典和开发文档来获取数据库数据列含义和结构,上层应用的快速开发基本无法实现,***软件间通信接口开发也需要***厂商配合,不仅周期长,而且运维成本巨大。
发明内容
本公开实施例提供了一种面向关系型数据库的数据字典生成方法、装置、设备及存储介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本公开实施例提供了一种面向关系型数据库的数据字典生成方法,包括:
获取关系型数据库对应的软件***界面的样例表格数据;
计算样例表格数据的数据列与关系型数据库的数据列之间的匹配率;
根据关系型数据库构建相似度计算模型,根据相似度计算模型计算样例表格数据的数据列与关系型数据库的数据列之间的相似度;
根据匹配率和相似度确定与样例表格数据的数据列匹配的关系型数据库的数据列,将样例表格数据的数据列含义作为与其匹配的关系型数据库的数据列含义;
根据关系型数据库的数据列含义生成数据字典。
在一个实施例中,获取关系型数据库对应的软件***界面的样例表格数据,包括:
通过网页抓包工具获取关系型数据库对应的软件***界面的样例表格数据。
在一个实施例中,计算样例表格数据的数据列与关系型数据库的数据列之间的匹配率,包括:
将关系型数据库转换为ES数据库;
当样例表格数据的数据列的数据类型与ES数据库中的数据列数据类型不一致或不兼容时,匹配率为零;
当数据类型一致或兼容时,通过计算样例表格数据的数据列的实例值与ES数据的数据列的实例值相同的个数占样例表格数据的数据列的实例值总个数的比例,计算样例表格数据的数据列与关系型数据库的数据列之间的匹配率。
在一个实施例中,根据关系型数据库构建相似度计算模型,包括:
构建关系型数据库的图结构;
根据关系型数据库的数据列的实例值以及图结构构建图数据集;
根据图数据集训练相似度计算模型。
在一个实施例中,构建关系型数据库的图结构,包括:
根据关系型数据库中数据列间的共现关系、表与表的外键关系以及表与表的连接关系,构建关系型数据库的图结构。
在一个实施例中,根据关系型数据库的数据列的实例值以及图结构构建图数据集,包括:
获取关系型数据库单个表格内的数据列的实例值;
根据图结构将不同表格的数据列的实例值关联在一起,获取表间的实例值;
对获取到的实例值进行特征编码、构建邻接矩阵以及构建标签,得到图数据集。
在一个实施例中,根据匹配率和相似度确定与样例表格数据的数据列匹配的关系型数据库的数据列,包括:
当两个数据列之间的匹配率大于预设匹配率阈值和相似度大于预设相似度阈值时,确定两个数据列匹配。
第二方面,本公开实施例提供了一种面向关系型数据库的数据字典生成装置,包括:
获取模块,用于获取关系型数据库对应的软件***界面的样例表格数据;
第一计算模块,用于计算样例表格数据的数据列与关系型数据库的数据列之间的匹配率;
第二计算模块,用于根据关系型数据库构建相似度计算模型,根据相似度计算模型计算样例表格数据的数据列与关系型数据库的数据列之间的相似度;
匹配模块,用于根据匹配率和相似度确定与样例表格数据的数据列匹配的关系型数据库的数据列,将样例表格数据的数据列含义作为与其匹配的关系型数据库的数据列含义;
生成模块,用于根据关系型数据库的数据列含义生成数据字典。
第三方面,本公开实施例提供了一种面向关系型数据库的数据字典生成设备,包括处理器和存储有程序指令的存储器,处理器被配置为在执行程序指令时,执行上述实施例提供的面向关系型数据库的数据字典生成方法。
第四方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机可读指令,计算机可读指令可被处理器执行以实现上述实施例提供的一种面向关系型数据库的数据字典生成方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的面向关系型数据库的数据字典生成方法,无需***厂商配合,只需提供数据库登录权限,通过自动抓包软件获取软件***界面的样例表格数据,通过将样例表格数据的数据列与关系型数据的数据列进行匹配,得到关系型数据的数据列含义,实现数据列含义翻译和数据库内容清洗,生成数据字典,数据字典可以将多个数据库按业务含义整合在一起,实现多数据库的融合;通过对面向关系型数据库的数据进行处理,得到数据字典,可以便于后期对***进行扩展和维护,减少***开发成本,提高数据的利用率,不需要厂商重新设计和维护。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种面向关系型数据库的数据字典生成方法的流程示意图;
图2是根据一示例性实施例示出的一种面向关系型数据库的数据字典生成方法的示意图;
图3是根据一示例性实施例示出的一种关系型数据库的数据列之间的关系示意图;
图4是根据一示例性实施例示出的一种关系型数据库图结构的示意图;
图5是根据一示例性实施例示出的一种相似度计算模型的示意图;
图6是根据一示例性实施例示出的一种面向关系型数据库的数据字典生成装置的结构示意图;
图7是根据一示例性实施例示出的一种面向关系型数据库的数据字典生成设备的结构示意图;
图8是根据一示例性实施例示出的一种计算机存储介质的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或一个以上实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
在工业领域数据中台建设中,往往涉及多个***的数据库,例如包含ERP(Enterprise Resource Planning,)企业资源计划)***、CRM(Customer RelationshipManagement,客户关系管理)***、财务管理***等。本公开实施例中的方法可以对其中一个或多个数据库的数据进行处理,生成数据字典,将多个数据库按业务含义整合在一起,实现多数据库的融合,从而方便企业对***进行功能扩展和维护,大大减少***开发成本。
下面将结合附图1-附图5,对本申请实施例提供的面向关系型数据库的数据字典生成方法进行详细介绍。
参见图1,该方法具体包括以下步骤。
S101获取关系型数据库对应的软件***界面的样例表格数据。
为了获取企业关系型数据库的数据字典,首先需要从该数据库对应的软件***界面上导出写入该数据库的样例表格数据。软件***界面上的样例表格数据通常无法直接导出,传统的做法是直接复制,然后粘贴到excel表格中。人工复制粘贴的方法费时费力,而且并不是所有的表格都可以顺利的复制粘贴下来,常常会碰到数据缺失、数据不规整等问题。为了快速准确地直接获取界面上的样例表格数据,在一种可能的实现方式中,通过网页抓包工具获取各个软件***界面的样例表格数据。其中,样例表格数据的数据列含义是已知的。
S102计算样例表格数据的数据列与关系型数据库的数据列之间的匹配率。
首先将关系型数据库转换为ES数据库,ES(Elastic Search,弹性搜索)数据库是一个开源分布式搜索引擎,同时ES还是一个分布式文档数据库,其中每个数据列均可被索引,而且每个数据列的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据,可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机,具有较高的可用性和可扩展性。
由于ES数据库的匹配基于倒排索引实现,相较于关系型数据库对于未建索引的数据列采用的全表扫描方式来说,速度得到了很大的提升。所以我们将关系型数据库转化为ES数据库,然后在ES数据库中实现检索和匹配率的计算。
具体地,从关系型数据库中获取所有表格的结构信息,根据表格结构信息在ES数据库中创建对应的映射。关系型数据库中的每个表格转化为ES数据库中的一个类型,表格中每个数据列对应于ES中该类型下的一个数据列。同时保证映射时关系型数据库中的数据列的数据类型和ES数据库中的数据列的数据类型保持一致或兼容。映射创建完毕后,再将关系型数据库表中的数据批量导入到ES数据库对应映射中,关系型数据库表中每个数据行对应于ES数据库中该映射下的一个文档,导入转化完成后,整个关系型数据库中的表结构以及数据都完整地映射到ES数据库中。
然后计算样例表格数据的数据列与ES数据的数据列之间的匹配率。
在一种可能的实现方式中,先根据正则匹配规则以及python、java等语言内置的数据类型判断方法,判断样例表格数据中数据列的数据类型,接着依次遍历ES数据库中每个数据列,当样例表格数据的数据列的数据类型与ES数据库中的数据列数据类型不一致或不兼容时,匹配率为零。
当数据类型一致或兼容时,通过计算样例表格数据数据列的实例值与ES数据数据列的实例值相同的个数占样例表格数据的数据列的实例值的总个数的比例,计算样例表格数据的数据列与关系型数据的数据列之间的匹配率。
具体地,记样例表格数据中的某一数据列为Colt,Colt中共有N个实例值,记为{x1,x2,…,xN},记关系型数据库中某一数据列为Cols,Cols中共有M个实例值,记为{y1,y2,…,yM}。则这两个数据列之间的匹配率计算公式如下:
其中Count()是一个计数函数,用来计算样本集中的样本个数。
根据该步骤,对于样例表格数据集中每个数据列,得到了它与ES数据库中每个数据列的匹配率。
S103根据关系型数据库构建相似度计算模型,根据相似度计算模型计算样例表格数据的数据列与关系型数据库的数据列之间的相似度。
在一个可选地实施例中,根据关系型数据构建相似度计算模型,包括:构建关系型数据库的图结构,根据关系型数据的数据列的实例值以及图结构构建图数据集,根据图数据集训练相似度计算模型。
其中,构建关系型数据库的图结构包括根据关系型数据库中数据列间的共现关系、表与表的外键关系以及表与表的连接关系,构建关系型数据库的图结构。
关系型数据库是由一组二维表及其之间的关系组成的一个数据组织,其中,二维表由数据行和数据列组成,一个数据行是一条完整的数据。关系型数据库按照结构化的方法存储数据,每个数据表都必须先定义各个数据的数据列,再根据表的结构存入数据库。
其中,同一个表内的数据列之间存在着共现关系,外键是用于建立和加强两个表数据之间的链接,它是一种约束,描述的是表之间的关系。我们可以从数据库的schema信息中获取表格的外键约束信息。
视图是从一个或几个基本表中导出的虚拟的表,在***的数据字典中仅存放了视图的定义,不存放视图对应的数据。我们可以从数据库***中获取视图的SQL语句,从SQL语句中通过正则表达式可以获取表之间join链接关系,join子句用于把来自两个或多个表的行结合起来。数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改。通过获取日志信息,可以得到所有对数据库的操作信息,特别是他人的SQL查询语句,从SQL语句中通过正则表达式可以获取表之间join链接关系。
把关系型数据库内每个表的每个数据列作为一个节点,节点之间通过表内共现关系、表间外键关系、表间join连接关系连接起来,得到关系型数据库的图结构。
图3是根据一示例性实施例示出的一种关系型数据库的数据列之间的关系示意图,如图3所示,有三张表,Table1、Table2和Table3,Table1的Order_id数据列和Table2的Order_id数据列通过Join连接关系关联在一起,Table1的Cust_id数据列和Table3的Cust_id数据列通过外键关系关联在一起,三个表各自表内的数据列之间通过共现关系关联在一起。图4是根据一示例性实施例示出的一种关系型数据库图结构的示意图,每个节点是数据库内的一个数据列,节点之间通过三种不同的关联关系连接起来。
然后根据关系型数据的数据列的实例值以及图结构构建图数据集。
具体地,获取关系型数据库中单个表格内的数据列的实例值。在每个表内,由于一个数据行是一条完整的实例数据,所以把每一表格内的每行实例数据取出来,以下面三张表Table1、Table2、Table3为例,从Table1中可以抽取出三行实例值,Table1有3行,分别是(X1,C1,2020-07-01,100,a)、(X2,C1,2020-07-02,50,b)、(X3,C2,2020-07-03,75,d),这3行实例数据对应的数据列名分别是(Table1.Order_id,Table1.Cust_id,Table1.Date,Table1.Amount,Table1.Type),并且每行实例数据内的每个实例值之间存在共线关系,从Table2中可以抽取出3行实例数据,从Table3中可以抽取出2行实例数据。
根据图结构将不同表格的数据列的实例值关联在一起,获取表间的实例值,抽取完每个表的实例数据之后,我们把不同表的实例数据行通过表间的外键、join关联关系关联在一起,得到表间的实例数据行。例如:Table1的第一行实例数据(X1,C1,2020-07-01,100,a)和Table2的第一行实例数据(X1,纸箱,2020-07-11)同Table1.Order_id和Table2.Order_id的Join连接关系关联起来,并且Table1的第一行实例数据(X1,C1,2020-07-01,100,a)和Table3的第一行实例数据(C1,A公司,Vip客户)通过Table1.Cust_id和Table3.Cust_id的外键关系关联起来,得到的表间实例数据如下:
(X1,C1,2020-07-01,100,a,X1,纸箱,2020-07-11,C1,A公司,Vip客户)它的每个实例值对应的数据列名是(Table1.Order_id,Table1.Cust_id,Table1.Date,Table1.Amount,Table1.Type,Table2.Order_id,Table2.Prod_name,Table2.Prod_time,Table3.Cust_id,Table3.Cust_name,Table3.Cust_type)。
对获取到的实例值进行特征编码、构建邻接矩阵以及构建标签,得到图数据集。
具体地,首先进行特征编码,由于数据库中实例数据类型主要有字符串类型(char、varchar等)、数值类型(int、float等)、时间型(datetime等)、布尔类型四大类,数据类型的多样性会对模型的输入产生一定困难,因此,在一种可能的实现方式中,我们需要把所有实例值都统一转换为字符串类型,然后通过统一的方式对字符串进行特征编码,转换为方便输入模型的数值特征。
在一种可能的实现方式中,可以进行onehot编码,以实例值‘X1’为例,它经过onehot编码后得到的特征向量为(0,0,1,0,0,0,1,0,0),其中第一个1代表字符‘X’出现,第二个1代表‘1’出现,其余为0代表其他字符未出现。由此对每一行实例数据,例如(X1,C1,2020-07-01,100,a),都可以得到它的onehot编码特征数组,记为X,X是一个nxm的数组,n代表该行实例数据中实例值个数,例如(X1,C1,2020-07-01,100,a)有5个实例值,所以n=5),m代表onehot编码特征向量长度,即所有字符个数,X的第i行代表该实例数据第i个实例的onehot特征向量。
可以进行cnn特征编码,首先对每个字符串通过word embedding方法生成二维的字符串词向量矩阵,然后在字符串长度的维度做一维卷积,最后用maxpooling提取通过卷积得到的字符串特征。对每一行实例数据得到的特征数组记为X,X是一个nxm的数组,n代表该行实例数据中实例值个数,m代表特征向量长度,X的第i行代表该行实例数据第i个实例字符串的cnn特征向量。
可以进行lstm特征编码,首先对每个字符串通过word embedding方法生成二维的字符串词向量矩阵,然后输入一个lstm网络,对从lstm网络输出的各个字符的特征使用attention机制来获取整个字符串的特征。对每一行实例数据得到的特征数组记为X,X是一个nxm的数组,n代表该行实例数据中实例值个数,m代表特征向量长度,X的第i行代表该行实例数据第i个实例字符串的lstm特征向量。
然后对每行实例数据构建邻接矩阵,设该行实例数据长度为k,共k个数据列,它的邻接矩阵记为Adj,Adj是一个k*k的0-1矩阵,其中,如果数据列i和j有关联关系,包括共现关系或外键关系或Join连接关系,那么Adj[i,j]=Adj[j,i]=1,否则Adj[i,j]=Adj[j,i]=0,此外令Adj[i,i]=1。
以表内实例数据行(X1,C1,2020-07-01,100,a)为例,由于它是从一个表内抽取出来的,所以两两数据列之间都有共现关系,他的邻接矩阵是一个全为1的5x5矩阵:
以表间实例数据行(X1,C1,2020-07-01,100,a,X1,纸箱,2020-07-11,C1,A公司,Vip客户)为例,由于它是由三个表的三行实例数据关联起来的,它的部分数据列之间存在表内共现关系,另一些数据列之间存在外键和Join关联关系,它的邻接矩阵是一个11x11的矩阵:
构建完邻接矩阵后,再构建标签,每行实例数据的标签就是该行实例数据中每个实例值对应数据列的名称所构成的向量,记为L,L的长度为该实例数据的长度。以从Table1中抽取出的实例数据行(X1,C1,2020-07-01,100,a)为例,它的标签为(Table1.Order_id,Table1.Cust_id,Table1.Date,Table1.Amount,Table1.Type)。
通过以上三步,我们可以把每一行实例数据,无论是从单个表内抽取出来的,还是从多个表通过关联关系关联起来得到的表间实例数据行都转化为特征向量数组X,并且得到它的邻接矩阵Adj和标签L,把(X,Adj,L)记为该行实例数据对应的图数据集。
为了提高模型预测结果的稳定性和抗干扰能力,通过特征增强技术来扩充原始图数据集。
对原始图数据集中的每个图数据样本,对它进行一个随机采样操作,得到它的一个或多个子图数据样本,并添加到原始图数据集中。具体的随机采样操作如下:对一个图数据样本,即一条实例数据,假设它有K个实例值,对应K个数据列,我们从中随机选取k个实例值,对应k个数据列,作为子实例数据,其中k是1~K之间的随机数,并保留这k个实例之间的关系,然后对该子实例数据做onehot编码,并得到它的邻接矩阵和标签,最终得到它的一个子图数据样本,最后把经过扩充的原始图数据集称为图数据集。
在一种可能的实现方式中,按照0.7:0.1:0.2的比例划分图数据集,分别记为训练集,验证集,测试集。其中,训练集用来训练模型,验证集用来调节模型的超参数,测试集用来测试模型效果。
最后根据图数据集训练相似度计算模型,图是一种结构化数据,它由一系列的对象和关系类型组成,它是一种非欧几里得数据,由于它的不规则性和复杂性,对传统的机器学习和深度学习算法及模型提出了重大挑战。在最近两三年中,图神经网络模型开始得到深入研究,并广泛应用到各种图结构场景中,比如社交网络、知识图谱、推荐***、生命科学等领域。
本公开实施例中的相似度计算模型,为一个用于节点分类的图神经网络模型,对于图数据训练集中每个图数据样本(Xi,Adji,Li),把每条实例数据通过特征编码得到的特征向量数组Xi,和邻接矩阵Adji输入相似度计算模型,预测每个实例值的数据列标签。记预测得到的数据列标签为Lpred,Lpred=GNN_Model(Xi,Adji)。选用的损失函数为交叉熵损失函数,通过梯度下降法来训练相似度计算模型的参数,模型的超参数通过验证集来调优。最后在测试集上测试模型的效果。
图5是根据一示例性实施例示出的一种相似度计算模型的示意图。如图5所示,获取数据库内的表格,构建它们的图结构,将实例值统一转换为字符串并进行特征编码,将它们输入GNN模块,该模块由三层图卷积神经网络GCN组成,这里也可以用其他图神经网络GAT、GraphSage等替换,经测试,层数推荐使用1~3层,经过GNN模块得到的每个节点的特征向量再输入由一个全连接网络和Softmax归一化层构成的预测模块,最终输出每个节点属于数据库中对应数据列的概率值。
由于图神经网络模型极容易出现over-smooth问题,特别是当图神经网络深度比较深,图结构连通度比较高时,可以在GNN模块中的GCN层之间添加Res残差网络或Dense稠密网络,在训练时也可以采用DropEdge、Normalization等方法来缓解over-smooth问题。
得到训练好的相似度计算模型之后,根据相似度计算模型计算样例表格数据的数据列与关系型数据的数据列之间的相似度。
具体地,对软件***样例表格数据中每一行实例数据,进行特征编码获取它的特征数组,并计算邻接矩阵,然后将特征数组和邻接矩阵输入训练好的相似度计算模型,得到样例表格数据中该行实例数据的数据列属于关系型数据库中每个数据列的概率值,最后对每一行实例数据预测得到的概率值取平均,得到样例表格数据每个数据列对应于关系型数据库每个数据列的概率值,作为两个数据列之间的相似度。
S104根据匹配率和相似度确定与样例表格数据的数据列匹配的关系型数据的数据列,将样例表格数据的数据列含义作为与其匹配的关系型数据的数据列含义。
具体地,当两个数据列之间的匹配率大于预设匹配率阈值和相似度大于预设相似度阈值时,确定两个数据列匹配。在一种可能的实现方式中,预设匹配率阈值为0.95,预设相似度阈值为0.5,当两个数据列的匹配率大于0.95,且两个数据列的相似度大于0.5时,确定两个数据列匹配。其中,预设匹配率阈值和预设相似度阈值本领域技术人员可自行设定,本公开实施例不做具体限制。
当两个数据列匹配时,因为样例表格数据的数据列含义是已知的,因此,将样例表格数据的数据列含义作为与其匹配的关系型数据的数据列含义。
根据该步骤,可以获取到关系型数据的数据列含义。
S105根据关系型数据库的数据列含义生成数据字典,其中,数据字典为企业一个或多个关系型数据库对应的数据字典,能够将多个关系型数据库按业务含义整合在一起,实现多数据库的融合,从而方便技术人员对***进行功能扩展和维护,大大降低开发成本。
为了便于理解本申请实施例提供的面向关系型数据库的数据字典生成方法方法,下面结合附图2进行说明。如图2所示,首先通过自动抓包工具,获取与关系型数据库对应的软件***界面的样例表格数据,然后将关系型数据库转化为ES数据库,计算样例表格数据的数据列与ES数据库的数据列之间的匹配率,然后根据关系型数据库构建图结构,构建图数据集,根据图数据集训练图神经网络模型,根据训练好的相似度计算模型计算样例表格数据的数据列与关系型数据库的数据列之间的相似度。根据匹配率和相似度确定与样例表格数据的数据列匹配的关系型数据的数据列,当两个数据列之间的匹配率大于预设匹配率阈值和相似度大于预设相似度阈值时,确定两个数据列匹配,将样例表格数据的数据列含义作为与其匹配的关系型数据的数据列含义。实现数据库翻译,生成数据字典。
本公开实施例还提供一种面向关系型数据库的数据字典生成装置,该装置用于执行上述实施例的面向关系型数据库的数据字典生成方法,如图6所示,该装置包括:
获取模块601,用于获取关系型数据库对应的软件***界面的样例表格数据;
第一计算模块602,用于计算样例表格数据的数据列与关系型数据库的数据列之间的匹配率;
第二计算模块603,用于根据关系型数据库构建相似度计算模型,根据相似度计算模型计算样例表格数据的数据列与关系型数据库的数据列之间的相似度;
匹配模块604,用于根据匹配率和相似度确定与样例表格数据的数据列匹配的关系型数据库的数据列,将样例表格数据的数据列含义作为与其匹配的关系型数据库的数据列含义;
生成模块605,用于根据关系型数据库的数据列含义生成数据字典。
需要说明的是,上述实施例提供的面向关系型数据库的数据字典生成装置在执行面向关系型数据库的数据字典生成方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的面向关系型数据库的数据字典生成装置与面向关系型数据库的数据字典生成方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
第三方面,本公开实施例还提供一种与前述实施例所提供的面向关系型数据库的数据字典生成方法对应的电子设备,以执行上述面向关系型数据库的数据字典生成方法。
请参考图7,其示出了本申请的一些实施例所提供的一种电子设备的示意图。如图7所示,电子设备包括:处理器700,存储器701,总线702和通信接口703,处理器700、通信接口703和存储器701通过总线702连接;存储器701中存储有可在处理器700上运行的计算机程序,处理器700运行计算机程序时执行本申请前述任一实施例所提供的面向关系型数据库的数据字典生成方法。
其中,存储器701可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口703(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线702可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器701用于存储程序,处理器700在接收到执行指令后,执行程序,前述本申请实施例任一实施方式揭示的面向关系型数据库的数据字典生成方法可以应用于处理器700中,或者由处理器700实现。
处理器700可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器700中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器700可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器700读取存储器701中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的面向关系型数据库的数据字典生成方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
第四方面,本申请实施例还提供一种与前述实施例所提供的面向关系型数据库的数据字典生成方法对应的计算机可读存储介质,请参考图8,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),计算机程序在被处理器运行时,会执行前述任意实施例所提供的面向关系型数据库的数据字典生成方法。
需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的面向关系型数据库的数据字典生成方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种面向关系型数据库的数据字典生成方法,其特征在于,包括:
获取关系型数据库对应的软件***界面的样例表格数据;
计算所述样例表格数据的数据列与所述关系型数据库的数据列之间的匹配率;其中,列与列之间匹配的是数据列的实例值;
根据所述关系型数据库构建相似度计算模型,包括:构建关系型数据库的图结构;根据所述关系型数据库的数据列的实例值以及所述图结构构建图数据集;根据所述图数据集训练所述相似度计算模型;其中,根据所述关系型数据库的数据列的实例值以及所述图结构构建图数据集,包括:获取关系型数据库单个表格内的数据列的实例值;根据所述图结构将不同表格的数据列的实例值关联在一起,获取表间的实例值;对获取到的实例值进行特征编码、构建邻接矩阵以及构建标签,得到图数据集;
根据所述相似度计算模型计算所述样例表格数据的数据列与所述关系型数据库的数据列之间的相似度;
根据所述匹配率和所述相似度确定与所述样例表格数据的数据列匹配的关系型数据库的数据列,将所述样例表格数据的数据列含义作为与其匹配的关系型数据库的数据列含义;
根据所述关系型数据库的数据列含义生成数据字典。
2.根据权利要求1所述的方法,其特征在于,获取关系型数据库对应的软件***界面的样例表格数据,包括:
通过网页抓包工具获取关系型数据库对应的软件***界面的样例表格数据。
3.根据权利要求1所述的方法,其特征在于,计算所述样例表格数据的数据列与所述关系型数据库的数据列之间的匹配率,包括:
将关系型数据库转换为ES数据库;
当所述样例表格数据的数据列的数据类型与所述ES数据库中的数据列数据类型不一致或不兼容时,所述匹配率为零;
当所述数据类型一致或兼容时,通过计算样例表格数据的数据列的实例值与ES数据的数据列的实例值相同的个数占样例表格数据的数据列的实例值总个数的比例,计算所述样例表格数据的数据列与所述关系型数据库的数据列之间的匹配率。
4.根据权利要求1所述的方法,其特征在于,构建关系型数据库的图结构,包括:
根据所述关系型数据库中数据列间的共现关系、表与表的外键关系以及表与表的连接关系,构建关系型数据库的图结构。
5.根据权利要求1所述的方法,其特征在于,根据所述匹配率和所述相似度确定与所述样例表格数据的数据列匹配的关系型数据库的数据列,包括:
当两个数据列之间的匹配率大于预设匹配率阈值和相似度大于预设相似度阈值时,确定两个数据列匹配。
6.一种面向关系型数据库的数据字典生成装置,其特征在于,包括:
获取模块,用于获取关系型数据库对应的软件***界面的样例表格数据;
第一计算模块,用于计算所述样例表格数据的数据列与所述关系型数据库的数据列之间的匹配率;其中,列与列之间匹配的是数据列的实例值;
第二计算模块,用于根据所述关系型数据库构建相似度计算模型,包括:构建关系型数据库的图结构;根据所述关系型数据库的数据列的实例值以及所述图结构构建图数据集;根据所述图数据集训练所述相似度计算模型;其中,根据所述关系型数据库的数据列的实例值以及所述图结构构建图数据集,包括:获取关系型数据库单个表格内的数据列的实例值;根据所述图结构将不同表格的数据列的实例值关联在一起,获取表间的实例值;对获取到的实例值进行特征编码、构建邻接矩阵以及构建标签,得到图数据集;
根据所述相似度计算模型计算所述样例表格数据的数据列与所述关系型数据库的数据列之间的相似度;
匹配模块,用于根据所述匹配率和所述相似度确定与所述样例表格数据的数据列匹配的关系型数据库的数据列,将所述样例表格数据的数据列含义作为与其匹配的关系型数据库的数据列含义;
生成模块,用于根据所述关系型数据库的数据列含义生成数据字典。
7.一种面向关系型数据库的数据字典生成设备,其特征在于,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至5任一项所述的面向关系型数据库的数据字典生成方法。
8.一种计算机可读介质,其特征在于,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1至5任一项所述的一种面向关系型数据库的数据字典生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011148458.3A CN112434024B (zh) | 2020-10-23 | 2020-10-23 | 面向关系型数据库的数据字典生成方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011148458.3A CN112434024B (zh) | 2020-10-23 | 2020-10-23 | 面向关系型数据库的数据字典生成方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112434024A CN112434024A (zh) | 2021-03-02 |
CN112434024B true CN112434024B (zh) | 2024-04-02 |
Family
ID=74695984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011148458.3A Active CN112434024B (zh) | 2020-10-23 | 2020-10-23 | 面向关系型数据库的数据字典生成方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112434024B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113205160B (zh) * | 2021-07-05 | 2022-03-04 | 北京世纪好未来教育科技有限公司 | 模型训练、文本识别方法、装置、电子设备和介质 |
CN113672615B (zh) * | 2021-07-22 | 2023-06-20 | 杭州未名信科科技有限公司 | 一种基于树型表间关系自动生成sql的数据分析方法与*** |
CN113704237A (zh) * | 2021-08-13 | 2021-11-26 | 杭州数梦工场科技有限公司 | 异常数据检测方法及装置、电子设备 |
CN113971210B (zh) * | 2021-12-27 | 2022-04-08 | 宇动源(北京)信息技术有限公司 | 一种数据字典生成方法、装置、电子设备及存储介质 |
CN114662204B (zh) * | 2022-04-07 | 2023-03-31 | 清华大学 | 基于图神经网络的弹性杆系结构体系数据处理方法及装置 |
CN116011422B (zh) * | 2023-03-28 | 2023-06-09 | 北京宽客进化科技有限公司 | 一种结构化表格数据生成方法和*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710663A (zh) * | 2018-05-14 | 2018-10-26 | 北京大学 | 一种基于本体模型的数据匹配方法及*** |
CN111651452A (zh) * | 2020-04-29 | 2020-09-11 | 中国平安财产保险股份有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
CN111737496A (zh) * | 2020-06-29 | 2020-10-02 | 东北电力大学 | 一种电力设备故障知识图谱构建方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086998B2 (en) * | 2006-04-27 | 2011-12-27 | International Business Machines Corporation | transforming meta object facility specifications into relational data definition language structures and JAVA classes |
US9646246B2 (en) * | 2011-02-24 | 2017-05-09 | Salesforce.Com, Inc. | System and method for using a statistical classifier to score contact entities |
US10140337B2 (en) * | 2015-10-30 | 2018-11-27 | Sap Se | Fuzzy join key |
-
2020
- 2020-10-23 CN CN202011148458.3A patent/CN112434024B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710663A (zh) * | 2018-05-14 | 2018-10-26 | 北京大学 | 一种基于本体模型的数据匹配方法及*** |
CN111651452A (zh) * | 2020-04-29 | 2020-09-11 | 中国平安财产保险股份有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
CN111737496A (zh) * | 2020-06-29 | 2020-10-02 | 东北电力大学 | 一种电力设备故障知识图谱构建方法 |
Non-Patent Citations (1)
Title |
---|
大规模图数据库上的模式匹配;解春欣;万方数据库;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112434024A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112434024B (zh) | 面向关系型数据库的数据字典生成方法、装置、设备及介质 | |
WO2021103492A1 (zh) | 一种企业经营风险预测方法和*** | |
CN102918494B (zh) | 基于数据库模型不可知论、纲要不可知论且工作负载不可知论的数据存储和存取模型的数据存储和/或检索方法和*** | |
CN109446341A (zh) | 知识图谱的构建方法及装置 | |
Wylot et al. | Tripleprov: Efficient processing of lineage queries in a native rdf store | |
Dai et al. | Data profiling technology of data governance regarding big data: review and rethinking | |
CN103473672A (zh) | 企业级数据中心的元数据质量稽核***、方法及平台 | |
CN104679646B (zh) | 一种用于检测sql代码缺陷的方法和装置 | |
US9542456B1 (en) | Automated name standardization for big data | |
CN113254630B (zh) | 一种面向全球综合观测成果的领域知识图谱推荐方法 | |
CN112446778A (zh) | 基于知识图谱的企业信用风险识别方法、设备及介质 | |
CN115547466B (zh) | 基于大数据的医疗机构登记评审***及其方法 | |
CN116383399A (zh) | 一种事件舆情风险预测方法及*** | |
Diao et al. | Efficient exploration of interesting aggregates in RDF graphs | |
CN114676961A (zh) | 企业外迁风险预测方法、装置及计算机可读存储介质 | |
Talburt et al. | A practical guide to entity resolution with OYSTER | |
US10877998B2 (en) | Highly atomized segmented and interrogatable data systems (HASIDS) | |
CN116260866A (zh) | 基于机器学习的政务信息推送方法、装置和计算机设备 | |
TW202305613A (zh) | 資訊倉庫創建方法、電子設備及儲存介質 | |
Alshara | [Retracted] Multilayer Graph‐Based Deep Learning Approach for Stock Price Prediction | |
CN113254428A (zh) | 一种基于决策树的缺失数据填充方法及*** | |
Winberg et al. | A comparison of relational and graph databases for crm systems | |
Gupta et al. | Data Manipulation with Pandas | |
CN116383883B (zh) | 一种基于大数据的数据管理权限处理方法及*** | |
Assaf et al. | RUBIX: a framework for improving data integration with linked 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 |