CN113590886A - 数据表关联关系自动识别、多数据表自动整合方法及装置 - Google Patents
数据表关联关系自动识别、多数据表自动整合方法及装置 Download PDFInfo
- Publication number
- CN113590886A CN113590886A CN202110768230.2A CN202110768230A CN113590886A CN 113590886 A CN113590886 A CN 113590886A CN 202110768230 A CN202110768230 A CN 202110768230A CN 113590886 A CN113590886 A CN 113590886A
- Authority
- CN
- China
- Prior art keywords
- node
- data table
- data
- key
- tables
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据表关联关系自动识别方法、数据表关联网络建立方法、多数据表自动整合方法,及其装置、电子设备、存储介质和程序产品。其中,数据表关联关系自动识别方法包括:识别第一数据表的一候选键;识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1;判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集;当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
Description
技术领域
本公开涉及机器学习技术领域,具体涉及一种数据表关联关系自动识别方法、数据表关联网络建立方法、多数据表自动整合方法,及其装置、电子设备、存储介质和程序产品。
背景技术
在使用样本数据来训练机器学习模型时,样本数据应当符合机器学习算法的要求,通常,机器学习算法要求的样本数据为单表数据。然而在实际业务场景中,原始的样本数据往往是来自于多个业务系统的多个分散的数据表,所以必须要先进行多源数据融合/集成,将原始的样本数据转换为适于机器学习的单表数据。
当前进行多源数据融合/集成的难点在于,原始的样本数据往往只有数据表名等简单的信息,缺乏数据表之间的关联信息,无法进行自动化的数据融合,只能依赖人工挖掘数据表之间的关联信息,再人工集成数据表,效率十分低下。
发明内容
针对现有技术中的上述技术问题,本公开实施例提出了一种数据表关联关系自动识别方法、数据表关联网络建立方法、多数据表自动整合方法,及其装置、电子设备、存储介质和程序产品,以解决效率低下的问题。
本公开实施例的第一方面提供了一种数据表关联关系自动识别方法,包括:
识别第一数据表的一候选键;
识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1;
判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集,且当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
本公开实施例的第二方面提供了一种建立数据表关联网络的方法,包括:
获取数据表之间的两两关联关系,所述关联关系通过本公开实施例的第一方面提供的所述方法得到;
通过将所述数据表作为结点,所述两两关联关系作为边,且所述边的方向由所述第二数据表对应的结点指向所述第一数据表对应的结点,建立有向无环图作为数据表关联网络。
在一些实施例中,所述获取数据表之间的两两关联关系还包括:
所述关联关系通过读取由所述数据表构成的数据集的描述文件得到。
在一些实施例中,所述数据表包括标签表、时序表和非时序表,且所述标签表对应的结点作为所述有向无环图的根结点。
本公开实施例的第三方面提供了一种多数据表自动整合方法,包括:
根据本公开实施例的第二方面提供的所述方法,建立数据表关联网络;
获取到根结点的路径长度最长的第一结点,且所述第一结点通过指向其的边与第二结点连通,其中,所述第一结点和第二结点对应的数据表都是非时序表;
将所述第二结点对应的数据表左连接到所述第一结点对应的数据表以形成第三数据表,将所述第三数据表对应的结点替换所述第一结点,并删除所述第一结点、所述边和所述第二结点;
判断被删除的所述第一结点到所述根结点的路径长度是否大于1,当大于1时,转至执行所述获取到根结点的路径长度最长的第一结点的步骤。
在一些实施例中,所述方法还包括:
获取第四结点,且所述第四结点通过指向其的边与第五结点连通,所述第四结点对应的数据表是时序表;
将所述第五结点对应的数据表通过特征工程拼接到所述第四结点对应的数据表上以形成第六数据表,所述第六数据表是非时序表,并将所述第六数据表对应的结点替换所述第四结点,删除所述第四结点、所述边和所述第五结点。
在一些实施例中,所述方法还包括:
删除与所述根结点不连通的结点。
本公开实施例的第四方面提供了一种数据表关联关系自动识别装置,包括:
第一识别模块,用于识别第一数据表的一候选键;
第二识别模块,用于识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1;
第三识别模块,用于判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集,且当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
本公开实施例的第五方面提供了一种数据表关联网络建立装置,包括:
获取模块,用于获取数据表之间的两两关联关系,所述关联关系通过本公开实施例的第一方面提供的所述方法得到;
建立模块,用于通过将所述数据表作为结点,所述两两关联关系作为边,且所述边的方向由所述第二数据表对应的结点指向所述第一数据表对应的结点,建立有向无环图作为数据表关联网络。
本公开实施例的第六方面提供了一种多数据表自动整合装置,包括:
关联网络建立模块,用于根据本公开实施例的第二方面提供的所述方法,建立数据表关联网络;
第一获取模块,用于获取到根结点的路径长度最长的第一结点,且所述第一结点通过指向其的边与第二结点连通,其中,所述第一结点和第二结点对应的数据表都是非时序表;
第一拼接模块,用于将所述第二结点对应的数据表左连接到所述第一结点对应的数据表以形成第三数据表,将所述第三数据表对应的结点替换所述第一结点,并删除所述第一结点、所述边和所述第二结点;
循环模块,用于判断被删除的所述第一结点到所述根结点的路径长度是否大于1,且当大于1时,转至所述第一获取模块。
在一些实施例中,所述装置还包括:
第二获取模块,用于获取第四结点,且所述第四结点通过指向其的边与第五结点连通,,所述第四结点对应的数据表是时序表;
第二拼接模块,用于将所述第五结点对应的数据表通过特征工程拼接到所述第四结点对应的数据表以形成第六数据表,所述第六数据表是非时序表,并将所述第六数据表对应的结点替换所述第四结点,并删除所述第四结点、所述边和所述第五结点。
在一些实施例中,所述装置还包括:
删除模块,用于删除与所述根结点不连通的结点。
本公开实施例的第七方面提供了一种电子设备,包括:
存储器以及一个或多个处理器;
其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行时,所述电子设备用于实现如前述各实施例所述的方法。
本公开实施例的第八方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可用来实现如前述各实施例所述的方法。
本公开实施例的第九方面提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,可用来实现如前述各实施例所述的方法。
本公开实施例,通过算法自动识别数据表之间的关联关系,通过有向无环图(即所述数据表关联网络)描述数据表之间的关联关系,通过有向无环图的迭代操作实现了数据表的自动拼接以生成适于机器学习的单表数据,从而实现了全自动化的多源数据融合/集成,摆脱了人工,极大的提高了效率。
附图说明
通过参考附图会更加清楚的理解本公开的特征和优点,附图是示意性的而不应理解为对本公开进行任何限制,在附图中:
图1是根据本公开适用的一种计算机系统的示意图;
图2是根据本公开的一些实施例所示的一种多数据表自动整合方法的流程图;
图3是图2中步骤S201的细化流程图;
图4是图2中步骤S203的细化流程图;
图5根据本公开的一些实施例所示的一种多数据表自动整合装置的结构框图。
图6本公开的一些实施例所示的一种电子设备示意图。
具体实施方式
在下面的详细描述中,通过示例阐述了本公开的许多具体细节,以便提供对相关披露的透彻理解。然而,对于本领域的普通技术人员来讲,本公开显而易见的可以在没有这些细节的情况下实施。应当理解的是,本公开中使用“系统”、“装置”、“单元”和/或“模块”术语,是用于区分在顺序排列中不同级别的不同部件、元件、部分或组件的一种方法。然而,如果其他表达式可以实现相同的目的,这些术语可以被其他表达式替换。
应当理解的是,当设备、单元或模块被称为“在……上”、“连接到”或“耦合到”另一设备、单元或模块时,其可以直接在另一设备、单元或模块上,连接或耦合到或与其他设备、单元或模块通信,或者可以存在中间设备、单元或模块,除非上下文明确提示例外情形。例如,本公开所使用的术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。
本公开所用术语仅为了描述特定实施例,而非限制本公开范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的特征、整体、步骤、操作、元素和/或组件,而该类表述并不构成一个排它性的罗列,其他特征、整体、步骤、操作、元素和/或组件也可以包含在内。
参看下面的说明以及附图,本公开的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本公开的保护范围。可以理解的是,附图并非按比例绘制。
本公开中使用了多种结构图用来说明根据本公开的实施例的各种变形。应当理解的是,前面或下面的结构并不是用来限定本公开。本公开的保护范围以权利要求为准。
图1是本公开适用的一种计算机系统的示意图。图1所示的系统包括业务系统数据库、多源数据集成服务器和机器学习训练服务器,服务器可以是单机、集群和分布式服务器中的任一种。其中,由于大多公司存在业务系统“烟囱林立”的现象,所以也会相应的存在多个业务系统数据库,如图1所述的业务系统1数据库、业务系统2数据库…业务系统N数据库,每个业务系统数据库又可以存储有一个或多个业务数据表,例如,资产管理业务系统数据库可以存储有固定资产数据表和库存管理数据表等两个数据表;多源数据集成服务器用于与每个业务系统数据库连接并获取相应的业务数据表,再将动辄数百上千的业务数据表集成为下游机器学习训练服务器可以接受的单表数据;机器学习训练服务器用于将接收的单表数据作为训练样本,进行机器学习训练。
图2是根据本公开的一些实施例所示的一种多数据表自动整合方法的流程图。在一些实施例中,所述多数据表自动整合方法可以由图1所示的数据集成服务器执行。如图2所示,所述多数据表自动整合方法包括以下步骤:
S201,自动识别多数据表之间的关联关系。
具体的,所述数据表源自于各个不同的业务系统数据库,按文件格式分类,数据表包括但不限于xls、xlsx和csv等,按数据结构分类,数据表包括标签表、时序表和非时序表。其中,时序表又称流水表,每一行数据均与时间相关,例如交易表即为时序表;非时序表为与时间无关的表;标签表是一类特殊的非时序表,在机器学习分类模型建模过程中,标签表至少应包括ID、类别标签,一般还会有一个或多个外键列,用以关联其它数据表。
如前所述,对于这种分散在多个不同业务系统的多源数据的关联关系识别,当前主要依靠人工,通常由建模专家与多个业务专家一起,人工梳理动辄数百上千的数据表格,效率十分低下。本实施例为了提高效率,采用了独特的算法实现了多数据表关联关系的自动识别,具体算法详见后续说明。
S202,根据多数据表之间的关联关系,建立数据表关联网络。
具体的,直接获取的数据表关联关系一般是两两关联关系,例如通过步骤S201获取的数据表关联关系。为了进行数据表集成,必须进一步得到多数据表之间的关联关系的完整描述,即数据表关联网络。然而,由于数据表的数量动辄成百上千,数据表之间的关系又十分复杂,若采用传统的SQL等关系型数据库,效率会很低下。为此,在一些实施例中,采用了图数据库技术(例如Neo4j、TigerGraph、Amazon Neptune、JanusGraph、ArangoDB等)建立数据表关联网络,以高效、完整地描述多数据表之间的关联关系。
具体的,在一些实施例中,数据表关联网络用有向无环图(Direct AcyclicGraph,即DAG)来描述,以数据表作为图的结点(nod),以数据表的两两关联关系作为图的边(edge)。之所以用有向无环图,是因为本公开所关注的数据表关联关系,是类似于外键(foreign key)的主从关系,当一数据表的某一字段的字段值集合是另一数据表的某一字段的字段值集合的子集时,我们认为前表是后表的从表(与外键的主表/从表不同的是,这里的主表/从表之间没有约束关系),且为了简单起见,我们仅考虑一对一和一对多的主从关系,而有向无环图由于适于描述这种主从关系而被选择。显然,边的方向应当由从表对应的结点指向主表对应的结点。此外,在所建立的数据表关联网络中,应当有且仅有一个根结点,即前述标签表对应的结点。由于标签表是作为其它表的主表而存在(或者与其它表不存在主从关系),所以该根结点只与指向其的边连接。
S203,根据数据表关联网络自动进行数据表拼接,直至得到单数据表。
具体的,在一些实施例中,数据表拼接是指,将从表通过左连接(left join)操作拼接到主表上,从而在不丢失从表信息、不改变主表结构的情况下完成两个表数据的整合。拼接后,原从表的数据已整合到新“主表”中,可以删除原从表的结点,而新“主表”的其它主从关系仍然存在,可以继续进行拼接。可以理解,应当在该新“主表”不再有从表后,再进行将该新“主表”作为从表的拼接。由此,拼接可沿着DAG连通路径逐级迭代,由于连通路径的终结点是根结点(与根结点不连通的结点可被删除),所以所有的表最终都会拼接到根结点的表上,生成单数据表。
本公开实施例,通过独特的算法自动识别数据表之间的关联关系,通过有向无环图(即所述数据表关联网络)描述数据表之间的关联关系,通过有向无环图的迭代操作实现了数据表的自动拼接以生成适于机器学习的单表数据,从而实现了全自动化的多源数据融合/集成,摆脱了人工,极大的提高了效率。
如前所述,步骤S201采用了独特的算法实现了多数据表关联关系的自动识别。具体的,在一些可选的实施例中,如图3所示,步骤S201可以包括:
S201-1.识别第一数据表的一候选键。其中,第一数据表可以是源自于业务系统数据库的任一个数据表,候选键(candidate key)是数据表中能唯一标识元组的属性集合。
识别候选键的具体算法如下:
输入:数据表
输出:该数据表的候选键
算法过程:
对数据表的每一列进行判断:
if该列的数据类型为['float64','bool','datetime64']:
该列不是候选键
if该列数据类型是字符型:
if该列最大长度大于64:
该列不是候选键
if该列包括中文:
该列不是候选键
if该列包括特殊符号:
该列不是候选键
if该列包括电话号码:
该列不是候选键
if该列不同值个数等于数据表行数:
该列为候选键
if该列数据类型为整型:
if该列包括电话号码:
该列不是候选键
if该列不同值个数等于数据表行数:
该列为候选键
S201-2.识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1。其中,所述第二数据表可以是不同于所述第一数据表的另一数据表;所述特定键类似于外键,其键值(可能)是另一数据表候选键的键值,从而与该另一数据表关联,但并不具有外键的约束作用。在一些实施例中,识别所述特定键并不需要挖掘所述第二数据表与其它数据表的关联关系,而仅需根据所述第二数据表某一个键的不同键值与所有键值的数量之比。根据我们项目组800多个历史数据表外键数据分析,当某一个键的不同键值与所有键值的数量之比大于0.598且小于等于1时,该键是外键的几率最大。虽然当某一个键的该比值不在该范围内时,该键仍可能是外键,但几率较小,不在本公开的讨论范围内。
识别特定键的具体算法如下:
输入:数据表
输出:该数据表的特定键
算法过程:
对数据表的每一列进行判断:
if该列的数据类型为['float64','bool','datetime64']:
该列不是特定键
if该列数据类型是字符型:
if该列最大长度大于64:
该列不是特定键
if该列包括中文:
该列不是特定键
if该列包括特殊符号:
该列不是特定键
if该列包括电话号码:
该列不是特定键
ifα<(该列不同值个数/数据表行数)≤1,其中α=0.598
该列为特定键
if该列数据类型为整型:
if该列包括电话号码:
该列不是特定键
ifα<(该列不同值个数/数据表行数)≤1,其中α=0.598:
该列为特定键
S201-3.判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集,且当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
具体算法如下:
输入:两个数据表node1、node2,其中node1_fk为node1的特定键,node2_pk为node2的候选键
输出:node1和node2之间的关联关系
算法过程:
node1与node2存在关联关系
由此,本实施例通过独特的算法实现了多数据表关联关系的自动识别。
可选的,在一些实施例中,多数据表关联关系还可以通过描述文件得到。描述文件(格式一般是yaml)是用于描述各数据表基本信息的一种配置文件,其可能包括部分数据表关联关系的信息。
如前所述,数据表的自动拼接,是数据表自动整合的最后也是最重要的一步。在一些可选的实施例中,如图4所示,步骤S203可以包括:
S203-1.获取到根结点的路径长度最长的第一结点,且所述第一结点通过指向其的边与第二结点连通,其中,所述第一结点和第二结点对应的数据表都是非时序表。
我们已知数据表关联网络是基于主从关系的,根结点是级别最高的主表,到根结点路径长度最长的结点则是级别最低的从表。在本步骤中,所述第一结点并不是级别最低的从表,而是级别最低的主表,第二结点才是级别最低的从表。
另外,数据表关联网络中可能有一些与根结点不连通的结点,这些结点是不能拼接到根结点上的,因此可以从网络中删除。
在一些实施例中,为了找到根结点的路径长度最长的结点,可以对所有结点到根结点的路径长度进行排序,形成结点列表。
S203-2.将所述第二结点对应的数据表左连接到所述第一结点对应的数据表以形成第三数据表,将所述第三数据表对应的结点替换所述第一结点,并删除所述第一结点、所述边和所述第二结点。
S203-3.判断被删除的所述第一结点到所述根结点的路径长度是否大于1,当大于1时,转至执行步骤S203-1;当不大于1时,结束,此时DAG中只剩下根结点,所有可以拼接的表都已经拼接到标签表上。
在一些实施例中,一些数据表是时序表,又称流水表,不能直接拼接。但时序表可以通过聚合运算等特征工程,转化为非时序表,再进行拼接。一些具体的实施例如下:
获取第四结点,且所述第四结点通过指向其的边与第五结点连通;所述第四结点对应的数据表是时序表,第五结点是与其有关联关系的表;
将所述第五结点对应的数据表通过特征工程拼接到所述第四结点对应的数据表以形成第六数据表,所述第六数据表是非时序表,并将所述第六数据表对应的结点替换所述第四结点,删除所述第四结点、所述边和所述第五结点。
以下通过具体的实施例对本公开进行进一步地说明。
首先,从业务系统数据库获取4个数据表loan.csv、user.csv、store.csv、order.csv和描述文件desc.yaml。其中,loan.csv为标签表,order.csv为时序表,非时序表为user.csv和store.csv为非时序表。
第二步,使用了networkx库初始化有向无环图DAG。结点对应数据表。结点属性包括:type为lable、seq、noseq之一,Column为dict,键为列名,值为列的数据类型。结点之间存在有向边,从左边指向右表。
第三步,从描述文件desc.yaml中读取数据表信息,存为结点属性;读取数据表之间的关系信息,存在边及边属性。
第四步,读取DAG中的结点,自动识别其对应的数据表中的候选键。
第五步,读取DAG中的结点,自动识别其对应的数据表中的特定键。
第六步,自动识别DAG中各结点之间的关联关系。
第七步,将各时序表拼接到其左表,以转化为非时序表。例如,使用featuretools工具将DAG中的时序表拼接到其左表。
第八步,将DAG中的结点逐级向标签表loan_tb拼表。在将所有非时序表结点都进行拼接之后,DAG中只剩下标签表结点,边数量为0。
以上是本公开提供的多数据表自动整合方法的具体实施方式。
图5是根据本公开的一些实施例所示的多数据表自动整合装置示意图。如图5所示,多数据表自动整合装置500包括关联网络建立模块510、第一获取模块520、第一拼接模块530和循环模块540。所述自动整合的功能可以由图1中的多源数据集成服务器执行。其中:
关联网络建立模块510,用于建立数据表关联网络;具体参见步骤S202所述。
第一获取模块520,用于获取到根结点的路径长度最长的第一结点,且所述第一结点通过指向其的边与第二结点连通,其中,所述第一结点和第二结点对应的数据表都是非时序表;具体参见步骤S203-1所述。
第一拼接模块530,用于将所述第二结点对应的数据表左连接到所述第一结点对应的数据表以形成第三数据表,将所述第三数据表对应的结点替换所述第一结点,并删除所述第一结点、所述边和所述第二结点;具体参见步骤S203-2所述。
循环模块540,用于判断被删除的所述第一结点到所述根结点的路径长度是否大于1,且当大于1时,转至所述第一获取模块;当不大于1时,结束。具体参见步骤S203-3所述。
在一些可选的实施例中,所述关联网络建立模块510,可以包括:
获取模块,用于获取数据表之间的两两关联关系,所述关联关系通过步骤S201所述的方法得到;
建立模块,用于通过将所述数据表作为结点,所述两两关联关系作为边,且所述边的方向由所述第二数据表对应的结点指向所述第一数据表对应的结点,建立有向无环图作为数据表关联网络。
其中,在一些实施例中,所述获取模块还可以具体包括:
第一识别子模块,用于识别第一数据表的一候选键;
第二识别子模块,用于识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1;
第三识别子模块,用于判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集,且当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
在一些可选的实施例中,多数据表自动整合装置500还包括:
第二获取模块,用于获取第四结点,且所述第四结点通过指向其的边与第五结点连通;
第二拼接模块,用于将所述第五结点对应的数据表通过特征工程拼接到所述第四结点对应的数据表以形成第六数据表,将所述第六数据表对应的结点替换所述第四结点,并删除所述第四结点、所述边和所述第五结点;
其中,所述第四结点对应的数据表是时序表,第六数据表是非时序表。
在一些可选的实施例中,多数据表自动整合装置500还包括:
删除模块,用于删除与所述根结点不连通的结点。
参考附图6,为本申请一个实施例提供的电子设备示意图。如图6所示,该电子设备600包括:
存储器620以及一个或多个处理器610;
其中,所述存储器620与所述一个或多个处理器610通信连接,所述存储器620中存储有可被所述一个或多个处理器610执行的指令,所述指令被所述一个或多个处理器610执行,以实现S201-S203所述的步骤。
本申请的一个实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被执行,以实现S201-S203所述的步骤。
本申请的一个实施例提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现S201-S203所述的步骤。
综上所述,本申请各实施例提供的方法、装置、电子设备、计算机可读存储介质或计算机程序产品等,通过算法自动识别数据表之间的关联关系,通过有向无环图(即所述数据表关联网络)描述数据表之间的关联关系,通过有向无环图的迭代操作实现了数据表的自动拼接以生成适于机器学习的单表数据,从而实现了全自动化的多源数据融合/集成,摆脱了人工,极大的提高了效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述装置实施例中的对应描述,在此不再赘述。
尽管此处所述的主题是在结合操作系统和应用程序在计算机系统上的执行而执行的一般上下文中提供的,但本领域技术人员可以认识到,还可结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。本领域技术人员可以理解,此处所述的本主题可以使用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等,也可使用在其中任务由通过通信网络连接的远程处理设备执行的分布式计算环境中。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备的两者中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (15)
1.一种数据表关联关系自动识别方法,其特征在于,包括:
识别第一数据表的一候选键;
识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1;
判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集,且当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
2.一种数据表关联网络建立方法,其特征在于,包括:
获取数据表之间的两两关联关系,所述关联关系通过权利要求1所述方法得到;
通过将所述数据表作为结点,所述两两关联关系作为边,且所述边的方向由所述第二数据表对应的结点指向所述第一数据表对应的结点,建立有向无环图作为数据表关联网络。
3.根据权利要求2所述的方法,其特征在于,所述获取数据表之间的两两关联关系,还包括:
所述关联关系通过读取由所述数据表构成的数据集的描述文件得到。
4.根据权利要求2或3所述的权利要求,其特征在于:
所述数据表包括标签表、时序表和非时序表,且所述标签表对应的结点作为所述有向无环图的根结点。
5.一种多数据表自动整合方法,其特征在于,包括:
根据权利要求2-4任一项所述的方法,建立数据表关联网络;
获取到根结点的路径长度最长的第一结点,且所述第一结点通过指向其的边与第二结点连通,其中,所述第一结点和第二结点对应的数据表都是非时序表;
将所述第二结点对应的数据表左连接到所述第一结点对应的数据表以形成第三数据表,将所述第三数据表对应的结点替换所述第一结点,并删除所述第一结点、所述边和所述第二结点;
判断被删除的所述第一结点到所述根结点的路径长度是否大于1,当大于1时,转至执行所述获取到根结点的路径长度最长的第一结点的步骤。
6.根据权利要求5所述的方法,其特征在于,还包括:
获取第四结点,且所述第四结点通过指向其的边与第五结点连通,所述第四结点对应的数据表是时序表;
将所述第五结点对应的数据表通过特征工程拼接到所述第四结点对应的数据表上以形成第六数据表,所述第六数据表是非时序表,并将所述第六数据表对应的结点替换所述第四结点,删除所述第四结点、所述边和所述第五结点。
7.根据权利要求5或6所述的方法,其特征在于,还包括:
删除与所述根结点不连通的结点。
8.一种数据表关联关系自动识别装置,其特征在于,包括:
第一识别模块,用于识别第一数据表的一候选键;
第二识别模块,用于识别第二数据表的一特定键,所述特定键的不同键值与所有键值的数量之比大于0.598且小于等于1;
第三识别模块,用于判断所述第二数据表的所述特定键的不同键值所构成的集合,是否是所述第一数据表的所述候选键的所有键值所构成的集合的子集,且当是子集时,识别所述第二数据表和所述第一数据表存在关联关系。
9.一种数据表关联网络建立装置,其特征在于,包括:
获取模块,用于获取数据表之间的两两关联关系,所述关联关系通过权利要求1所述方法得到;
建立模块,用于通过将所述数据表作为结点,所述两两关联关系作为边,且所述边的方向由所述第二数据表对应的结点指向所述第一数据表对应的结点,建立有向无环图作为数据表关联网络。
10.一种多数据表自动整合装置,其特征在于,包括:
关联网络建立模块,用于根据权利要求2-4任一项所述的方法,建立数据表关联网络;
第一获取模块,用于获取到根结点的路径长度最长的第一结点,且所述第一结点通过指向其的边与第二结点连通,其中,所述第一结点和第二结点对应的数据表都是非时序表;
第一拼接模块,用于将所述第二结点对应的数据表左连接到所述第一结点对应的数据表以形成第三数据表,将所述第三数据表对应的结点替换所述第一结点,并删除所述第一结点、所述边和所述第二结点;
循环模块,用于判断被删除的所述第一结点到所述根结点的路径长度是否大于1,且当大于1时,转至所述第一获取模块。
11.根据权利要求10所述的装置,其特征在于,还包括:
第二获取模块,用于获取第四结点,且所述第四结点通过指向其的边与第五结点连通,所述第四结点对应的数据表是时序表;
第二拼接模块,用于将所述第五结点对应的数据表通过特征工程拼接到所述第四结点对应的数据表以形成第六数据表,所述第六数据表是非时序表,并将所述第六数据表对应的结点替换所述第四结点,并删除所述第四结点、所述边和所述第五结点。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
删除模块,用于删除与所述根结点不连通的结点。
13.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-7任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1-7任一项所述方法的步骤。
15.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110768230.2A CN113590886A (zh) | 2021-07-05 | 2021-07-05 | 数据表关联关系自动识别、多数据表自动整合方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110768230.2A CN113590886A (zh) | 2021-07-05 | 2021-07-05 | 数据表关联关系自动识别、多数据表自动整合方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590886A true CN113590886A (zh) | 2021-11-02 |
Family
ID=78246339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110768230.2A Pending CN113590886A (zh) | 2021-07-05 | 2021-07-05 | 数据表关联关系自动识别、多数据表自动整合方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590886A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170078387A1 (en) * | 2015-09-10 | 2017-03-16 | Vmware, Inc. | Framework for distributed key-value store in a wide area network |
CN109697066A (zh) * | 2018-12-28 | 2019-04-30 | 第四范式(北京)技术有限公司 | 实现数据表拼接及自动训练机器学习模型的方法和系统 |
CN109739855A (zh) * | 2018-12-28 | 2019-05-10 | 第四范式(北京)技术有限公司 | 实现数据表拼接及自动训练机器学习模型的方法和系统 |
US20190188350A1 (en) * | 2017-12-18 | 2019-06-20 | Texas Instruments Incorporated | System and method for interactive datasheets |
CN110399387A (zh) * | 2019-07-26 | 2019-11-01 | 北京明略软件系统有限公司 | 基于表关联关系动态生成查询sql的方法及装置 |
CN111460047A (zh) * | 2020-03-09 | 2020-07-28 | 平安科技(深圳)有限公司 | 基于实体关系的特征构建方法、装置、设备及存储介质 |
CN112115138A (zh) * | 2020-08-19 | 2020-12-22 | 第四范式(北京)技术有限公司 | 确定数据表之间关联关系的方法、装置及设备 |
CN112765152A (zh) * | 2019-11-05 | 2021-05-07 | 北京京东振世信息技术有限公司 | 用于合并数据表的方法和装置 |
-
2021
- 2021-07-05 CN CN202110768230.2A patent/CN113590886A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170078387A1 (en) * | 2015-09-10 | 2017-03-16 | Vmware, Inc. | Framework for distributed key-value store in a wide area network |
US20190188350A1 (en) * | 2017-12-18 | 2019-06-20 | Texas Instruments Incorporated | System and method for interactive datasheets |
CN109697066A (zh) * | 2018-12-28 | 2019-04-30 | 第四范式(北京)技术有限公司 | 实现数据表拼接及自动训练机器学习模型的方法和系统 |
CN109739855A (zh) * | 2018-12-28 | 2019-05-10 | 第四范式(北京)技术有限公司 | 实现数据表拼接及自动训练机器学习模型的方法和系统 |
CN110399387A (zh) * | 2019-07-26 | 2019-11-01 | 北京明略软件系统有限公司 | 基于表关联关系动态生成查询sql的方法及装置 |
CN112765152A (zh) * | 2019-11-05 | 2021-05-07 | 北京京东振世信息技术有限公司 | 用于合并数据表的方法和装置 |
CN111460047A (zh) * | 2020-03-09 | 2020-07-28 | 平安科技(深圳)有限公司 | 基于实体关系的特征构建方法、装置、设备及存储介质 |
CN112115138A (zh) * | 2020-08-19 | 2020-12-22 | 第四范式(北京)技术有限公司 | 确定数据表之间关联关系的方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hwang et al. | Spatial dependency parsing for semi-structured document information extraction | |
Cohen et al. | Summarizing data using bottom-k sketches | |
CN102053992B (zh) | 聚类方法和系统 | |
US20170024435A1 (en) | Use Of Dynamic Dictionary Encoding With An Associated Hash Table To Support Many-To-Many Joins And Aggregations | |
CN108647276B (zh) | 一种搜索方法 | |
CN111506621B (zh) | 一种数据统计方法及装置 | |
CN103605651A (zh) | 一种基于olap多维分析的数据处理展现方法 | |
CN106062751A (zh) | 对与数据类型有关的数据剖析操作的管理 | |
CN103514201A (zh) | 一种非关系型数据库的数据查询方法和装置 | |
CN109684616A (zh) | 动态报表公式组装填报的方法及系统 | |
CN110689371B (zh) | 一种基于ai和大数据的智能营销云服务平台 | |
CN110175730A (zh) | 一种基于大数据的政府政策智能与企业匹配的系统及方法 | |
US20070067327A1 (en) | Performing recursive database operators | |
CN110659282A (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
CN105159884A (zh) | 行业词典的建立方法和装置及行业识别方法和装置 | |
CN109933589B (zh) | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 | |
CN105426392A (zh) | 一种协同过滤推荐方法及系统 | |
CN105159898A (zh) | 一种搜索的方法和装置 | |
CN111898351B (zh) | 基于Aviator的Excel数据自动导入方法、装置、终端设备及存储介质 | |
CN113268485A (zh) | 数据表关联分析方法、装置、设备及存储介质 | |
CN113590886A (zh) | 数据表关联关系自动识别、多数据表自动整合方法及装置 | |
CN111723122A (zh) | 数据间关联规则的确定方法、装置、设备及可读存储介质 | |
CN110580144A (zh) | 一种通过给页面控件添加查询运算符实现的通用查询方法 | |
CN110765100B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN113128848A (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 |