CN117591705B - 基于图搜索的分表关联方法及设备 - Google Patents
基于图搜索的分表关联方法及设备 Download PDFInfo
- Publication number
- CN117591705B CN117591705B CN202410078331.0A CN202410078331A CN117591705B CN 117591705 B CN117591705 B CN 117591705B CN 202410078331 A CN202410078331 A CN 202410078331A CN 117591705 B CN117591705 B CN 117591705B
- Authority
- CN
- China
- Prior art keywords
- sub
- tables
- field
- undirected
- target
- 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 47
- 238000012545 processing Methods 0.000 claims abstract description 169
- 239000003016 pheromone Substances 0.000 claims description 68
- 238000004891 communication Methods 0.000 claims description 51
- 238000010586 diagram Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 9
- 241000257303 Hymenoptera Species 0.000 claims description 6
- 238000010276 construction Methods 0.000 description 6
- 238000003672 processing method Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/903—Querying
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于图搜索的分表关联方法及设备,涉及数据处理技术领域,包括:对多个分表进行字段识别处理,确定多个分表中、两两分表之间的公共字段;基于两两分表之间的公共字段,构建多个分表对应的无向多边图;基于无向多边图,确定多个分表对应的目标处理方式,目标处理方式用于指示多个分表中待关联的至少两个目标分表、至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;基于至少两个目标分表的遍历顺序,以及两两相邻的目标分表之间的目标表关联方式,对至少两个目标分表进行关联处理,生成目标宽表。本申请的方案提高了分表关联的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种基于图搜索的分表关联方法及设备。
背景技术
表格是常见的数据维护工具,通过表格能够对数据进行管理和维护,便于用户对数据进行编辑和查看等操作。
在一些情况下,可能涉及到需要对多个表格进行关联的操作,关联指的是以一定的关联方式对多个表格进行关联,从而生成对应的宽表的过程。目前,表格的关联操作的实现方式,主要是通过人工查看各表格中关联的字段,然后选择相应的关联方式进行关联的,这种表格的关联方式,效率较低。
发明内容
本申请提供一种基于图搜索的分表关联方法及设备,以解决目前分表关联效率较低的问题。
第一方面,本申请提供一种基于图搜索的分表关联方法,包括:
对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;
基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;
基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;
基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表。
在一种可能的实施方式中,所述基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,包括:
确定多个预设连接方式,所述多个预设连接方式包括左连接方式、右连接方式、内连接方式和外连接方式;
基于所述多个预设连接方式和所述两两分表之间的公共字段,确定所述两两分表之间的多个表关联方式;
以所述多个分表为表节点,以两两分表之间的多个表关联方式为边,构建所述无向多边图。
在一种可能的实施方式中,所述基于所述无向多边图,确定所述多个分表对应的目标处理方式,包括:
对所述无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式;
对所述无向多边图进行多次路径搜索处理,确定多个第二候选处理方式;
基于预设核心字段库中包括的核心字段,确定所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度;
基于所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度,在所述多个第一候选处理方式和所述多个第二候选处理方式中,确定所述目标处理方式。
在一种可能的实施方式中,所述对所述无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式,包括:
执行第i轮裁剪遍历操作,i初始为1,i为大于或等于1的正整数,所述第i轮裁剪遍历操作包括:
随机生成所述无向多边图中的多条边各自的权重;基于所述多条边各自的权重,对所述无向多边图进行裁剪,生成第i轮连通图,其中,所述第i轮连通图中包括所述多个分表各自对应的表节点,各表节点至少连接一条边,且两两表节点之间至多通过一条边连接;基于所述第i轮连通图,对所述多个分表执行遍历操作,得到所述第i轮连通图对应的多个表节点关联路径,所述表节点关联路径用于指示所述多个分表的遍历顺序,以及两两相邻的分表之间的表关联方式;
在不满足预设条件的情况下,更新i为i+1,并重复执行第i轮裁剪遍历操作;在满足所述预设条件的情况下,基于前i轮连通图各自对应的多个表节点关联路径,确定所述多个第一候选处理方式;
其中,所述预设条件为:所述无向多边图中不存在前i轮连通图各自对应的多个表节点关联路径均未遍历过的边。
在一种可能的实施方式中,所述基于所述第i轮连通图,对所述多个分表执行遍历操作,得到所述第i轮连通图对应的多个表节点关联路径,包括:
针对所述多个分表中的各分表,以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行深度优先遍历操作,得到所述分表对应的第一类表节点关联路径;
以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行广度优先遍历操作,得到所述分表对应的第二类表节点关联路径;
对所述第一类表节点关联路径和所述第二类表节点关联路径进行去重处理,得到所述分表对应的表节点关联路径;
其中,所述第i轮连通图对应的多个表节点关联路径,包括所述多个分表各自对应的表节点关联路径。
在一种可能的实施方式中,所述对所述无向多边图进行多次路径搜索处理,确定多个第二候选处理方式,包括:
随机生成多个蚂蚁个体,其中,各蚂蚁个体的起始表节点为所述无向多边图包括的多个表节点中的一个;
针对各蚂蚁个体,执行路径搜索操作,所述路径搜索操作包括:基于所述蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定所述蚂蚁个体下一轮所在的表节点;
在未满足路径搜索终止条件的情况下,更新所述无向多边图中多条边各自的信息素浓度,并基于更新后的信息素浓度,重复执行所述路径搜索操作;
在满足所述路径搜索终止条件的情况下,基于所述多个蚂蚁个体各自的遍历路径,确定所述多个第二候选处理方式;
其中,所述路径搜索终止条件为:所述多个蚂蚁个体中存在至少一个蚂蚁个体已完成所述无向多边图中所有表节点的遍历。
在一种可能的实施方式中,所述基于所述蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定所述蚂蚁个体下一轮所在的表节点,包括:
随机生成所述多条候选边各自对应的信息素接受程度参数;
基于所述多条候选边各自的信息素浓度和对应的信息素接受程度参数,确定所述蚂蚁个体遍历所述多条候选边各自的概率;
基于所述概率,确定所述蚂蚁个体下一轮所在的表节点。
在一种可能的实施方式中,所述更新所述无向多边图中多条边各自的信息素浓度,包括:
确定所述多个蚂蚁个体各自的当前遍历路径;
针对各蚂蚁个体,确定所述蚂蚁个体的当前遍历路径对应的数据完整度,并基于所述蚂蚁个体的当前遍历路径对应的数据完整度,确定所述蚂蚁个体针对所述当前遍历路径中的各条边的信息素浓度影响参数;
基于所述多个蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数和预设遗忘程度参数,更新所述无向多边图中多条边各自的信息素浓度。
在一种可能的实施方式中,所述对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段,包括:
针对所述两两分表中的第一分表和第二分表,获取所述第一分表包括的各字段的字段名和字段指示信息,以及所述第二分表包括的各字段的字段名和字段指示信息;
在所述第一分表和所述第二分表中确定第一类字段,其中,所述第一类字段为字段名和字段指示信息均相同的字段;
在所述第一分表和所述第二分表中确定第二类字段,其中,所述第二类字段为字段名不同,字段指示信息相同的字段;
其中,所述第一分表和所述第二分表之间的公共字段包括所述第一类字段和所述第二类字段。
第二方面,本申请提供一种基于图搜索的分表关联装置,包括:
识别模块,用于对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;
构建模块,用于基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;
处理模块,用于基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;
关联模块,用于基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表。
在一种可能的实施方式中,所述构建模块具体用于:
确定多个预设连接方式,所述多个预设连接方式包括左连接方式、右连接方式、内连接方式和外连接方式;
基于所述多个预设连接方式和所述两两分表之间的公共字段,确定所述两两分表之间的多个表关联方式;
以所述多个分表为表节点,以两两分表之间的多个表关联方式为边,构建所述无向多边图。
在一种可能的实施方式中,所述处理模块具体用于:
对所述无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式;
对所述无向多边图进行多次路径搜索处理,确定多个第二候选处理方式;
基于预设核心字段库中包括的核心字段,确定所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度;
基于所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度,在所述多个第一候选处理方式和所述多个第二候选处理方式中,确定所述目标处理方式。
在一种可能的实施方式中,所述处理模块具体用于:
执行第i轮裁剪遍历操作,i初始为1,i为大于或等于1的正整数,所述第i轮裁剪遍历操作包括:
随机生成所述无向多边图中的多条边各自的权重;基于所述多条边各自的权重,对所述无向多边图进行裁剪,生成第i轮连通图,其中,所述第i轮连通图中包括所述多个分表各自对应的表节点,各表节点至少连接一条边,且两两表节点之间至多通过一条边连接;基于所述第i轮连通图,对所述多个分表执行遍历操作,得到所述第i轮连通图对应的多个表节点关联路径,所述表节点关联路径用于指示所述多个分表的遍历顺序,以及两两相邻的分表之间的表关联方式;
在不满足预设条件的情况下,更新i为i+1,并重复执行第i轮裁剪遍历操作;在满足所述预设条件的情况下,基于前i轮连通图各自对应的多个表节点关联路径,确定所述多个第一候选处理方式;
其中,所述预设条件为:所述无向多边图中不存在前i轮连通图各自对应的多个表节点关联路径均未遍历过的边。
在一种可能的实施方式中,所述处理模块具体用于:
针对所述多个分表中的各分表,以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行深度优先遍历操作,得到所述分表对应的第一类表节点关联路径;
以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行广度优先遍历操作,得到所述分表对应的第二类表节点关联路径;
对所述第一类表节点关联路径和所述第二类表节点关联路径进行去重处理,得到所述分表对应的表节点关联路径;
其中,所述第i轮连通图对应的多个表节点关联路径,包括所述多个分表各自对应的表节点关联路径。
在一种可能的实施方式中,所述处理模块具体用于:
随机生成多个蚂蚁个体,其中,各蚂蚁个体的起始表节点为所述无向多边图包括的多个表节点中的一个;
针对各蚂蚁个体,执行路径搜索操作,所述路径搜索操作包括:基于所述蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定所述蚂蚁个体下一轮所在的表节点;
在未满足路径搜索终止条件的情况下,更新所述无向多边图中多条边各自的信息素浓度,并基于更新后的信息素浓度,重复执行所述路径搜索操作;
在满足所述路径搜索终止条件的情况下,基于所述多个蚂蚁个体各自的遍历路径,确定所述多个第二候选处理方式;
其中,所述路径搜索终止条件为:所述多个蚂蚁个体中存在至少一个蚂蚁个体已完成所述无向多边图中所有表节点的遍历。
在一种可能的实施方式中,所述处理模块具体用于:
随机生成所述多条候选边各自对应的信息素接受程度参数;
基于所述多条候选边各自的信息素浓度和对应的信息素接受程度参数,确定所述蚂蚁个体遍历所述多条候选边各自的概率;
基于所述概率,确定所述蚂蚁个体下一轮所在的表节点。
在一种可能的实施方式中,所述处理模块具体用于:
确定所述多个蚂蚁个体各自的当前遍历路径;
针对各蚂蚁个体,确定所述蚂蚁个体的当前遍历路径对应的数据完整度,并基于所述蚂蚁个体的当前遍历路径对应的数据完整度,确定所述蚂蚁个体针对所述当前遍历路径中的各条边的信息素浓度影响参数;
基于所述多个蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数和预设遗忘程度参数,更新所述无向多边图中多条边各自的信息素浓度。
在一种可能的实施方式中,所述识别模块具体用于:
针对所述两两分表中的第一分表和第二分表,获取所述第一分表包括的各字段的字段名和字段指示信息,以及所述第二分表包括的各字段的字段名和字段指示信息;
在所述第一分表和所述第二分表中确定第一类字段,其中,所述第一类字段为字段名和字段指示信息均相同的字段;
在所述第一分表和所述第二分表中确定第二类字段,其中,所述第二类字段为字段名不同,字段指示信息相同的字段;
其中,所述第一分表和所述第二分表之间的公共字段包括所述第一类字段和所述第二类字段。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面任一项所述的基于图搜索的分表关联方法。
第四方面,本申请提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的基于图搜索的分表关联方法。
本申请提供的基于图搜索的分表关联方法及设备,首先对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段,然后基于两两分表之间的公共字段,构建多个分表对应的无向多边图,无向多边图中包括多个分表各自对应的表节点,以及两两表节点之间的边,两两表节点之间的边用于指示两两节点之间的表关联方式。在构建无向多边图后,基于该无向多边图,即可确定多个分表对应的目标处理方式,目标处理方式用于指示多个分表中待关联的至少两个目标分表、至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;进而基于至少两个目标分表的遍历顺序,以及两两相邻的目标分表之间的目标表关联方式,对至少两个目标分表进行关联处理,生成目标宽表。本申请的方案,无需人工查看各分表中的关联字段,即可通过构建无向多边图来确定目标处理方式并进行分表的关联,提高了分表关联的效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于图搜索的分表关联方法的流程图;
图2为本申请实施例提供的无向多边图构建流程图;
图3为本申请实施例提供的一种无向多边图构建示意图;
图4为本申请实施例提供的确定目标处理方式的流程图;
图5为本申请实施例提供的生成随机权重的示意图;
图6为本申请实施例提供的深度优先遍历操作的示意图;
图7为本申请实施例提供的广度优先遍历操作的示意图;
图8为本申请实施例提供的确定多个第一候选处理方式的流程图;
图9为本申请实施例提供的确定多个第二候选处理方式的流程图;
图10为本申请实施例提供的基于图搜索的分表关联装置的结构示意图;
图11为本申请实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的基于图搜索的分表关联方法的流程图,如图1所示,该方法包括:
S11,对多个分表进行字段识别处理,确定多个分表中、两两分表之间的公共字段。
各分表均有相应的字段,每个字段下有相应的数据。分表中的数据由编码字段和描述字段构成,通常专注于描述某一特定领域或某一类特定对象,如电网数据模型中的变电站表、计量点表等等。
针对多个分表中的两两分表,服务器可以对两两分表中的字段进行识别,确定两两分表之间的公共字段,公共字段可以包括两两分表均包括的字段。
在一种可能的实施方式中,可以通过字段名和字段指示信息来确定两两分表之间的公共字段。
具体的,针对两两分表中的第一分表和第二分表,首先获取第一分表包括的各字段的字段名和字段指示信息,以及第二分表包括的各字段的字段名和字段指示信息。字段名为字段的名称,而字段指示信息用于表示字段指示的含义。字段指示信息相同,则表示字段下的相同数值指向的含义相同,例如相同数值指向同一对象等等。
在获取第一分表和第二分表各自包括的字段的字段名和字段指示信息后,服务器在第一分表和第二分表中确定第一类字段,其中,第一类字段为字段名和字段指示信息均相同的字段。第一类字段的字段指示信息在第一分表和第二分表中均相同,表示第一类字段在第一分表和第二分表中指向的含义相同,且字段名也相同,例如第一分表为变电站表,第二分表为计量点表,变电站表中的“计量点编号”字段和计量点表中的“计量点编号”字段,相同的计量点编号指向的计量点是相同的,因此“计量点编号”字段属于变电站表和计量点表之间的第一类字段。
进一步的,服务器在第一分表和第二分表中确定第二类字段,其中,第二类字段为字段名不同,字段指示信息相同的字段。第二类字段的字段指示信息在第一分表和第二分表中均相同,表示第一类字段在第一分表和第二分表中指向的含义相同,但字段名不相同。例如第一分表为运备表,第二分表为计量设备表,在运备表中的“运行设备编号”字段和计量设备表中的“设备编号”字段,虽然字段名不同,但字段指示信息是相同的,均指向的是运行设备编号,同一运行设备编号在运备表和计量设备表中指向的设备是相同的,因此“运行设备编号”字段和“设备编号”字段属于运备表和计量设备表之间的第二类字段。
其中,第一分表和所述第二分表之间的公共字段包括第一类字段和第二类字段。
S12,基于两两分表之间的公共字段,构建多个分表对应的无向多边图,无向多边图中包括多个分表各自对应的表节点,以及两两表节点之间的边,两两表节点之间的边用于指示两两表节点之间的表关联方式。
在确定了两两分表之间的公共字段后,即可构建多个分表对应的无向多边图。具体的,可以以多个分表中的每个分表作为一个表节点,然后基于两两分表之间的公共字段确定两两分表之间的边,从而通过两两分表之间的边将两两分表对应的表节点进行连接,即可得到无向多边图。其中,基于两两分表之间的公共字段可以确定两两表节点之间的表关联方式,不同的表关联方式对应不同的边。
S13,基于无向多边图,确定多个分表对应的目标处理方式,目标处理方式用于指示多个分表中待关联的至少两个目标分表、至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式。
在得到无向多边图后,可以基于无向多边图来确定多个分表的遍历路径,结合分表之间的边,即可确定目标处理方式。其中,至少两个目标分表为多个分表中待关联的分表,至少两个目标分表的遍历顺序指示了至少两个目标分表的关联顺序,两两相邻的目标分表之间的目标表关联方式指示了两两相邻的目标分表之间如何进行关联。
S14,基于至少两个目标分表的遍历顺序,以及两两相邻的目标分表之间的目标表关联方式,对至少两个目标分表进行关联处理,生成目标宽表。
在得到目标处理方式后,基于目标处理方式中的遍历顺序和目标表关联方式,对至少两个目标分表进行关联,即可得到最终的目标宽表。
在上述任一实施例的基础上,下面结合附图对本申请实施例的方案进行进一步介绍。
首先结合图2对构建无向多边图的实现过程进行介绍。
图2为本申请实施例提供的无向多边图构建流程图,如图2所示,包括:
S21,确定多个预设连接方式,多个预设连接方式包括左连接方式、右连接方式、内连接方式和外连接方式。
以第一分表和第二分表为例,第一分表左连接第二分表后得到的是第一分表的全部内容,第一分表右连接第二分表后得到的是第二分表的全部内容,第一分表内连接第二分表后得到的是第一分表和第二分表共有的内容,第一分表外连接第二分表后得到的是第一分表和第二分表的并集内容。
S22,基于多个预设连接方式和两两分表之间的公共字段,确定两两分表之间的多个表关联方式。
针对任意两两分表中的第一分表和第二分表,在确定了第一分表和第二分表之间的公共字段后,即可对公共字段和多个预设连接方式进行排列组合,得到第一分表和第二分表之间的多个表关联方式。其中,表关联方式是关联字段和连接方式的组合,关联字段即为第一分表和第二分表之间的公共字段,连接方式即包括这多个预设连接方式。例如,若第一分表和第二分表之间的公共字段包括字段A和字段B,则第一分表和第二分表之间存在8个表关联方式,分别是字段A-左连接、字段A-右连接、字段A-内连接、字段A-外连接、字段B-左连接、字段B-右连接、字段B-内连接、字段B-外连接。
S23,以多个分表为表节点,以两两分表之间的多个表关联方式为边,构建无向多边图。
在得到两两分表之间的多个表关联方式后,即可以每个分表为表节点,以两两分表之间的多个表关联方式为边连接两两分表,进而得到无向多边图。
图3为本申请实施例提供的一种无向多边图构建示意图,如图3所示,多个分表包括分表一、分表二、分表三和分表四,因而对应四个表节点。
针对分表一和分表二而言,分表一和分表二之间包括公共字段A,公共字段A为第一类字段,即字段A在分表一和分表二中的字段名和字段指示信息均相同。因此,分表一和分表二之间存在字段A对应的四条边,分别是字段A-左连接、字段A-右连接、字段A-内连接、字段A-外连接,依次对应分表一和分表二之间的四个不同的表关联方式。
针对分表二和分表三而言,分表二和分表三之间包括公共字段B,公共字段B为第一类字段,即字段B在分表二和分表三中的字段名不同(字段B在分表二中的字段名为B’,在分表三中的字段名为B’’),但字段指示信息均相同。因此,分表二和分表三之间存在字段B对应的四条边,分别是字段B’-左连接-字段B’’、字段B’-右连接-字段B’’、字段B’-内连接-字段B’’、字段B’-外连接-字段B’’,依次对应分表二和分表三之间的四个不同的表关联方式。
在上述实施例中,以公共字段A和公共字段B为例对两个分表之间的表关联方式进行了介绍,其中,针对两个分表而言,每个不同的表关联方式均对应两个表节点之间的边。根据两两分表之间的公共字段和多个预设连接方式的组合,即可确定两两分表之间的边,进而通过两两分表之间的边连接两两分表对应的表节点,得到无向多边图。
在得到无向多边图后,即可基于该无向多边图确定多个分表对应的目标处理方式,下面结合图4对该过程进行介绍。
图4为本申请实施例提供的确定目标处理方式的流程图,如图4所示,包括:
S41,对无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式。
执行第i轮裁剪遍历操作,i初始为1,i为大于或等于1的正整数,第i轮裁剪遍历操作包括如下步骤1.1至步骤1.3:
步骤1.1:随机生成无向多边图中的多条边各自的权重。
图5为本申请实施例提供的生成随机权重的示意图,如图5所示,以图3中的无向多边图为例,随机生成多条边各自的权重。在图5中,以权重范围为[0,1]为例,示例了各条边的随机权重值。需要说明的是,权重范围[0,1]仅仅为一种示例,不构成权重范围的设定。
步骤1.2:基于多条边各自的权重,对无向多边图进行裁剪,生成第i轮连通图,其中,第i轮连通图中包括多个分表各自对应的表节点,各表节点至少连接一条边,且两两表节点之间至多通过一条边连接。
对无向多边图进行裁剪的过程,是裁剪无向多边图中的边的过程,保留无向多边图中的多个表节点。需要满足的是裁剪后得到的是连通图,即每个分表对应的表节点至少连接一条边,两两分表之间至多通过一条边连接。
裁剪的过程是基于多条边各自的权重实现的。例如,可以设置阈值T,然后将多条边各自的权重与阈值T进行比较,保留权重大于或等于阈值T的边。若两个表节点之间存在多条权重大于或等于阈值T的边,则可以仅保留两个表节点之间权重值最大的一条边。
裁剪的过程可能会导致部分表节点未被任何边连接,则裁剪后得到的并不是连通图。为了便于后续表节点的遍历,在裁剪后需要检查得到的是否为连通图,若否,则需要进行相应的处理。例如,可以适当降低阈值T,从而重新进行裁剪;例如,可以重新生成多条边的权重,并重新进行裁剪。
针对第i轮裁剪遍历操作,最终需要生成第i轮连通图。如图5所示,以阈值T为0.7为例,基于上述随机生成的权重,可以对无向多边图进行裁剪,得到第i轮连通图,其中,第i轮连通图包括分表一、分表二、分表三、分表四这四个表节点,分表一和分表二之间存在一条权重为0.87的边,分表一和分表三之间存在一条权重为0.78的边,分表二和分表三之间存在一条权重为0.76的边,分表一和分表四之间存在一条权重为0.99的边。满足各表节点至少连接一条边,且两两表节点之间至多通过一条边连接。
步骤1.3:基于第i轮连通图,对多个分表执行遍历操作,得到第i轮连通图对应的多个表节点关联路径,表节点关联路径用于指示多个分表的遍历顺序,以及两两相邻的分表之间的表关联方式。
在本申请实施例中,第i轮连通图中包括多个分表对应的表节点,需要以每个表节点为起始表节点,分表进行遍历操作。
具体的,针对多个分表中的各分表,以该分表为起始表节点,基于第i轮连通图,对多个分表执行深度优先遍历操作,即可得到分表对应的第一类表节点关联路径。
图6为本申请实施例提供的深度优先遍历操作的示意图,如图6所示,以分表一作为起始表节点为例,介绍深度优先遍历操作的流程。
首先,分表一与分表二、分表三、分表四之间均有边,可以任选一个作为下一遍历节点。在图6中,以分表二作为下一遍历节点为例,则在第i轮连通图中,从分表一起始,通过分表一和分表二之间的边遍历到分表二(对应图6中①表示的边),分表二与分表三之间存在边,进而从分表二遍历到分表三(对应图6中②表示的边)。分表三与分表四之间没有边,因此再从分表一遍历到分表四(对应图6中③表示的边)。则得到的分表一对应的第一类表节点关联路径如图6所示。
针对多个分表中的各分表,以该分表为起始表节点,基于第i轮连通图,对多个分表执行广度优先遍历操作,得到该分表对应的第二类表节点关联路径。
图7为本申请实施例提供的广度优先遍历操作的示意图,如图7所示,以分表一作为起始表节点为例,介绍广度优先遍历操作的流程。
分表一与分表二、分表三、分表四之间均有边,可以任选一个作为下一遍历节点。在图7中,以分表二作为下一遍历节点为例,则在第i轮连通图中,从分表一起始,通过分表一和分表二之间的边遍历到分表二(对应图7中①表示的边)。分表一与分表三之间存在边,进而从分表一遍历到分表三(对应图7中②表示的边)。分表一与分表四之间存在边,进而从分表一遍历到分表四(对应图7中③表示的边)。则得到的分表一对应的第二类表节点关联路径如图7所示。
在上述实施例中,结合图6和图7,以某个分表作为起始表节点为例介绍了通过深度优先遍历操作和广度优先遍历操作分别得到该分表对应的第一类表节点关联路径和第二类表节点关联路径。在一些情况下,同一个分表对应的第一类表节点关联路径和第二类表节点关联路径可能是相同的,因此需要对该分表对应的第一类表节点关联路径和第二类表节点关联路径进行去重处理,得到该分表对应的表节点关联路径。
针对多个分表中的各分表,均执行上述操作,即可得到各分表对应的表节点关联路径。其中,第i轮连通图对应的多个表节点关联路径,包括多个分表各自对应的表节点关联路径。
在执行第i轮裁剪遍历操作后,判断是否满足预设条件。其中,预设条件为:无向多边图中不存在前i轮连通图各自对应的多个表节点关联路径均未遍历过的边。
在不满足预设条件的情况下,更新i为i+1,并重复执行第i轮裁剪遍历操作;在满足预设条件的情况下,基于前i轮连通图各自对应的多个表节点关联路径,确定多个第一候选处理方式。
每轮连通图均有对应的多个表节点关联路径,不同的表节点关联路径对应不同的第一候选处理方式。以图6中以分表一为起始表节点的表节点关联路径为例,分表一与分表二之间的表关联方式为字段A-左连接,分表二与分表三之间的表关联方式为字段B-右连接,分表一与分表四之间的表关联方式为字段C-内连接,则对应的第一候选处理方式为分表一通过字段A与分表二左连接,分表二通过字段B与分表三右连接,分表一与分表四通过字段C内连接。
各表节点关联路径均通过类似的方式,即可得到多个第一候选处理方式。
下面结合图8对确定第一候选处理方式的过程进行总结介绍。
图8为本申请实施例提供的确定多个第一候选处理方式的流程图,如图8所示,包括:
S801,随机生成无向多边图中的多条边各自的权重。
S802,设定阈值T,基于阈值T对无向多边图进行裁剪。
S803,检测是否为连通图,若是,则执行S804,若否,则执行S802。
在对无向多边图进行裁剪后的图若不是连通图,则需要重新设置阈值T,并重新进行裁剪,直至裁剪后得到的是连通图。
S804,在连通图中选择一个表节点作为起始表节点。
在选择了起始表节点后即可执行遍历操作。
S805,从起始表节点分别进行深度优先遍历操作和广度优先遍历操作。
S806,判断是否所有表节点均曾作为起始表节点,若是,则执行S807,若否,则执行S804。
多个分表中每个分表对应的表节点均需要作为起始表节点,因此若存在表节点未作为起始表节点进行遍历操作,则需要将其确定为新的起始表节点并执行遍历操作,直至所有表节点均曾作为起始表节点。
S807,判断无向多边图中是否存在未遍历的边,若是,则执行S801,若否,则执行S808。
S807为判断是否满足预设条件的过程,若无向多边图中存在未遍历的边,则需要继续执行上述裁剪遍历操作,否则可以停止裁剪遍历操作。
S808,得到多个第一候选处理方式。
S42,对无向多边图进行多次路径搜索处理,确定多个第二候选处理方式。
首先随机生成多个蚂蚁个体,其中,各蚂蚁个体的起始表节点为无向多边图包括的多个表节点中的一个。
设多个蚂蚁个体的数量为N,多个表节点的数量为M,M和N均为正整数,则将N个蚂蚁个体随机分配至M个表节点。针对任意蚂蚁个体而言,若该蚂蚁个体被分配至某个表节点,则该蚂蚁个体以分配的表节点为起点进行后续的路径搜索过程。
初始时,针对任意两两表节点而言,将该两两表节点之间的多条边均设定相同的信息素浓度。例如某两个表节点之间存在R条边,则每条边的信息素浓度初始均设置为1/R。
针对各蚂蚁个体,执行路径搜索操作,路径搜索操作包括:基于蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定蚂蚁个体下一轮所在的表节点。
针对任意蚂蚁个体而言,该蚂蚁个体当前所在的表节点对应的多条侯选边指的是该蚂蚁个体当前所在的表节点连接的多条边。
具体的,首先随机生成多条候选边各自对应的信息素接受程度参数,然后基于多条候选边各自的信息素浓度和对应的信息素接受程度参数,确定蚂蚁个体遍历多条候选边各自的概率,进而基于该概率,确定该蚂蚁个体下一轮所在的表节点。
其中,针对任意蚂蚁个体而言,该蚂蚁个体遍历多条候选边的概率可以基于下式(1)计算:
(1)
其中,K表示该蚂蚁个体包括的候选边的数量,j表示该蚂蚁个体的第j条侯选边,表示第j条侯选边的信息素浓度,/>为随机生成的第j条侯选边的信息素接受程度参数,/>的大小可以根据需要设定,例如可以设定在[0.5, 1]的范围,/>表示该蚂蚁个体遍历第j条候选边的概率。
在确定了蚂蚁个体下一轮所在的表节点后,判断是否满足路径搜索终止条件。路径搜索终止条件为:多个蚂蚁个体中存在至少一个蚂蚁个体已完成无向多边图中所有表节点的遍历。
在未满足路径搜索终止条件的情况下,更新无向多边图中多条边各自的信息素浓度,并基于更新后的信息素浓度,重复执行路径搜索操作。
具体的,可以基于下述步骤更新无向多边图中多条边各自的信息素浓度:
首先确定多个蚂蚁个体各自的当前遍历路径;
针对各蚂蚁个体,确定该蚂蚁个体的当前遍历路径对应的数据完整度,并基于该蚂蚁个体的当前遍历路径对应的数据完整度,确定该蚂蚁个体针对当前遍历路径中的各条边的信息素浓度影响参数;
最后,基于多个蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数和预设遗忘程度参数,更新无向多边图中多条边各自的信息素浓度。
其中,针对任意蚂蚁个体而言,计算该蚂蚁个体的当前遍历路径对应的数据完整度的计算方式可以参见下述S43的相关介绍。
针对任意蚂蚁个体而言,若该蚂蚁个体遍历了x条边,其当前遍历路径对应的数据完整度为y,则可以确定该蚂蚁个体针对当前遍历路径中的各条边的信息素浓度影响参数均为y/x。针对该蚂蚁个体未遍历的边,则该蚂蚁个体对未遍历的边的信息素浓度影响参数可以设置为预设值,例如设置为0。
针对任意边,其更新后的信息素浓度的具体计算过程可以参见下式(2):
(2)
其中,I_next为更新后的信息素浓度,F为预设遗忘程度参数,F的取值范围例如可以设置为[0, 1],I_old为此处路径搜索前该条边的信息素浓度,即更新前的信息素浓度,为在第i个蚂蚁个体针对当前遍历路径中对该条边的信息素浓度影响参数,N为蚂蚁个体的数量。
在满足路径搜索终止条件的情况下,基于多个蚂蚁个体各自的遍历路径,确定多个第二候选处理方式。
针对各蚂蚁个体,确定该蚂蚁个体的遍历路径,遍历路径包括蚂蚁个体依次遍历的表节点,以及表节点之间的边,因此可以得到该蚂蚁个体对应的第二候选处理方式。由于路径搜索终止条件是存在至少一个蚂蚁个体遍历完所有的表节点,因此存在有的蚂蚁个体未遍历完所有的表节点的情况。针对各蚂蚁个体而言,该蚂蚁个体遍历完的表节点,以及遍历的边,共同构成对应的第二候选处理方式。
下面结合图9对确定第二候选处理方式的过程进行总结介绍。
图9为本申请实施例提供的确定多个第二候选处理方式的流程图,如图9所示,包括:
S901,将N个蚂蚁个体随机分配至M个表节点作为起始表节点。
S902,设置初始状态,即设置两两表节点之间的边的信息素浓度。
初始时,针对任意两两表节点而言,将该两两表节点之间的多条边均设定相同的信息素浓度。
S903,基于各条边的信息素浓度和随机生成的信息素接受程度参数,为所有蚂蚁个体决策下一遍历的表节点。
S904,判断是否有蚂蚁个体已完成所有表节点的遍历,若是,则执行S907,若否,则执行S905。
S905,基于各蚂蚁个体的遍历路径确定对应的关联方案,并分别计算各关联方案的数据完整度,基于数据完整度确定各蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数。
S906,基于预设遗忘程度参数和各蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数,更新各条边的信息素浓度,并执行S903。
S907,基于各蚂蚁个体的遍历路径,生成多个第二候选处理方式。
S43,基于预设核心字段库中包括的核心字段,确定多个第一候选处理方式各自对应的数据完整度,以及多个第二候选处理方式各自对应的数据完整度。
预设核心字段库中包括核心字段,核心字段是多个分表涉及的字段的子集。
在确定了多个第一候选处理方式和多个第二候选处理方式后,可以基于多个第一候选处理方式和多个第二候选处理方式对多个分表进行关联,得到各候选处理方式分别对应的候选宽表。
针对任意候选处理方式对应的候选宽表,其数据完整度=1-整体缺失率,而该候选宽表的整体缺失率为预设核心字段库中的各核心字段库在该候选宽表中的缺失率的乘积。
针对任意核心字段,该核心字段在该候选宽表中的缺失率=候选宽表中该核心字段的有效记录数/max(多个分表中该核心字段的有效记录数,候选宽表中该核心字段的记录数)。
基于上述方式,即可得到各候选处理方式分别对应的候选宽表对应的数据完整度。
S44,基于多个第一候选处理方式各自对应的数据完整度,以及多个第二候选处理方式各自对应的数据完整度,在多个第一候选处理方式和多个第二候选处理方式中,确定目标处理方式。
在得到多个第一候选处理方式各自对应的数据完整度,以及多个第二候选处理方式各自对应的数据完整度,即可将对应的数据完整度最大的候选处理方式,确定为目标处理方式,进而基于目标处理方式对分表进行关联,得到目标宽表即可。
本申请实施例提供的基于图搜索的分表关联方法,首先对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段,然后基于两两分表之间的公共字段,构建多个分表对应的无向多边图,无向多边图中包括多个分表各自对应的表节点,以及两两表节点之间的边,两两表节点之间的边用于指示两两节点之间的表关联方式。在构建无向多边图后,基于该无向多边图,即可确定多个分表对应的目标处理方式,目标处理方式用于指示多个分表中待关联的至少两个目标分表、至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;进而基于至少两个目标分表的遍历顺序,以及两两相邻的目标分表之间的目标表关联方式,对至少两个目标分表进行关联处理,生成目标宽表。本申请实施例的方案,无需人工查看各分表中的关联字段,即可通过构建无向多边图来确定目标处理方式并进行分表的关联,提高了分表关联的效率。
下面对本申请提供的分表关联装置进行描述,下文描述的分表关联装置与上文描述的分表关联方法可相互对应参照。
图10为本申请实施例提供的基于图搜索的分表关联装置的结构示意图,如图10所示,该装置包括:
识别模块101,用于对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;
构建模块102,用于基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;
处理模块103,用于基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;
关联模块104,用于基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表。
在一种可能的实施方式中,所述构建模块102具体用于:
确定多个预设连接方式,所述多个预设连接方式包括左连接方式、右连接方式、内连接方式和外连接方式;
基于所述多个预设连接方式和所述两两分表之间的公共字段,确定所述两两分表之间的多个表关联方式;
以所述多个分表为表节点,以两两分表之间的多个表关联方式为边,构建所述无向多边图。
在一种可能的实施方式中,所述处理模块103具体用于:
对所述无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式;
对所述无向多边图进行多次路径搜索处理,确定多个第二候选处理方式;
基于预设核心字段库中包括的核心字段,确定所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度;
基于所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度,在所述多个第一候选处理方式和所述多个第二候选处理方式中,确定所述目标处理方式。
在一种可能的实施方式中,所述处理模块103具体用于:
执行第i轮裁剪遍历操作,i初始为1,i为大于或等于1的正整数,所述第i轮裁剪遍历操作包括:
随机生成所述无向多边图中的多条边各自的权重;基于所述多条边各自的权重,对所述无向多边图进行裁剪,生成第i轮连通图,其中,所述第i轮连通图中包括所述多个分表各自对应的表节点,各表节点至少连接一条边,且两两表节点之间至多通过一条边连接;基于所述第i轮连通图,对所述多个分表执行遍历操作,得到所述第i轮连通图对应的多个表节点关联路径,所述表节点关联路径用于指示所述多个分表的遍历顺序,以及两两相邻的分表之间的表关联方式;
在不满足预设条件的情况下,更新i为i+1,并重复执行第i轮裁剪遍历操作;在满足所述预设条件的情况下,基于前i轮连通图各自对应的多个表节点关联路径,确定所述多个第一候选处理方式;
其中,所述预设条件为:所述无向多边图中不存在前i轮连通图各自对应的多个表节点关联路径均未遍历过的边。
在一种可能的实施方式中,所述处理模块103具体用于:
针对所述多个分表中的各分表,以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行深度优先遍历操作,得到所述分表对应的第一类表节点关联路径;
以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行广度优先遍历操作,得到所述分表对应的第二类表节点关联路径;
对所述第一类表节点关联路径和所述第二类表节点关联路径进行去重处理,得到所述分表对应的表节点关联路径;
其中,所述第i轮连通图对应的多个表节点关联路径,包括所述多个分表各自对应的表节点关联路径。
在一种可能的实施方式中,所述处理模块103具体用于:
随机生成多个蚂蚁个体,其中,各蚂蚁个体的起始表节点为所述无向多边图包括的多个表节点中的一个;
针对各蚂蚁个体,执行路径搜索操作,所述路径搜索操作包括:基于所述蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定所述蚂蚁个体下一轮所在的表节点;
在未满足路径搜索终止条件的情况下,更新所述无向多边图中多条边各自的信息素浓度,并基于更新后的信息素浓度,重复执行所述路径搜索操作;
在满足所述路径搜索终止条件的情况下,基于所述多个蚂蚁个体各自的遍历路径,确定所述多个第二候选处理方式;
其中,所述路径搜索终止条件为:所述多个蚂蚁个体中存在至少一个蚂蚁个体已完成所述无向多边图中所有表节点的遍历。
在一种可能的实施方式中,所述处理模块103具体用于:
随机生成所述多条候选边各自对应的信息素接受程度参数;
基于所述多条候选边各自的信息素浓度和对应的信息素接受程度参数,确定所述蚂蚁个体遍历所述多条候选边各自的概率;
基于所述概率,确定所述蚂蚁个体下一轮所在的表节点。
在一种可能的实施方式中,所述处理模块103具体用于:
确定所述多个蚂蚁个体各自的当前遍历路径;
针对各蚂蚁个体,确定所述蚂蚁个体的当前遍历路径对应的数据完整度,并基于所述蚂蚁个体的当前遍历路径对应的数据完整度,确定所述蚂蚁个体针对所述当前遍历路径中的各条边的信息素浓度影响参数;
基于所述多个蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数和预设遗忘程度参数,更新所述无向多边图中多条边各自的信息素浓度。
在一种可能的实施方式中,所述识别模块101具体用于:
针对所述两两分表中的第一分表和第二分表,获取所述第一分表包括的各字段的字段名和字段指示信息,以及所述第二分表包括的各字段的字段名和字段指示信息;
在所述第一分表和所述第二分表中确定第一类字段,其中,所述第一类字段为字段名和字段指示信息均相同的字段;
在所述第一分表和所述第二分表中确定第二类字段,其中,所述第二类字段为字段名不同,字段指示信息相同的字段;
其中,所述第一分表和所述第二分表之间的公共字段包括所述第一类字段和所述第二类字段。
图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行基于图搜索的分表关联方法,该方法包括:对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于图搜索的分表关联方法,该方法包括:对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于图搜索的分表关联方法,该方法包括:对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (7)
1.一种基于图搜索的分表关联方法,其特征在于,包括:
对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段;
基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,所述无向多边图中包括所述多个分表各自对应的表节点,以及两两表节点之间的边,所述两两表节点之间的边用于指示所述两两表节点之间的表关联方式;
基于所述无向多边图,确定所述多个分表对应的目标处理方式,所述目标处理方式用于指示所述多个分表中待关联的至少两个目标分表、所述至少两个目标分表的遍历顺序、以及两两相邻的目标分表之间的目标表关联方式;
基于所述至少两个目标分表的遍历顺序,以及所述两两相邻的目标分表之间的目标表关联方式,对所述至少两个目标分表进行关联处理,生成目标宽表;
其中,所述基于所述无向多边图,确定所述多个分表对应的目标处理方式,包括:
对所述无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式;
对所述无向多边图进行多次路径搜索处理,确定多个第二候选处理方式;
基于预设核心字段库中包括的核心字段,确定所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度;
基于所述多个第一候选处理方式各自对应的数据完整度,以及所述多个第二候选处理方式各自对应的数据完整度,在所述多个第一候选处理方式和所述多个第二候选处理方式中,确定所述目标处理方式;
其中,所述对所述无向多边图进行多边图裁剪和表节点遍历处理,确定多个第一候选处理方式,包括:
执行第i轮裁剪遍历操作,i初始为1,i为大于或等于1的正整数,所述第i轮裁剪遍历操作包括:
随机生成所述无向多边图中的多条边各自的权重;基于所述多条边各自的权重,对所述无向多边图进行裁剪,生成第i轮连通图,其中,所述第i轮连通图中包括所述多个分表各自对应的表节点,各表节点至少连接一条边,且两两表节点之间至多通过一条边连接;基于所述第i轮连通图,对所述多个分表执行遍历操作,得到所述第i轮连通图对应的多个表节点关联路径,所述表节点关联路径用于指示所述多个分表的遍历顺序,以及两两相邻的分表之间的表关联方式;
在不满足预设条件的情况下,更新i为i+1,并重复执行第i轮裁剪遍历操作;在满足所述预设条件的情况下,基于前i轮连通图各自对应的多个表节点关联路径,确定所述多个第一候选处理方式;
其中,所述预设条件为:所述无向多边图中不存在前i轮连通图各自对应的多个表节点关联路径均未遍历过的边;
所述对所述无向多边图进行多次路径搜索处理,确定多个第二候选处理方式,包括:
随机生成多个蚂蚁个体,其中,各蚂蚁个体的起始表节点为所述无向多边图包括的多个表节点中的一个;
针对各蚂蚁个体,执行路径搜索操作,所述路径搜索操作包括:基于所述蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定所述蚂蚁个体下一轮所在的表节点;
在未满足路径搜索终止条件的情况下,更新所述无向多边图中多条边各自的信息素浓度,并基于更新后的信息素浓度,重复执行所述路径搜索操作;
在满足所述路径搜索终止条件的情况下,基于所述多个蚂蚁个体各自的遍历路径,确定所述多个第二候选处理方式;
其中,所述路径搜索终止条件为:所述多个蚂蚁个体中存在至少一个蚂蚁个体已完成所述无向多边图中所有表节点的遍历。
2.根据权利要求1所述的方法,其特征在于,所述基于所述两两分表之间的公共字段,构建所述多个分表对应的无向多边图,包括:
确定多个预设连接方式,所述多个预设连接方式包括左连接方式、右连接方式、内连接方式和外连接方式;
基于所述多个预设连接方式和所述两两分表之间的公共字段,确定所述两两分表之间的多个表关联方式;
以所述多个分表为表节点,以两两分表之间的多个表关联方式为边,构建所述无向多边图。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第i轮连通图,对所述多个分表执行遍历操作,得到所述第i轮连通图对应的多个表节点关联路径,包括:
针对所述多个分表中的各分表,以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行深度优先遍历操作,得到所述分表对应的第一类表节点关联路径;
以所述分表为起始表节点,基于所述第i轮连通图,对所述多个分表执行广度优先遍历操作,得到所述分表对应的第二类表节点关联路径;
对所述第一类表节点关联路径和所述第二类表节点关联路径进行去重处理,得到所述分表对应的表节点关联路径;
其中,所述第i轮连通图对应的多个表节点关联路径,包括所述多个分表各自对应的表节点关联路径。
4.根据权利要求1所述的方法,其特征在于,所述基于所述蚂蚁个体当前所在的表节点对应的多条候选边各自的信息素浓度,确定所述蚂蚁个体下一轮所在的表节点,包括:
随机生成所述多条候选边各自对应的信息素接受程度参数;
基于所述多条候选边各自的信息素浓度和对应的信息素接受程度参数,确定所述蚂蚁个体遍历所述多条候选边各自的概率;
基于所述概率,确定所述蚂蚁个体下一轮所在的表节点。
5.根据权利要求1所述的方法,其特征在于,所述更新所述无向多边图中多条边各自的信息素浓度,包括:
确定所述多个蚂蚁个体各自的当前遍历路径;
针对各蚂蚁个体,确定所述蚂蚁个体的当前遍历路径对应的数据完整度,并基于所述蚂蚁个体的当前遍历路径对应的数据完整度,确定所述蚂蚁个体针对所述当前遍历路径中的各条边的信息素浓度影响参数;
基于所述多个蚂蚁个体各自对对应的当前遍历路径中的各条边的信息素浓度影响参数和预设遗忘程度参数,更新所述无向多边图中多条边各自的信息素浓度。
6.根据权利要求1或2所述的方法,其特征在于,所述对多个分表进行字段识别处理,确定所述多个分表中、两两分表之间的公共字段,包括:
针对所述两两分表中的第一分表和第二分表,获取所述第一分表包括的各字段的字段名和字段指示信息,以及所述第二分表包括的各字段的字段名和字段指示信息;
在所述第一分表和所述第二分表中确定第一类字段,其中,所述第一类字段为字段名和字段指示信息均相同的字段;
在所述第一分表和所述第二分表中确定第二类字段,其中,所述第二类字段为字段名不同,字段指示信息相同的字段;
其中,所述第一分表和所述第二分表之间的公共字段包括所述第一类字段和所述第二类字段。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的基于图搜索的分表关联方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410078331.0A CN117591705B (zh) | 2024-01-19 | 2024-01-19 | 基于图搜索的分表关联方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410078331.0A CN117591705B (zh) | 2024-01-19 | 2024-01-19 | 基于图搜索的分表关联方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117591705A CN117591705A (zh) | 2024-02-23 |
CN117591705B true CN117591705B (zh) | 2024-05-24 |
Family
ID=89920561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410078331.0A Active CN117591705B (zh) | 2024-01-19 | 2024-01-19 | 基于图搜索的分表关联方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591705B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202441A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 基于关系型数据库的数据处理方法、装置和系统 |
CN106210024A (zh) * | 2016-07-05 | 2016-12-07 | 重庆邮电大学 | 信息中心网络中一种基于流行度的多态蚁群算法 |
CN112579709A (zh) * | 2020-12-17 | 2021-03-30 | 中国农业银行股份有限公司 | 一种数据表识别方法、装置、存储介质及电子设备 |
KR20230051364A (ko) * | 2021-10-08 | 2023-04-18 | 주식회사 겁쟁이사자들 | 인덱스를 이용한 정보 검색 시스템 및 정보 검색 방법 |
WO2023065691A1 (zh) * | 2021-10-19 | 2023-04-27 | 广州数说故事信息科技有限公司 | 多层关联下的用户信息融合方法、终端、存储介质及系统 |
CN116910283A (zh) * | 2023-05-04 | 2023-10-20 | 中国科学院信息工程研究所 | 一种针对网络行为数据的图存储方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11281851B2 (en) * | 2017-11-19 | 2022-03-22 | Kevin GODDARD | Method and system for gathering and tagging content from documents |
US20220292543A1 (en) * | 2021-03-09 | 2022-09-15 | Alexandra Valentina Henderson | Pop-up retial franchising and complex econmic system |
US20230059083A1 (en) * | 2021-08-23 | 2023-02-23 | Tableau Software, LLC | Generating shortcut paths between related data types |
US20230334014A1 (en) * | 2022-04-13 | 2023-10-19 | Oracle International Corporation | Implementing graph search with in-structure metadata of a graph-organized file system |
-
2024
- 2024-01-19 CN CN202410078331.0A patent/CN117591705B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210024A (zh) * | 2016-07-05 | 2016-12-07 | 重庆邮电大学 | 信息中心网络中一种基于流行度的多态蚁群算法 |
CN106202441A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 基于关系型数据库的数据处理方法、装置和系统 |
CN112579709A (zh) * | 2020-12-17 | 2021-03-30 | 中国农业银行股份有限公司 | 一种数据表识别方法、装置、存储介质及电子设备 |
KR20230051364A (ko) * | 2021-10-08 | 2023-04-18 | 주식회사 겁쟁이사자들 | 인덱스를 이용한 정보 검색 시스템 및 정보 검색 방법 |
WO2023065691A1 (zh) * | 2021-10-19 | 2023-04-27 | 广州数说故事信息科技有限公司 | 多层关联下的用户信息融合方法、终端、存储介质及系统 |
CN116910283A (zh) * | 2023-05-04 | 2023-10-20 | 中国科学院信息工程研究所 | 一种针对网络行为数据的图存储方法及系统 |
Non-Patent Citations (2)
Title |
---|
CCN中基于邻居协作的多态蚁群路由算法;刘期烈;夏远鹏;秦庆伟;冯志宇;吴凤阳;;计算机工程与应用(第24期);全文 * |
面向多目标测试用例优先排序的蚁群算法信息素更新策略;邢行;尚颖;赵瑞莲;李征;;计算机应用;20160910(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117591705A (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113259176B (zh) | 一种告警事件分析方法和装置 | |
CN109981326B (zh) | 家庭宽带感知故障定位的方法及装置 | |
CN110738577A (zh) | 社区发现方法、装置、计算机设备和存储介质 | |
CN109325232A (zh) | 一种基于lda的用户行为异常分析方法、系统及存储介质 | |
CN110333990B (zh) | 数据处理方法以及装置 | |
CN117036060A (zh) | 车险欺诈识别方法、装置和存储介质 | |
CN111736774B (zh) | 冗余数据的处理方法、装置、服务器及存储介质 | |
CN111708921B (zh) | 一种号码选择的方法、装置、设备和存储介质 | |
CN117591705B (zh) | 基于图搜索的分表关联方法及设备 | |
CN113468186B (zh) | 数据表主键关联方法、装置、计算机设备及可读存储介质 | |
JPH0535484A (ja) | 故障診断方法 | |
CN113946651B (zh) | 维修知识推荐方法、装置、电子设备、介质及产品 | |
CN114218500B (zh) | 用户挖掘方法、系统、装置及存储介质 | |
CN115759250A (zh) | 归因分析方法、装置、电子设备以及存储介质 | |
CN115767546A (zh) | 量化节点风险的5g网络安全态势评估方法 | |
CN116128525A (zh) | 一种基于模式前缀共享的多模式图匹配查询方法及装置 | |
CN116860981A (zh) | 潜在客户挖掘方法及装置 | |
CN108959584A (zh) | 一种基于社区结构的处理图数据的方法及装置 | |
CN113946717A (zh) | 一种子图指标特征获得方法、装置、设备及存储介质 | |
CN114281830B (zh) | 多属性条件的规则映射表构建方法、规则匹配方法和装置 | |
CN117828382B (zh) | 基于url的网络接口聚类方法及装置 | |
CN114157648B (zh) | 请求匹配规则生成方法及装置、网站服务器和存储介质 | |
CN113127692B (zh) | 一种数据存储结构、检索方法、数据存储方法及终端设备 | |
CN115858699B (zh) | 数据仓库的构建方法、装置、电子设备和可读存储介质 | |
CN111652750B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |