CN114676132A - 一种数据表关联方法、装置、存储介质及电子设备 - Google Patents
一种数据表关联方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114676132A CN114676132A CN202210226727.6A CN202210226727A CN114676132A CN 114676132 A CN114676132 A CN 114676132A CN 202210226727 A CN202210226727 A CN 202210226727A CN 114676132 A CN114676132 A CN 114676132A
- Authority
- CN
- China
- Prior art keywords
- data
- association
- data table
- data tables
- 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/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/2246—Trees, e.g. B+trees
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual 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
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据表关联方法、装置、存储介质及电子设备。
背景技术
随着大数据技术的不断发展,在对海量的数据信息进行分析时,需要对不同数据源的数据表进行关联。
现有技术在进行数据表关联时,通常采用串行的关联方式,依次对各数据表进行关联。例如图1所示,在进行数据表A、B、C、D的关联时,通常先将A表与B表进行关联,得到中间结果表A-B,再将中间结果表A-B与C表进行关联,得到中间结果表A-B-C,最后,将中间结果表A-B-C与表D进行关联,得到最终关联结果A-B-C-D。
但是,上述串行关联的方式由于没有限制各数据表关联的先后顺序,可能出现数据量较大的表在关联流程中频繁加载计算,尤其对于数亿级别的大规模数据表的关联,需要耗费大量的计算资源。
发明内容
本说明书实施例提供一种数据表关联方法、装置、存储介质及电子设备,用于部分解决现有技术中的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种数据表关联方法,包括:
根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,所述属性信息至少包括数据表的数据量、关联行数以及关联列数,所述关联权重表征两个数据表关联后形成的虚拟中间表的数据量大小;
根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照所述关联顺序进行数据表的关联,所述两个数据表之间的关联权重与所述两个数据表的关联顺序负相关。
可选地,根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,具体包括:
针对待关联的每个数据表,根据该数据表中的键值与各其它数据表中的键值,确定该数据表与各其它数据表的匹配键值;
针对该数据表的每个其它数据表,根据该数据表与该其它数据表的匹配键值,在该数据表的键值中的占比,确定该数据表对应于该其它数据表的关联率。
可选地,根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,具体包括:
针对每两个数据表,分别确定该两个数据表的数据量、关联行数以及关联列数;
根据该两个数据表的关联行数、关联列数以及该两个数据表之间对应的关联率,确定该两个数据表关联后产生的空值总量;
根据该两个数据表的数据量、该两个数据表关联后产生的空值总量以及预设的空值所占字符数,确定该两个数据表关联后形成的虚拟中间表的数据量,并根据所述虚拟中间表的数据量,确定该两个数据表之间的关联权重。
可选地,根据该两个数据表的关联行数、关联列数以及该两个数据表之间对应的关联率,确定该两个数据表关联后产生的空值总量,具体包括:
确定该两个数据表中的第一数据表以及第二数据表;
根据所述第一数据表的关联行数、所述第一数据表对应于所述第二数据表的关联率以及所述第二数据表的关联列数,确定该两个数据表关联后所述第二数据表中增加的空值数量;
根据所述第二数据表的关联列数、所述第二数据表对应于所述第一数据表的关联率,以及所述第一数据表的关联列数,确定该两个数据表关联后所述第一数据表中增加的空值数量;
根据该两个数据表关联后所述第二数据表中增加的空值数量以及所述第一数据表中增加的空值数量,确定该两个数据表关联后产生的空值总量。
可选地,根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,具体包括:
确定待关联的各数据表组成的数据表集合;
根据所述数据表集合中每两个数据表之间的关联权重,确定第三数据表以及第四数据表;
判断删除所述第三数据表以及所述第四数据表后所述数据表集合是否为空集;
若是,根据依次确定的各第三数据表以及各第四数据表,确定各数据表的关联顺序;
若否,确定所述第三数据表与所述第四数据表关联后的虚拟中间表,将所述虚拟中间表作为新的待关联的数据表添加到所述数据表集合中,重新确定所述数据表集合中每两个数据表之间的关联权重,并重新根据每两个数据表之间的关联权重,确定第三数据表以及第四数据表,直至删除所述第三数据表以及所述第四数据表后所述数据表集合是空集为止。
可选地,重新确定所述数据表集合中每两个数据表之间的关联权重之前,所述方法还包括:
根据所述第三数据表的关联列数以及所述第四数据表的关联列数,确定关联后的虚拟中间表的关联列数;
根据所述第三数据表的关联行数、所述第四数据表的关联行数以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的关联行数;
根据所述第三数据表的属性信息、所述第四数据表的属性信息,以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的数据量;
根据所述虚拟中间表的关联列数、关联行数以及数据量,确定所述虚拟中间表的属性信息。
可选地,根据依次确定的各第三数据表以及各第四数据表,确定各数据表的关联顺序,具体包括:
根据依次确定的各第三数据表以及各第四数据表,构建关联二叉树,确定所述关联二叉树上各节点对应的数据表;
按照所述关联二叉树从叶子节点到根节点的顺序,将对应节点的数据表进行全连接;
其中,同一层次的节点对应的数据表的关联顺序相同。
本说明书提供一种数据表关联装置,包括:
权重确定模块,配置为根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,所述属性信息至少包括数据表的数据量、关联行数以及关联列数,所述关联权重表征两个数据表关联后形成的虚拟中间表的数据量大小;
排序及关联模块,配置为根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照所述关联顺序进行数据表的关联,所述两个数据表之间的关联权重与所述两个数据表的关联顺序负相关。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据表关联方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据表关联方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书中,根据待关联的各数据表的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,以基于各数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照关联顺序进行数据表的关联。其中,关联权重表征两个数据表关联后的虚拟中间表的数据量大小,两个数据表之间的关联权重与两个数据表的关联顺序负相关。基于待关联的各数据表中,每两个数据表关联后的虚拟中间表的数据量大小,确定各数据表的关联顺序,优先关联数据量较小的数据表,延后关联大数据量的数据表,减少了大数据量的数据表在关联过程中的加载频次,节省了大量的计算资源,缩短了多表关联的时长。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术中多表串行关联的示意图;
图2为本说明书实施例提供的一种数据表关联方法的流程示意图;
图3为本说明书实施例提供的确定关联顺序的流程示意图;
图4为本说明书实施例提供的关联二叉树的结构示意图;
图5为本说明书实施例提供的一种数据表关联装置的结构示意图;
图6为本说明书实施例提供的实现数据表关联方法的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
本说明书提供一种数据表关联方法。以下结合附图,详细说明本申请各实施例提供的技术方案。
图2为本说明书实施例提供的一种数据表关联方法的流程示意图,具体可包括以下步骤:
S100:根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重。
本说明书提出了一种数据表关联方法,可先确定待关联的若干数据表的关联顺序,从而按照顺序进行数据表的关联。其中,该数据表关联方法可由执行数据关联业务的服务器执行,该服务器可以是单个服务器,也可以是多个服务器组成的系统,如分布式服务器系统等,本说明书对此不做限制,可根据需要设置。
在进行数据表关联时,由于只能两两数据表关联,为了避免数据量较大的数据表多次重复加载计算,耗费计算资源。在本说明书中可基于哈夫曼算法的实现原理,优先关联数据量较少的数据表,延后关联数据量较大的数据表,以减少数据量较大的数据表的加载频次,节省计算资源。
于是,在本说明书中进行数据表关联时,可基于两两数据表关联后所形成的虚拟中间表的数据量大小,确定各数据表的关联顺序。
其中,由于本说明书中数据表关联方式为全连接,需要将关联的两个数据表包含的所有数据进行合并,对于两个数据表中未匹配的数据,需要在两个数据表中以空值(NULL)填充。也就是说,两个数据表关联后形成的虚拟中间表的数据量,为该两个数据表自身的数据量与未匹配数据所填充的NULL的数据量之和。因此在计算虚拟中间表的数据量时,还需确定两个数据表进行全连接时所填充的NULL的数据量。
具体的,针对待关联的每个数据表,根据该数据表中的键值与各其它数据表中的键值,确定该数据表与各其它数据表的匹配键值。之后,针对该数据表的每个其它数据表,根据该数据表与该其它数据表之间的匹配键值,在该数据表的键值中的占比,确定该数据表对应于该其它数据表的关联率。
假设待关联的数据表包括A表、B表和C表,针对表A,可确定表A与表B的匹配键值K(A∩B),以及表A与表C的匹配键值K(A∩C)。之后,根据该匹配键值K(A∩B)在A表的所有键值中的数量占比,确定表A对应于表B的关联率,即根据该匹配键值K(A∩C)在A表的所有键值中的数量占比,确定表A对应于表C的关联率,即 可通过上述方法依次确定B表、C表对应于各其它数据表的关联率。
然后,针对待关联的每两个数据表,根据该两个数据表的属性信息,以及该两个数据表之间对应的关联率,确定该两个数据表关联后形成的虚拟中间表的数据量,并根据该虚拟中间表的数据量,确定该两个数据表之间的关联权重。
其中,数据表的属性信息至少包括数据表的数据量、关联行数以及关联列数,关联行数、关联列数可以是数据表中所有的行和列,也可以是其中指定的部分行和列。
进一步的,在确定该虚拟中间表的数据量时,可根据该两个数据表的关联行数、关联列数以及该两个数据表之间对应的关联率,确定该两个数据表关联后产生的空值总量。之后,根据该两个数据表关联后产生的空值总量以及预设的空值所占字符数,确定该两个数据表关联后,未匹配数据所填充的空值的数据量。最后,根据该两个数据表的数据量、该两个数据表关联后未匹配数据所填充的空值的数据量,确定该两个数据表关联后形成的虚拟中间表的数据量。
更进一步的,在确定该两个数据表关联后产生的空值总量时,可确定该两个数据表中的第一数据表以及第二数据表,根据该第一数据表的关联行数、该第一数据表对应于该第二数据表的关联率以及该第二数据表的关联列数,确定该两个数据表关联后在第二数据表中增加的空值数量。并根据该第二数据表的关联行数、该第二数据表对应于该第一数据表的关联率,以及该第一数据表的关联列数,确定该两个数据表关联后在第一数据表中增加的空值数量。最后,根据两个数据表关联后,该第二数据表中增加的空值数量以及该第一数据表中增加的空值数量,确定该两个数据表关联后未匹配数据所填充的空值总量。
以上述A表与B表进行关联为例,假设A表和B表关联后的虚拟中间表为D表,填充的空值所占字符数为M。A表的数据量为SA,关联行数为LA,关联列数为CA,A表对应于B表的关联率为R(AB)。B表的数据量为SB,关联行数为LB,关联列数为CB,B表对应于A表的关联率为R(BA)。
则两个数据表关联后D表的数据量:
SD=SA+SB+{CBLA[1-R(AB)]+CALB[1-R(BA)]}×M
其中,LA[1-R(AB)]表示A表中与B表未匹配的关联行数,CBLA[1-R(AB)]表示未匹配数据在B表中填充的空值数量,LB[1-R(BA)]表示B表中与A表未匹配的关联行数,CALB[1-R(BA)]表示未匹配数据在A表中填充的空值数量。
S102:根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照所述关联顺序进行数据表的关联。
为了减少数据量较大的数据表在关联过程中频繁加载的次数,节省计算资源,可基于每两个数据表关联后的数据量,对各数据表进行关联排序。
具体的,根据待关联的各数据表中,每两个数据表之间的关联权重,从中确定关联权重最小的两个数据表。将该两个数据表关联后形成的虚拟中间表,重新作为待关联的数据表,并更新每两个数据表之间的关联权重,继续从待关联的各数据表中确定关联权重最小的两个数据表,直至待关联的各数据表确定完为止。根据依次确定出的两个数据表,确定各数据表的关联顺序。并按照确定出的关联顺序,对两两数据表进行全连接。
图3为本说明书实施例提供的确定关联顺序的流程示意图,可先确定待关联的各数据表组成的数据表集合,并根据该数据表集合中每两个数据表之间的关联权重,确定关联权重最小的两个数据表,记为第三数据表以及第四数据表。之后,从该数据表集合中删除该第三数据表以及第四数据表,并判断删除后的该数据表集合是否为空集。
若该数据表集合为空集,则根据依次确定出的各第三数据表以及各第四数据表,确定各数据表的关联顺序。
若该数据表集合非空,则确定该第三数据表与该第四数据表关联后的虚拟中间表,将该虚拟中间表作为新的待关联的数据表添加到所述数据表集合中,重新确定该数据表集合中每两个数据表之间的关联权重,并重新根据该数据表集合中每两个数据表之间的关联权重,确定第三数据表以及第四数据表,直至删除该第三数据表以及该第四数据表后数据表集合是空集为止。
进一步的,在重新确定该数据表集合中每两个数据表之间的关联权重时,还需得到关联后的虚拟中间表的属性信息。于是可根据该第三数据表的关联列数以及该第四数据表的关联列数,确定两表的关联列数之和,作为关联后的虚拟中间表的关联列数。根据该第三数据表的关联行数、该第四数据表的关联行数以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的关联行数。根据该第三数据表的属性信息、该第四数据表的属性信息,以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的数据量,具体详细内容可参见上述步骤S100。最后,根据该虚拟中间表的关联列数、关联行数以及数据量,确定该虚拟中间表的属性信息。
其中,在确定虚拟中间表的关联行数时,可基于第四数据表的关联行数、第三数据表的关联行数以及第三数据表对应于第四数据表的关联率,确定虚拟中间表的关联行数。也可以基于第三数据表的关联行数、第四数据表的关联行数以及第四数据表对应于第三数据表的关联率,确定虚拟中间表的关联行数。
仍然以上述A表与B表关联为例进行说明,假设A表和B表关联后的虚拟中间表为D表。A表的关联行数为LA,A表对应于B表的关联率为R(AB)。B表的关联行数为LB,B表对应于A表的关联率为R(BA)。
则两个数据表关联后D表的关联行数:
LD=LA+LB[1-R(BA)]=LB+LA[1-R(AB)]
更进一步的,在进行数据表关联时,可根据依次确定的关联权重最小的两个数据表,即各第三数据表以及各第四数据表,构建关联二叉树,确定该关联二叉树上各节点对应的数据表。之后,按照该关联二叉树从叶子节点到根节点的顺序,将对应节点的数据表进行全连接。其中,同一层次的节点对应的数据表的关联顺序相同,同一层次的各数据表对可以并行关联。
基于图2所示的数据表关联方法,根据待关联的各数据表的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,以基于各数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照关联顺序进行数据表的关联。其中,关联权重表征两个数据表关联后的虚拟中间表的数据量大小,两个数据表之间的关联权重与两个数据表的关联顺序负相关。基于待关联的各数据表中,每两个数据表关联后的虚拟中间表的数据量大小,确定各数据表的关联顺序,优先关联数据量较小的数据表,延后关联大数据量的数据表,减少了大数据量的数据表在关联过程中的加载频次,节省了大量的计算资源,缩短了多表关联的时长。
并且,现有技术持续串行关联的方式,往往需要耗费大量的计算时间,尤其对于数亿级别的大规模数据表的关联,计算时间较长,关联效率较低。而本说明书中的数据表关联方法,在构建的关联二叉树中,同一层次的数据表对可以并行关联,提高了多表关联的效率,缩短了关联时长。
在本说明书一种具体的实施方式中,假设待关联的数据表包括D表~H表,根据待关联的各数据表构建邻接矩阵,该邻接矩阵中行与列的交点为两表关联后的虚拟中间表。如下表1所示,如D表和E表关联后的虚拟中间表为D-E表。
根据上述步骤S100所述的方法,可分别计算各虚拟中间表的数据量,并基于各虚拟中间表的数据量,从中确定数据量最小的虚拟中间表。假设表1中数据量最小的虚拟中间表为E-G表,则可确定E表和G表为关联权重最小的两个数据表,优先进行关联。
表1
之后,删除表1中关联权重最小的E表和G表,并将虚拟中间表E-G表作为新的待关联的数据表,重新确定各行与列的交点为两表关联后的虚拟中间表。如表2所示。
表2
继续计算表2中各虚拟中间表的数据量,从中确定数据量最小的虚拟中间表。假设表2中数据量最小的虚拟中间表为E-G-H表,则可确定E-G表和H表为关联权重最小的两个数据表,优先进行关联。
然后,删除表2中关联权重最小的E-G表和H表,并将虚拟中间表E-G-H表作为新的待关联的数据表,重新确定各行与列的交点为两表关联后的虚拟中间表。如表3所示。
表3
继续计算表3中各虚拟中间表的数据量,从中确定数据量最小的虚拟中间表。假设表3中数据量最小的虚拟中间表为D-F表,则可确定D表和F表为关联权重最小的两个数据表,优先进行关联。
最后,根据依次确定出的关联权重最小的两个数据表:E表和G表、E-G表和H表、D表和F表,构建关联二叉树,如图4所示。其中,在第二层中,E-G表和H表,D表和F表的关联顺序相同,因此E-G表和H表的关联,与D表和F表的关联,可同时并行执行。
基于图2所示的一种数据表关联方法,本说明书实施例还对应提供一种数据表关联装置的结构示意图,如图5所示。
图5为本说明书实施例提供的一种数据表关联装置的结构示意图,包括:
权重确定模块200,配置为根据各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,所述属性信息至少包括数据表的数据量、关联行数以及关联列数,所述关联权重表征两个数据表关联后形成的虚拟中间表的数据量大小;
排序及关联模块202,配置为根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照所述关联顺序进行数据表的关联,所述两个数据表之间的关联权重与所述两个数据表的关联顺序负相关。
可选地,所述权重确定模块200具体用于,针对待关联的每个数据表,根据该数据表中的键值与各其它数据表中的键值,确定该数据表与各其它数据表的匹配键值,针对该数据表的每个其它数据表,根据该数据表与该其它数据表的匹配键值,在该数据表的键值中的占比,确定该数据表对应于该其它数据表的关联率。
可选地,所述权重确定模块200具体用于,针对每两个数据表,分别确定该两个数据表的数据量、关联行数以及关联列数,根据该两个数据表的关联行数、关联列数以及该两个数据表之间对应的关联率,确定该两个数据表关联后产生的空值总量,根据该两个数据表的数据量、该两个数据表关联后产生的空值总量以及预设的空值所占字符数,确定该两个数据表关联后形成的虚拟中间表的数据量,并根据所述虚拟中间表的数据量,确定该两个数据表之间的关联权重。
可选地,所述权重确定模块200具体用于,确定该两个数据表中的第一数据表以及第二数据表,根据所述第一数据表的关联行数、所述第一数据表对应于所述第二数据表的关联率以及所述第二数据表的关联列数,确定该两个数据表关联后所述第二数据表中增加的空值数量,根据所述第二数据表的关联列数、所述第二数据表对应于所述第一数据表的关联率,以及所述第一数据表的关联列数,确定该两个数据表关联后所述第一数据表中增加的空值数量,根据该两个数据表关联后所述第二数据表中增加的空值数量以及所述第一数据表中增加的空值数量,确定该两个数据表关联后产生的空值总量。
可选地,所述排序及关联模块202具体用于,确定待关联的各数据表组成的数据表集合,根据所述数据表集合中每两个数据表之间的关联权重,确定第三数据表以及第四数据表,判断删除所述第三数据表以及所述第四数据表后所述数据表集合是否为空集,若是,根据依次确定的各第三数据表以及各第四数据表,确定各数据表的关联顺序,若否,确定所述第三数据表与所述第四数据表关联后的虚拟中间表,将所述虚拟中间表作为新的待关联的数据表添加到所述数据表集合中,重新确定所述数据表集合中每两个数据表之间的关联权重,并重新根据每两个数据表之间的关联权重,确定第三数据表以及第四数据表,直至删除所述第三数据表以及所述第四数据表后所述数据表集合是空集为止。
可选地,所述排序及关联模块202还用于,根据所述第三数据表的关联列数以及所述第四数据表的关联列数,确定关联后的虚拟中间表的关联列数,根据所述第三数据表的关联行数、所述第四数据表的关联行数以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的关联行数,根据所述第三数据表的属性信息、所述第四数据表的属性信息,以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的数据量,根据所述虚拟中间表的关联列数、关联行数以及数据量,确定所述虚拟中间表的属性信息。
可选地,所述排序及关联模块202具体用于,根据依次确定的各第三数据表以及各第四数据表,构建关联二叉树,确定所述关联二叉树上各节点对应的数据表,按照所述关联二叉树从叶子节点到根节点的顺序,将对应节点的数据表进行全连接,其中,同一层次的节点对应的数据表的关联顺序相同。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2提供的数据表关联方法。
根据图2所示的一种数据表关联方法,本说明书实施例还提出了图6所示的电子设备的示意结构图。如图6,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图2所示的数据表关联方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和生成专用的集成电路芯片。而且,如今,取代手工地生成集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种数据表关联方法,其特征在于,包括:
根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,所述属性信息至少包括数据表的数据量、关联行数以及关联列数,所述关联权重表征两个数据表关联后形成的虚拟中间表的数据量大小;
根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照所述关联顺序进行数据表的关联,所述两个数据表之间的关联权重与所述两个数据表的关联顺序负相关。
2.如权利要求1所述的方法,其特征在于,根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,具体包括:
针对待关联的每个数据表,根据该数据表中的键值与各其它数据表中的键值,确定该数据表与各其它数据表的匹配键值;
针对该数据表的每个其它数据表,根据该数据表与该其它数据表的匹配键值,在该数据表的键值中的占比,确定该数据表对应于该其它数据表的关联率。
3.如权利要求1所述的方法,其特征在于,根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,具体包括:
针对每两个数据表,分别确定该两个数据表的数据量、关联行数以及关联列数;
根据该两个数据表的关联行数、关联列数以及该两个数据表之间对应的关联率,确定该两个数据表关联后产生的空值总量;
根据该两个数据表的数据量、该两个数据表关联后产生的空值总量以及预设的空值所占字符数,确定该两个数据表关联后形成的虚拟中间表的数据量,并根据所述虚拟中间表的数据量,确定该两个数据表之间的关联权重。
4.如权利要求3所述的方法,其特征在于,根据该两个数据表的关联行数、关联列数以及该两个数据表之间对应的关联率,确定该两个数据表关联后产生的空值总量,具体包括:
确定该两个数据表中的第一数据表以及第二数据表;
根据所述第一数据表的关联行数、所述第一数据表对应于所述第二数据表的关联率以及所述第二数据表的关联列数,确定该两个数据表关联后所述第二数据表中增加的空值数量;
根据所述第二数据表的关联行数、所述第二数据表对应于所述第一数据表的关联率,以及所述第一数据表的关联列数,确定该两个数据表关联后所述第一数据表中增加的空值数量;
根据该两个数据表关联后所述第二数据表中增加的空值数量以及所述第一数据表中增加的空值数量,确定该两个数据表关联后产生的空值总量。
5.如权利要求1所述的方法,其特征在于,根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,具体包括:
确定待关联的各数据表组成的数据表集合;
根据所述数据表集合中每两个数据表之间的关联权重,确定第三数据表以及第四数据表;
判断删除所述第三数据表以及所述第四数据表后所述数据表集合是否为空集;
若是,根据依次确定的各第三数据表以及各第四数据表,确定各数据表的关联顺序;
若否,确定所述第三数据表与所述第四数据表关联后的虚拟中间表,将所述虚拟中间表作为新的待关联的数据表添加到所述数据表集合中,重新确定所述数据表集合中每两个数据表之间的关联权重,并重新根据每两个数据表之间的关联权重,确定第三数据表以及第四数据表,直至删除所述第三数据表以及所述第四数据表后所述数据表集合是空集为止。
6.如权利要求5所述的方法,其特征在于,重新确定所述数据表集合中每两个数据表之间的关联权重之前,所述方法还包括:
根据所述第三数据表的关联列数以及所述第四数据表的关联列数,确定关联后的虚拟中间表的关联列数;
根据所述第三数据表的关联行数、所述第四数据表的关联行数以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的关联行数;
根据所述第三数据表的属性信息、所述第四数据表的属性信息,以及该两个数据表之间对应的关联率,确定关联后的虚拟中间表的数据量;
根据所述虚拟中间表的关联列数、关联行数以及数据量,确定所述虚拟中间表的属性信息。
7.如权利要求5所述的方法,其特征在于,根据依次确定的各第三数据表以及各第四数据表,确定各数据表的关联顺序,具体包括:
根据依次确定的各第三数据表以及各第四数据表,构建关联二叉树,确定所述关联二叉树上各节点对应的数据表;
按照所述关联二叉树从叶子节点到根节点的顺序,将对应节点的数据表进行全连接;
其中,同一层次的节点对应的数据表的关联顺序相同。
8.一种数据表关联装置,其特征在于,包括:
权重确定模块,配置为根据待关联的各数据表中的键值,确定每个数据表对应于各其它数据表的关联率,并根据各数据表的属性信息以及每两个数据表之间对应的关联率,确定每两个数据表之间的关联权重,所述属性信息至少包括数据表的数据量、关联行数以及关联列数,所述关联权重表征两个数据表关联后形成的虚拟中间表的数据量大小;
排序及关联模块,配置为根据每两个数据表之间的关联权重,确定待关联的各数据表的关联顺序,并按照所述关联顺序进行数据表的关联,所述两个数据表之间的关联权重与所述两个数据表的关联顺序负相关。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210226727.6A CN114676132A (zh) | 2022-03-09 | 2022-03-09 | 一种数据表关联方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210226727.6A CN114676132A (zh) | 2022-03-09 | 2022-03-09 | 一种数据表关联方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676132A true CN114676132A (zh) | 2022-06-28 |
Family
ID=82072412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210226727.6A Pending CN114676132A (zh) | 2022-03-09 | 2022-03-09 | 一种数据表关联方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676132A (zh) |
-
2022
- 2022-03-09 CN CN202210226727.6A patent/CN114676132A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562775B (zh) | 一种基于区块链的数据处理方法及设备 | |
KR102125177B1 (ko) | 블록체인 기반 데이터 처리 방법 및 장치 | |
EP3547168A1 (en) | Block chain based data processing method and device | |
US11074246B2 (en) | Cluster-based random walk processing | |
CN107291720B (zh) | 一种实现批量数据处理的方法、系统和计算机集群 | |
CN117312394B (zh) | 一种数据访问方法、装置、存储介质及电子设备 | |
CN115617799A (zh) | 一种数据存储的方法、装置、设备及存储介质 | |
CN106156050B (zh) | 一种数据处理方法及装置 | |
CN116107932B (zh) | 一种数据队列更新方法、装置、存储介质及电子设备 | |
CN116341642B (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN113641872B (zh) | 一种散列方法、装置、设备及介质 | |
CN116304212A (zh) | 一种数据处理系统、方法、设备及存储介质 | |
CN116384505A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN114676132A (zh) | 一种数据表关联方法、装置、存储介质及电子设备 | |
CN115563116A (zh) | 一种数据库表扫描方法、装置以及设备 | |
CN109753351B (zh) | 一种限时任务处理方法、装置、设备及介质 | |
US11372832B1 (en) | Efficient hashing of data objects | |
TWI748247B (zh) | 產生統計資訊的方法、系統以及電子設備 | |
CN114489481A (zh) | 硬盘存储数据并访问的方法及系统 | |
CN109614388B (zh) | 一种预算扣减方法和装置 | |
CN113641871B (zh) | 一种无锁散列方法、装置、设备及介质 | |
CN108345470B (zh) | 一种数据处理、存储的方法、装置及电子设备 | |
CN113282624B (zh) | 规则匹配方法、装置、电子设备及存储介质 | |
CN110851416B (zh) | 数据存储性能分析方法和装置、宿主机确定方法和装置 | |
CN110209746B (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 |