CN113918577A - 数据表识别方法、装置、电子设备及存储介质 - Google Patents
数据表识别方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113918577A CN113918577A CN202111527266.8A CN202111527266A CN113918577A CN 113918577 A CN113918577 A CN 113918577A CN 202111527266 A CN202111527266 A CN 202111527266A CN 113918577 A CN113918577 A CN 113918577A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- tables
- data tables
- relationship
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种数据表识别方法、装置、电子设备及存储介质。该方法包括:获取业务系统中待识别的多个数据表;根据多个数据表的数据信息,构建每两个数据表之间的关系数据;根据多个数据表的数据信息和每两个数据表之间的关系数据,构建多个数据表的特征数据组;基于图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识。采用本公开,能够提高识别预测的准确率。
Description
技术领域
本公开涉及数据治理领域,尤其涉及一种数据表识别方法、装置、电子设备及存储介质。
背景技术
目前在业务系统中,会产生很多不同的业务数据。
在数据开发场景下,开发人员往往需要对每个数据有所了解,来实现报表、分析等各种数据产品需求,然而在业务系统中不会对产生的数据分类,目前在对数据表识别或分类的场景中,大多数基于数据库表中的关键词,构建识别模型来实现。
然而,在相关识别方法中,只利用了单个表本身的特征,未考虑到表之间的关系特征,识别精度较低。
发明内容
有鉴于此,本公开实施例提供了一种数据表识别方法、装置、电子设备及存储介质,以解决数据表识别精度较低的问题。
根据本公开的一方面,提供了一种数据表识别方法,方法包括:
获取业务系统中待识别的多个数据表;
根据多个数据表的数据信息,构建每两个数据表之间的关系数据;
根据多个数据表的数据信息和每两个数据表之间的关系数据,构建多个数据表的特征数据组,其中,每个数据表对应一个特征数据组;
基于图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识。
根据本公开的另一方面,提供了一种数据表识别装置,装置包括:
获取模块,用于获取业务系统中待识别的多个数据表;
第一构建模块,用于根据多个数据表的数据信息,构建每两个数据表之间的关系数据;
第二构建模块,用于根据多个数据表的数据信息和每两个数据表之间的关系数据,构建每个数据表的特征数据组,其中,每个数据表对应一个特征数据组;
预测模块,用于基于图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识。
根据本公开的另一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,程序包括指令,指令在由处理器执行时使处理器执行上述数据表识别方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述数据表识别方法。
本公开实施例中,获取业务系统中待识别的多个数据表,根据多个数据表的数据信息构建每两个数据表之间的关系数据,并根据每个数据表的数据信息和数据表对应的关系数据构建每个数据表的特征数据组,然后调用预先训练完成的图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,识别每个数据表对应的业务域标识。通过本公开实施例提供的数据表识别方法,每个数据表对应的业务域标识不仅与每个数据表单独的数据信息有关,还与每两个数据表之间的关系数据有关,因此能够提高识别准确率。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被发明,在附图中:
图1示出了根据本公开示例性实施例的数据表识别方法的流程图;
图2示出了根据本公开示例性实施例的关系信息确定流程图;
图3示出了根据本公开示例性实施例的删除无效节点示意图;
图4示出了根据本公开示例性实施例的替换待替换分枝示意图;
图5示出了根据本公开示例性实施例的高频词确定流程图;
图6示出了根据本公开示例性实施例的高频词袋确定方法流程图;
图7示出了根据本公开示例性实施例的预测流程图;
图8示出了根据本公开示例性实施例的图卷积神经网络模型的训练流程图;
图9示出了根据本公开示例性实施例的数据表识别装置的示意性框图;
图10示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为了清楚描述本公开实施例提供的方法,下面对所使用的专业术语进行介绍。
业务系统:业务系统中储存了很多数据信息,业务系统可以包括多个数据库,每个数据库与数据信息的一个收集源一一对应,同时每个数据库中的数据信息通过多个数据表进行储存,每个数据表与一个业务域一一对应。比如对于在线教育行业,业务域可以分为:营销、交易、教学、服务、内容、日志、用户。本公开实施例对业务系统中业务域的种类和数量不作限定。其中,业务系统中的数据信息可以周期性更新,上述更新周期可以由用户设置,本公开实施例对此不作限定。图卷积神经网络:是一种从图数据中提取特征的神经网络结构。
独热编码:又称一位有效编码,其方法是使用多位状态寄存器多个状态进行编码,状态寄存器位数与状态数量相同,每个状态都有独立的寄存器位,并且在任意时候,其中只有一位有效。例如:自然状态码为:000,001,010,011,100,101,独热编码为:000001,000010,000100,001000,010000,100000。
共现关系:两个数据表有共现关系是指一个数据表的某个节点与另一个数据表的某个节点同时在一个调度任务中出现。例如:在抽象语法树中,a_table节点为数据表A属于调度任务C的一个节点,b_table节点为数据表B中属于调度任务C的一个节点,则由于a_table节点和b_table节点同在一个调度任务C中,但是属于不同的分支,可以称数据表A与数据表B有共现关系。
关联关系:两个数据表有关联关系是指两个数据表有关联操作。例如:在抽象语法树中,a_table节点为数据表A的一个节点,b_table节点为数据表B的一个节点,a_table节点与b_table节点通过关系节点join相互连接,则可以称数据表A与数据表B为关联关系。
父依赖关系:是指客体表依赖于父体表的关系。例如:客体表A依赖于父体表B,则可以称为客体表A与父体表B有父依赖关系。
子依赖关系:是指父体表依赖于客体表的关系。例如:和上述父依赖关系相反,父体表B依赖于客体表A,则可以称为客体表A与父体表B有子依赖关系。
本公开实施例提供了一种数据表识别方法,该方法可以由终端、服务器和/或其他具备处理能力的设备完成。本公开实施例提供的方法可以由上述任一设备完成,也可以由多个设备共同完成,本公开对此不作限定。
本公开实施例以服务器为例,下面将参照图1所示的数据表识别方法的流程图,对数据表识别方法进行介绍。
步骤101,获取业务系统中待识别的多个数据表。
获取到业务系统中待识别的多个数据表的情形可以包括以下三种:
第一,终端向服务器发送用户触发的获取请求。
在一种可能的实施方式中,用户可以在终端上点击确认获取选项,此时终端会生成获取请求,并向服务器发送该获取请求。在这种情形下,服务器可以响应终端的请求,从当前的业务系统中获取待识别的多个数据表的数据信息。
第二,终端周期性向服务器发送获取请求。
在一种可能的实施方式中,用户可以在终端上预先设置获取周期,每当达到预设获取周期时,终端会生成获取请求,并向服务器发送该获取请求。在这种情形下,服务器可以响应终端的请求,从当前的业务系统中获取待识别的多个数据表的数据信息。上述预设获取周期可以由用户设置,本公开实施例对此不作限定。
第三,当达到预设的触发条件时,终端周期性向服务器发送获取请求。
其中,触发条件可以为业务数据中的数据信息量超过预设阈值。该预设阈值可以由用户设置,本公开实施例对此不作限定。
在一种可能的实施方式中,业务系统上可以设置有数据监控设备,数据监控设备可以对业务系统中的数据信息量进行监测。当数据监控设备监测到业务数据中的数据信息量超过预设阈值时,可以向终端发送监测消息。当终端接收到上述监测消息时,可以生成获取请求,并向服务器发送该获取请求。在这种情形下,服务器可以响应终端的请求,从当前的业务系统中获取待识别的多个数据表的数据信息。
当然,除上述三种情形之外,还可以是其他情形,本公开实施例对具体情形不作限定。
数据表的数据信息至少包括表信息和字段信息,表信息至少包括表标识、身份信息、表名、所属的数据库名。可选的,表信息还可以包括所属的数据库IP(InternetProtocol,网络之间互连的协议)地址、负责人,本公开实施例对此不作限定。
其中,身份信息可以设置为负责人所属部门。
在一种可能的实施方式中,当服务器接收到终端发送的获取请求时,可以获取业务系统中待识别的多个数据表携带的表信息,每个数据表的表信息包括表ID(Identification,身份)、所属的数据库IP地址、所属的数据库名、表名、负责人、负责人所属部门。例如,获取的数据表的表信息格式如下表1所示:
ID | IP | database_name | table_name | owner | owner_department |
表ID | 所属的数据库IP地址 | 所属的数据库名 | 表名 | 负责人 | 负责人所属部门 |
表1
可选的,针对每个数据表,根据数据表的表标识,获取数据表的字段信息。其中,字段信息至少包括表信息对应的字段的字段名。可选的,字段信息还可以包括字段类型、字段注释,本公开实施例对此不作限定。
在一种可能的实施方式中,服务器可以根据已获取的每个表ID,获取对应的数据表的字段信息,每个表的字段信息包括字段名、字段类型和字段注释。例如,获取的数据表的字段信息格式如下表2所示:
table_id | column_name | column_type | column_comment |
表ID | 字段名 | 字段类型 | 字段注释 |
表2
综上,当服务器接收到终端发送的获取请求时,可以获取业务系统中待识别的每个数据表携带的表信息和字段信息,进而执行步骤102的处理。
步骤102,根据多个数据表的数据信息,构建每两个数据表之间的关系数据。
在一种可能的实施方式中,服务器根据多个数据表的数据信息,得到多个关系数据,每个关系数据对应两个数据表。
可选的,步骤102的具体处理如下:服务器确定多个数据表的关系信息;服务器根据关系信息,构建每两个数据表之间的关系数据。
其中,关系信息包括以下一种或多种:共现关系、关联关系、父依赖关系和子依赖关系,本公开实施例对关系信息的数量和种类均不作限定。
在一种可能的实施方式中,针对每个数据库,确定该数据库的多个数据表的关系信息,然后根据关系信息构建每两个数据表之间的关系数据。
可选的,如图2所示的关系信息确定流程图,上述确定多个数据表的关系信息的具体处理如下:
步骤201,对每个数据库的数据信息做解析处理,得到抽象语法树。
步骤202,遍历抽象语法树,确定处于父节点的至少一个数据表,作为父体表;确定处于子节点的至少一个数据表,作为客体表。
步骤203,根据父体表与对应的客体表之间的关系,确定多个数据表的关系信息。
其中,抽象语法树的节点至少包括多个数据表。
在一种可能的实施方式中,基于sql解析工具对每个数据库的数据信息进行解析处理,得到抽象语法树,接着服务器采用后序遍历的方式遍历解析抽象语法树,确定父体表与客体表,并得到父体表与客体表之间的关系信息,因此能够得到多个数据表的关系信息。其中,sql解析工具可以是pyparsing、antlr、queryparser、sqlparse等工具,本公开实施例对具体使用的sql解析工具不作限定。其中,每个数据表均可以作为父体表或客体表,后续根据关系信息构建每两个数据表之间的关系数据的结构如下表3所示:
relation_id | subject_table_id | object_table_id | relation_type |
关系ID | 父体表ID | 客体表ID | 关系信息 |
表3
可选的,上述步骤201的具体处理如下:对每个数据库的数据信息做解析处理,得到初始的抽象语法树;在初始的抽象语法树中,删除无效节点,确定待替换分枝的目标节点,并将待替换分枝替换为目标节点,得到处理后的抽象语法树。其中,初始的抽象语法树包括无效节点和待替换分枝,无效节点是指解析处理得到的与关系信息无关的节点,待替换分枝包括非目标节点和目标节点,目标节点用于表示数据表。
在一种可能的实施方式中,服务器对每个数据库的数据信息做解析处理,会得到初始的抽象语法树,然后将每个抽象语法树的无效节点进行删除。示例性的,无效节点通常可以包括以下一种或多种:order by、distributed by、cluster by、sort by、limit、colum_c等,本公开实施例对此不作限定。例如图3所示的删除无效节点示意图,从关系节点from可以解析出a_table节点是b_table节点的子依赖,a_table和b_table是遍历目标节点,删除无效节点order by和无效节点colum_c对抽象语法树的遍历解析没有影响。
接着再确定待替换分枝的目标节点,用目标节点等价替换待替换分枝,遍历解析时没有影响,最终得到处理后的抽象语法树。示例性的,待替换分枝可以包括子查询对应的分枝,待替换分枝的父节点为非目标节点,子节点至少包括目标节点,目标节点是指数据表对应的节点,本公开实施例对待替换分枝的具体种类不作限定。其中,子查询可以包括以下一种或多种:where子查询、having子查询等,本公开实施例对此不作限定,例如图4所示的替换待替换分枝示意图,having子查询查询到目标节点b_table,从关系节点from可以解析出a_table节点是子查询中目标节点b_table的子依赖,having和count(1)均为非目标节点,确定having的子查询的目标节点为b_table,并将having的子查询用数据表对应的目标节点b_table替换,遍历解析时没有影响。
删除无效节点和替换待替换分枝均对后续得到关系信息没有影响,且解析处理后的抽象语法树比解析初始的抽象语法树过程更加简单,因此能够降低关系信息解析的复杂性,并提高关系信息解析的效率。
步骤103,根据多个数据表的数据信息和每两个数据表之间的关系数据,构建多个数据表的特征数据组。
其中,每个数据表对应一个特征数据组;特征数据组至少包括以下任意两种或多种:字段个数,身份信息的独热编码,库名高频词的独热编码,表名高频词的独热编码,高频字段名的独热编码,关系数,命中业务域关键词的频次。每个业务域关键词可以采用手动构建的方式获取,本公开实施例对业务域关键词的获取方式不作限定。
在一种可能的实施方式中,对于每个数据表,查找该数据表的表信息、字段信息,统计得到对应的字段个数、负责人所属部门的独热编码、库名高频词的独热编码、表名高频词的独热编码、高频字段名的独热编码、命中业务域关键词的频次,并查找关系数据,统计关系数据中的父体表或客体表为该数据表的关系数据的数量,记为关系数。
可选的,如图5所示的高频词确定流程图,数据表识别方法还包括:
步骤501,获取业务系统中已识别的多个数据表;
步骤502,根据业务系统中的已识别的多个数据表的字段信息,确定高频词袋;
步骤503,在高频词袋中:根据表信息中的所属的数据库名,确定库名高频词;根据表信息中的表名,确定表名高频词;根据表信息中的字段信息的字段名,确定高频字段名。
在一种可能的实施方式中,在对图卷积神经网络模型进行训练之前,服务器会先获取业务系统中已识别的多个数据表,进而可以获取到已识别的多个数据表的表信息、字段信息,该获取方法与未识别的多个数据表的获取方法相同,此处不再赘述。然后服务器根据已识别的每个数据表的字段信息,确定对应的高频词袋,接着服务器可以在高频词袋中,根据表信息的所属的数据库名,确定库名高频词;根据表信息的表名,确定表名高频词;根据表信息的字段名,确定高频字段名。
其中,已识别的多个数据表的表信息还包括以下至少一种或多种:业务域标识、业务域名,例如,获取的已识别的数据表的表信息格式如下表4所示:
id | IP | database_ name | table_ name | owner | owner department | label_ id | label_ name |
表ID | 所属的数据库IP地址 | 所属的数据库名 | 表名 | 负责人 | 负责人所属部门 | 业务域ID | 业务域名 |
表4
可选的,如图6所示的高频词袋确定方法流程图,步骤502的具体处理如下:
步骤601,对已识别的多个数据表的字段信息的字段名进行切词处理,得到多个词汇。
步骤602,统计每个词汇在多个词汇中的出现次数。
步骤603,获取出现次数最多的预设数目个词汇,作为高频词袋。
在一种可能的实施方式中,服务器对已识别的数据表的字段名进行切词处理得到多个词汇,然后对于每个业务域的已识别的数据表,创建一个数组,数组的存储容量为预设数目个词汇,服务器遍历每个词汇,统计每个词汇的出现次数作为频次,按照频次由高到低排序,取前预设数目个词汇存入数组,作为该业务域对应的高频词袋。
步骤104,基于图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识。
在一种可能的实施方式中,服务器调用预先训练完成的图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,针对每个数据表,能得到该数据表对应每个业务域标识的概率,选取该数据表对应业务域标识概率最大的业务域标识作为该数据表对应的业务域标识。每个数据表对应的业务域标识不仅与每个数据表单独的数据信息有关,还与每两个数据表之间的关系数据有关,因此能够提高识别预测的准确率。
如图7所示的预测流程图,步骤104的具体处理步骤如下:
步骤701,根据每个数据表的特征数据组,构建数据矩阵。
步骤702,根据每个数据表的特征数据组和每两个数据表之间的关系数据,构建关系矩阵。
步骤703,基于数据矩阵和关系矩阵,利用预先训练完成的图卷积神经网络模型,确定每个数据表对应的业务域标识。
例如,可以根据每个数据表的特征数据组,构建一个X=N*d维的数据矩阵,接着根据每个数据表的特征数据组和每两个数据表之间的关系数据,构建一个A=N*N维的关系矩阵,然后服务器可以调用预先训练完成的图卷积神经网络模型,输入数据矩阵和关系矩阵,得到每个数据表对应的业务域标识,业务域标识可以是业务域ID等,本公开实施例对业务域标识的类型不作限定。其中,N是数据表的数量,d是每个特征数据组包含的特征数据的数量,X是数据矩阵,A是关系矩阵。
本公开实施例中,服务器获取业务系统中待识别的多个数据表,根据多个数据表的数据信息构建每两个数据表之间的关系数据,并根据每个数据表的数据信息和数据表对应的关系数据构建每个数据表的特征数据组,然后调用预先训练完成的图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,识别每个数据表对应的业务域标识。
本发明实施例可以获得如下效果:
(1)通过本公开实施例提供的根据数据表的数据信息和数据表的关系数据进行业务域标识识别的数据表识别方法,每个数据表对应的业务域标识不仅与每个数据表单独的数据信息有关,还与每两个数据表之间的关系数据有关,因此能够提高识别预测的准确率,还可以提高数据表识别的精度。
(2)通过本公开实施例提供的针对初始的抽象语法树进行删除无效节点和替换待替换分枝的方法,可以在对后续得到关系信息没有影响的前提下,解析处理后的抽象语法树比解析初始的抽象语法树过程更加简单,因此能够降低关系信息解析的复杂性,并提高关系信息解析的效率。上述发明实施例中所使用的图卷积神经网络模型可以是机器学习模型,在使用图卷积神经网络模型进行上述处理前,可以对其进行训练。
如图8所示的图卷积神经网络模型的训练流程图,图卷积神经网络模型的训练方法具体处理如下:
步骤801,构建初始的图卷积神经网络模型。
步骤802,根据已识别的多个数据表的数据信息,获取训练样本。
步骤803,根据训练样本,对初始的图卷积神经网络模型进行训练,得到图卷积神经网络模型。
其中,训练样本包括已识别的每个数据表的特征数据组、已识别的每两个数据表之间的关系数据、已识别的每个数据表对应的业务域标识;
在一种可能的实施方式中,服务器构建初始的图卷积神经网络模型,具体处理如下:
初始的图卷积神经网络模型的层之间的传播方式是:
其中,是A的增广矩阵,=A+I,I是单位矩阵。因为如果只用A的话,由于A的对角线上都是0,所以在和特征矩阵H相乘的时候,只会计算当前特征数据组的所有邻居特征数据组的特征的加权和,而该特征数据组本身的特征数据被忽略。因此,给A加上一个单位矩阵I,使得A的对角线元素变成1,如此在进行信息传播的时候该特征数据组本身的特征数据也被保留下来。
H是每一层的特征矩阵,对于输入层,H=X。可以理解为实现对空间信息的聚合,其中第0层的输入,是原始的特征,之后每增加一层,就会多聚合一阶相邻特征数据组上的信息,第一层是对每个顶点融合了一阶邻域的信息。
接着服务器根据如上表4所示的已识别的多个数据表的数据信息,通过如上述步骤102、103的处理,获取训练样本,并将每个数据表对应的业务域ID作为训练标签。已识别的数据表可以基于人工标注得到,也可以基于其他算法得到,本实施例对此不做限定。
然后基于训练样本,对初始的图卷积神经网络模型进行训练。也即是说,将对训练样本处理得到的数据矩阵X和关系矩阵A输入初始的图卷积神经网络模型,经过上述公式,图卷积神经网络模型最终得到的结果是一个经过I层计算后每个特征数据组对应的数据矩阵从X变成了,本实施例以I=1为例,本公开实施例对I的具体数值不作限定,1层特征加强后得到的Z=,其中,C为待识别的类别数量,这里C=7,本公开实施例对C的具体数值不作限定。
Softmax函数:
其中,是Z中某个特征数据组的特征数据(Z中行数代表特征数据组个数,其中Z的每一行的数据代表了该行所对应特征数据组的特征值);为该特征数据组属于类别i的概率。通过上式可以保证待分类特征数据组属于各个类别的概率和为1。由此可以得到该特征数据组对应每个业务域ID的概率。
对于每个特征数据组,选取该特征数据组对应业务域ID概率最大的业务域ID作为对应的数据表的业务域ID。
进而,将对数据表预测的业务域ID和对应的训练标签输入损失函数计算损失,并基于损失计算调整参数。基于调整参数,对每一层的权重矩阵W进行调整。
当达到训练结束条件时,获取当前的图卷积神经网络模型,作为预先训练完成的图卷积神经网络模型。
其中,训练结束条件可以是训练次数达到第一阈值,和/或模型正确率达到第二阈值,和/或损失函数低于第三阈值。上述第一阈值、第二阈值和第三阈值可以根据经验设置。本实施例对具体的训练结束条件不作限定。
本公开实施例提供了一种数据表识别装置,该装置用于实现上述数据表识别方法。如图9所示的数据表识别装置的示意性框图,数据表识别装置900包括:获取模块901,第一构建模块902,第二构建模块903,预测模块904。
获取模块901,用于获取业务系统中待识别的多个数据表;
第一构建模块902,用于根据多个数据表的数据信息,构建每两个数据表之间的关系数据;
第二构建模块903,用于根据多个数据表的数据信息和每两个数据表之间的关系数据,构建多个数据表的特征数据组,其中,每个数据表对应一个特征数据组;
预测模块904,用于基于图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识。
可选的,第一构建模块902用于:
确定多个数据表的关系信息,关系信息包括以下一种或多种:共现关系、关联关系、父依赖关系和子依赖关系;
根据关系信息,构建每两个数据表之间的关系数据。
可选的,第一构建模块902还用于:
对每个数据库的数据信息做解析处理,得到抽象语法树,抽象语法树的节点至少包括多个数据表;
遍历抽象语法树,确定处于父节点的至少一个数据表,作为父体表;确定处于子节点的至少一个数据表,作为客体表;
根据父体表与对应的客体表之间的关系,确定多个数据表的关系信息。
可选的,第一构建模块902还用于:
对每个数据库的数据信息做解析处理,得到初始的抽象语法树,初始的抽象语法树包括无效节点和待替换分枝,无效节点是指解析处理得到的与关系信息无关的节点,待替换分枝包括非目标节点和目标节点;
在初始的抽象语法树中,删除无效节点,并将待替换分枝替换为目标节点,得到处理后的抽象语法树。
可选的,数据信息至少包括表信息和字段信息,表信息至少包括表标识;
装置还包括:
收集模块,用于针对每个数据表,根据数据表的表标识,获取数据表的字段信息。
可选的,表信息至少还包括身份信息、表名、所属的数据库名,字段信息至少包括表信息的字段名;
特征数据组至少包括以下任意两种或多种:字段个数,身份信息的独热编码,库名高频词的独热编码,表名高频词的独热编码,高频字段名的独热编码,关系数,命中业务域关键词的频次。
可选的,装置还包括准备模块,准备模块用于:
获取业务系统中已识别的多个数据表;
根据业务系统中的已识别的多个数据表的字段信息,确定高频词袋;
在高频词袋中,根据表信息中的所属的数据库名,确定库名高频词;根据表信息中的表名,确定表名高频词;根据表信息中的字段信息的字段名,确定高频字段名。
可选的,预测模块904用于:
根据每个数据表的特征数据组,构建数据矩阵;
根据每个数据表的特征数据组和每两个数据表之间的关系数据,构建关系矩阵;
基于数据矩阵和关系矩阵,利用预先训练完成的图卷积神经网络模型,确定每个数据表对应的业务域标识。
可选的,装置还包括训练模块,训练模块用于:
构建初始的图卷积神经网络模型;
根据已识别的多个数据表的数据信息,获取训练样本,训练样本包括已识别的每个数据表的特征数据组、已识别的每两个数据表之间的关系数据、已识别的每个数据表对应的业务域标识;
根据训练样本,对初始的图卷积神经网络模型进行训练,得到预先训练完成的图卷积神经网络模型。
本公开实施例中,获取业务系统中待识别的多个数据表,根据多个数据表的数据信息构建每两个数据表之间的关系数据,并根据每个数据表的数据信息和数据表对应的关系数据构建每个数据表的特征数据组,然后调用预先训练完成的图卷积神经网络模型,对每个数据表的特征数据组和每两个数据表之间的关系数据进行处理,识别每个数据表对应的业务域标识。通过本公开实施例提供的数据表识别方法,每个数据表对应的业务域标识不仅与每个数据表单独的数据信息有关,还与每两个数据表之间的关系数据有关,因此能够提高识别预测的准确率,还可以提高数据表识别的精度。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。存储器存储有能够被至少一个处理器执行的计算机程序,计算机程序在被至少一个处理器执行时用于使电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
参考图10,现将描述可以作为本公开的服务器或客户端的电子设备1000的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006、输出单元1007、存储单元1008以及通信单元1009。输入单元1006可以是能向电子设备1000输入信息的任何类型的设备,输入单元1006可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1007可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1008可以包括但不限于磁盘、光盘。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理。例如,在一些实施例中,数据表识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到电子设备1000上。在一些实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据表识别方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
Claims (12)
1.一种数据表识别方法,其特征在于,所述方法包括:
获取业务系统中待识别的多个数据表;
根据所述多个数据表的数据信息,构建每两个数据表之间的关系数据;
根据所述多个数据表的数据信息和所述每两个数据表之间的关系数据,构建所述多个数据表的特征数据组,其中,每个数据表对应一个特征数据组;
基于图卷积神经网络模型,对所述每个数据表的特征数据组和所述每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个数据表的数据信息,构建每两个数据表之间的关系数据,包括:
确定所述多个数据表的关系信息,所述关系信息包括以下一种或多种:共现关系、关联关系、父依赖关系和子依赖关系;
根据所述关系信息,构建每两个数据表之间的关系数据。
3.根据权利要求2所述的方法,其特征在于,所述确定所述多个数据表的关系信息,包括:
对每个数据库的数据信息做解析处理,得到抽象语法树,所述抽象语法树的节点至少包括所述多个数据表;
遍历所述抽象语法树,确定处于父节点的至少一个数据表,作为父体表;
确定处于子节点的至少一个数据表,作为客体表;
根据父体表与对应的客体表之间的关系,确定所述多个数据表的关系信息。
4.根据权利要求3所述的方法,其特征在于,所述对所述每个数据库的数据信息做解析处理,得到抽象语法树,包括:
对所述每个数据库的数据信息做解析处理,得到初始的抽象语法树,其中,所述初始的抽象语法树包括无效节点和待替换分枝,所述无效节点是指解析处理得到的与所述关系信息无关的节点,所述待替换分枝包括非目标节点和目标节点;
在所述初始的抽象语法树中,删除所述无效节点,确定所述待替换分枝的所述目标节点,并将所述待替换分枝替换为所述目标节点,得到处理后的抽象语法树。
5.根据权利要求1所述的方法,其特征在于,所述数据信息至少包括表信息和字段信息,所述表信息至少包括表标识;
所述方法还包括:
针对每个数据表,根据所述数据表的表标识,获取所述数据表的字段信息。
6.根据权利要求5所述的方法,其特征在于,所述表信息至少还包括身份信息、表名、所属的数据库名,所述字段信息至少包括所述表信息对应的字段的字段名;
所述特征数据组至少包括以下任意两种或多种:字段个数,身份信息的独热编码,库名高频词的独热编码,表名高频词的独热编码,高频字段名的独热编码,关系数,命中业务域关键词的频次。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述业务系统中已识别的多个数据表;
根据所述业务系统中的已识别的多个数据表的字段信息,确定高频词袋;
在所述高频词袋中:根据所述表信息中的所属的数据库名,确定所述库名高频词;
根据所述表信息中的表名,确定所述表名高频词;
根据所述表信息中的所述字段信息的字段名,确定所述高频字段名。
8.根据权利要求1所述的方法,其特征在于,所述基于图卷积神经网络模型,对所述每个数据表的特征数据组和所述每两个数据表之间的关系数据进行处理,以识别每个数据表对应的业务域标识,包括:
根据所述每个数据表的特征数据组,构建数据矩阵;
根据所述每个数据表的特征数据组和所述每两个数据表之间的关系数据,构建关系矩阵;
基于所述数据矩阵和所述关系矩阵,利用所述图卷积神经网络模型,确定所述每个数据表对应的业务域标识。
9.根据权利要求1所述的方法,其特征在于,所述图卷积神经网络模型是通过以下方式训练得到的:
构建初始图卷积神经网络模型;
根据已识别的多个数据表的数据信息,获取训练样本,所述训练样本包括已识别的每个数据表的特征数据组、已识别的每两个数据表之间的关系数据、已识别的每个数据表对应的业务域标识;
根据所述训练样本,对所述初始图卷积神经网络模型进行训练,得到所述图卷积神经网络模型。
10.一种数据表识别装置,其特征在于,所述装置包括:
获取模块,用于获取业务系统中待识别的多个数据表;
第一构建模块,用于根据所述多个数据表的数据信息,构建每两个数据表之间的关系数据;
第二构建模块,用于根据所述多个数据表的数据信息和所述每两个数据表之间的关系数据,构建所述多个数据表的特征数据组,其中,每个数据表对应一个特征数据组;
预测模块,用于基于图卷积神经网络模型,对所述每个数据表的特征数据组和所述每两个数据表之间的关系数据进行处理,以识别所述每个数据表对应的业务域标识。
11.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-9中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527266.8A CN113918577B (zh) | 2021-12-15 | 2021-12-15 | 数据表识别方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527266.8A CN113918577B (zh) | 2021-12-15 | 2021-12-15 | 数据表识别方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113918577A true CN113918577A (zh) | 2022-01-11 |
CN113918577B CN113918577B (zh) | 2022-03-11 |
Family
ID=79249039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111527266.8A Active CN113918577B (zh) | 2021-12-15 | 2021-12-15 | 数据表识别方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918577B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024038941A1 (ko) * | 2022-08-17 | 2024-02-22 | 쿠팡 주식회사 | 데이터 제공 방법 및 그 장치 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268533A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | データ動的読み込み型テンプレート適用方法および装置 |
CN108228817A (zh) * | 2017-12-29 | 2018-06-29 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN108256113A (zh) * | 2018-02-09 | 2018-07-06 | 口碑(上海)信息技术有限公司 | 数据血缘关系的挖掘方法及装置 |
CN109299094A (zh) * | 2018-09-18 | 2019-02-01 | 深圳壹账通智能科技有限公司 | 数据表处理方法、装置、计算机设备和存储介质 |
CN109542891A (zh) * | 2018-10-18 | 2019-03-29 | 北京新唐思创教育科技有限公司 | 数据融合方法及计算机存储介质 |
WO2021006755A1 (ru) * | 2019-07-05 | 2021-01-14 | Публичное Акционерное Общество "Сбербанк России" | Способ и система классификации данных для выявления конфиденциальной информации |
CN112347123A (zh) * | 2020-11-10 | 2021-02-09 | 北京金山云网络技术有限公司 | 数据血缘的分析方法、装置和服务器 |
CN112905595A (zh) * | 2021-03-05 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置及计算机可读存储介质 |
CN113392150A (zh) * | 2020-11-09 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种基于业务域的数据表展示方法、装置、设备及介质 |
CN113568895A (zh) * | 2021-02-01 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据库的数据处理方法、装置、电子设备 |
-
2021
- 2021-12-15 CN CN202111527266.8A patent/CN113918577B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268533A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | データ動的読み込み型テンプレート適用方法および装置 |
CN108228817A (zh) * | 2017-12-29 | 2018-06-29 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN108256113A (zh) * | 2018-02-09 | 2018-07-06 | 口碑(上海)信息技术有限公司 | 数据血缘关系的挖掘方法及装置 |
CN109299094A (zh) * | 2018-09-18 | 2019-02-01 | 深圳壹账通智能科技有限公司 | 数据表处理方法、装置、计算机设备和存储介质 |
CN109542891A (zh) * | 2018-10-18 | 2019-03-29 | 北京新唐思创教育科技有限公司 | 数据融合方法及计算机存储介质 |
WO2021006755A1 (ru) * | 2019-07-05 | 2021-01-14 | Публичное Акционерное Общество "Сбербанк России" | Способ и система классификации данных для выявления конфиденциальной информации |
CN113392150A (zh) * | 2020-11-09 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种基于业务域的数据表展示方法、装置、设备及介质 |
CN112347123A (zh) * | 2020-11-10 | 2021-02-09 | 北京金山云网络技术有限公司 | 数据血缘的分析方法、装置和服务器 |
CN113568895A (zh) * | 2021-02-01 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据库的数据处理方法、装置、电子设备 |
CN112905595A (zh) * | 2021-03-05 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
SHAH RUKH QASIM 等: "Rethinking Table Recognition using Graph Neural Networks", 《ARXIV》 * |
冯楠 等: "数据中心数据资源梳理及数据核查研究", 《山西电力》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024038941A1 (ko) * | 2022-08-17 | 2024-02-22 | 쿠팡 주식회사 | 데이터 제공 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN113918577B (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10484413B2 (en) | System and a method for detecting anomalous activities in a blockchain network | |
US11190562B2 (en) | Generic event stream processing for machine learning | |
WO2021159834A1 (zh) | 异常信息处理节点分析方法、装置、介质及电子设备 | |
US11483408B2 (en) | Feature-based network embedding | |
US11334758B2 (en) | Method and apparatus of data processing using multiple types of non-linear combination processing | |
CN111931809A (zh) | 数据的处理方法、装置、存储介质及电子设备 | |
CN110555172A (zh) | 用户关系挖掘方法及装置、电子设备和存储介质 | |
KR102307380B1 (ko) | 자연어 처리 기반 콜센터 지원 시스템 및 방법 | |
WO2016188334A1 (zh) | 一种用于处理应用访问数据的方法与设备 | |
CN113918577B (zh) | 数据表识别方法、装置、电子设备及存储介质 | |
CN114090601B (zh) | 一种数据筛选方法、装置、设备以及存储介质 | |
US11568344B2 (en) | Systems and methods for automated pattern detection in service tickets | |
CN112287111B (zh) | 一种文本处理方法和相关装置 | |
CN113407586A (zh) | 数据检索方法、装置、办公系统、存储介质及电子设备 | |
CN115329078B (zh) | 文本数据处理方法、装置、设备以及存储介质 | |
WO2023175413A1 (en) | Mutual exclusion data class analysis in data governance | |
CA3153550A1 (en) | Core recommendation method, device and system | |
CN113076450A (zh) | 一种目标推荐列表的确定方法和装置 | |
CN112308419A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN113095073A (zh) | 语料标签生成方法、装置、计算机设备和存储介质 | |
CN112015623A (zh) | 报表数据处理的方法、装置、设备及可读存储介质 | |
CN116167829B (zh) | 一种多维多粒度用户行为分析方法 | |
CN115758142A (zh) | 深度学习模型的训练方法、数据处理方法和装置 | |
CN116166879A (zh) | 分享业务处理方法、装置、计算机设备和存储介质 | |
JP2023011883A (ja) | 事前トレーニングモデルの生成方法、装置、電子機器、記憶媒体およびコンピュータプログラム |
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 |