CN104424240B - 多表关联方法、主服务节点、计算节点及系统 - Google Patents

多表关联方法、主服务节点、计算节点及系统 Download PDF

Info

Publication number
CN104424240B
CN104424240B CN201310378712.2A CN201310378712A CN104424240B CN 104424240 B CN104424240 B CN 104424240B CN 201310378712 A CN201310378712 A CN 201310378712A CN 104424240 B CN104424240 B CN 104424240B
Authority
CN
China
Prior art keywords
data
list item
column
main service
service node
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
Application number
CN201310378712.2A
Other languages
English (en)
Other versions
CN104424240A (zh
Inventor
蔡馥晗
李�浩
武磊
曾伟纪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310378712.2A priority Critical patent/CN104424240B/zh
Publication of CN104424240A publication Critical patent/CN104424240A/zh
Application granted granted Critical
Publication of CN104424240B publication Critical patent/CN104424240B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明实施例公开了一种多表关联方法、主服务节点、计算节点及系统,涉及信息技术领域,可以实现数据量较大的多个表之间的关联,同时,提升了多表关联效率。所述方法包括:首先主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,若所述数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,然后所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。

Description

多表关联方法、主服务节点、计算节点及系统
技术领域
本发明涉及信息技术领域,特别涉及一种多表关联方法、主服务节点、计算节点及系统。
背景技术
目前,随着互联网及信息技术的不断发展,多表关联技术的应用也越来越广泛。多表关联技术具体为通过两个或多个表中相同的某一个数据列作为关联列,从而建立多个表之间的关联。在传统数据库中,多表关联操作适用于进行数据量较小的多个表之间的关联操作,当进行数据量较大的多个表之间的关联操作时,耗时较长,效率较低。
针对在传统数据库中无法进行数据量较大的多个表之间的关联操作问题,现有技术通常通过在Hadoop(分布式系统基础架构)中的任务reduce端或者任务map端实现表关联操作。然而,在reduce端进行多表关联操作时,在函数shuffle阶段要进行大量的数据传输,造成多表关联效率较低;而在map端进行多表关联操作时,由于进行关联操作的多个表中,需要至少有一个表的数据量要小于或等于机器内存容量,从而造成在map端进行的多表关联操作,不适用于进行数据量较大的多个表之间的关联。
发明内容
本发明实施例提供一种多表关联方法、主服务节点、计算节点及系统。可以适用于进行数据量较大的多个表之间的关联,同时,提升了多表关联效率。
本发明实施例采用的技术方案为:
第一方面,提供一种多表关联方法,包括:
主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联;
若所述第一表项的数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值;
所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。
第二方面,提供一种多表关联方法,包括:
计算节点从主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述主服务节点保存有每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述每一个数据组为所述主服务节点根据所述第一表项的关联数据列中的数据进行划分的;
所述计算节点按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据;
所述计算节点判断所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同;
若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,所述计算节点建立所述当前行数据与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
第三方面,提供一种主服务节点,包括:
获取单元,用于获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联;
划分单元,若所述获取单元获取的所述第一表项的数据量大于预设内存加载阈值,则将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值;
保存单元,用于保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。
第四方面,提供一种计算节点,包括:
获取单元,用于从主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述主服务节点保存有每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述每一个数据组为所述主服务节点根据所述第一表项的关联数据列中的数据进行划分的;
获取单元,还用于按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据;
判断单元,用于判断所述获取单元获取的所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同;
建立单元,用于若所述判断单元判断所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
第五方面,提供一种多表关联系统,包括:主服务节点和至少一个计算节点;
所述主服务节点,用于获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联;
所述主服务节点,还用于若所述第一表项的数据量大于预设内存加载阈值,则将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值;
所述主服务节点,还用于保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据;
所述计算节点,用于从所述主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据;
所述计算节点,还用于按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据;
所述计算节点,还用于若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
本发明实施例提供的多表关联方法、主服务节点、计算节点及系统,首先主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,若所述第一表项的数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,然后所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。与目前通过在Hadoop(分布式系统基础架构)中的reduce端或者map端实现表关联操作相比,本发明实施例通过将数据量较大的表项预先进行分片处理,可以实现数据量较大的多个表之间的关联,同时,提升了多表关联效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种多表关联方法流程图;
图2为本发明实施例提供的另一种多表关联方法流程图;
图3为本发明实施例提供的主服务节点结构示意图;
图4为本发明实施例提供的计算节点结构示意图;
图5为本发明实施例提供的多表关联系统示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
本发明实施例提供一种多表关联方法,如图1所示,所述方法包括:
101、主服务节点获取第一表项的数据量和所述第一表项中的关联数据列。
其中,所述关联数据列用于与第二表项进行关联。第一表项和第二表项具体可以为维表、数据表等,通过本发明实施例提供的方法可以进行一个维表与一个或多个数据表之间的关联操作,本发明实施例不做限定。对于本发明实施例,关联数据列可以为需要进行关联的多个表中都包含的某一列数据,通过该关联数据列,可以将多个表中的其他数据列中的数据进行关联。例如,需要关联的维表和数据表中都包含的关联数据列为用户编号,维表中的其他数据列中某一个数据列的数据为不同用户年龄段,数据表中的其他数据列中某一个数据列的数据为不同用户的上网时间信息,则此时通过用户编号这个关联数据列,就可以将维表和数据表进行关联,从而使得用户只需要输入用户编号,就可以查询到该用户编号对应的用户年龄段和对应的上网时间信息统计。
102、主服务节点判断第一表项的数据量是否大于预设内存加载阈值。
103a、若所述数据量大于预设内存加载阈值,则主服务节点将所述关联数据列中的数据划分为多个数据组。
其中,预设内存加载阈值具体可以根据进行多表关联操作的各个计算节点的内存容量进行设定,本发明实施例不做限定。所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值。通过将每一个数据组中的数据和与该数据对应的所述第一表项的其他数据列的数据量之和,配置小于所述预设内存加载阈值,可以保证进行表关联操作的每一个计算节点的内存容量,都可以加载并高效处理每一个数据组中的数据和与该数据对应的所述第一表项的其他数据列的数据。
具体地,所述主服务节点可以根据所述第一表项的数据量,将所述关联数据列中的数据划分为多个数据组。例如,关联数据列中的数据为用户编号,具体包括:编号1、编号2、编号3、编号4,若第一表项的数据量较大时,可以将用户编号划分为4个数据组,每一个数据组中包含一个用户编号,以保证每个数据组的数据和与该数据对应的所述第一表项的其他数据列的数据量之和,小于预设内存加载阈值;若第一表项的数据量较小,但是大于预设内存加载阈值时,可以将用户编号划分为2个数据组,每一个数据组中包含两个用户编号,以保证每个数据组的数据和与各个数据分别对应的所述第一表项的其他数据列的数据量之和,小于预设内存加载阈值的同时,节约系统资源。
可选地,所述主服务节点还可以根据所述关联数据列中各个数据分别对应的统计热度值,将所述关联数据列中的数据划分为多个数据组。例如,关联数据列中的数据为用户编号,具体包括:编号1、编号2、编号3、编号4、编号5、编号6,由于数字含义的不同,编号6对应的统计热度值较高,即对应的第一表项的其他数据列的数据量较大,而编号4、编号2对应的统计热度值较低,则此时可以将编号6单独划分在一个数据组,而将编号2和编号4划分在一个数据组中,从而保证均衡分配进行多表关联的各个计算节点需要处理的数据量,提升了多表关联的效率。
对于本发明实施例,对关联数据列中的数据划分为多个数据组的方式,即对数据量较大的第一表项的分片预处理的方式包括但不限于上述两种方式。
104a、主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据。
例如,第一表项的关联数据列为用户ID,第一表项的其他数据列包含的数据分别为性别信息、年龄信息、省份信息等,则此时每一个数据组中的数据为一个或多个用户ID,该数据组对应的第一表项的其他数据列的数据为该数据组中的一个或多个用户ID分别对应的性别信息、年龄信息、省份信息。
进一步地,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作.
对于本发明实施例中计算节点的个数可以根据实际需求进行配置,具体可以大于、小于、或者等于上述数据组的个数,本发明实施例不做限定。当计算节点个数大于数据组个数时,可以从计算节点中选择负载较低的与数据组个数等量的多个计算节点分别处理一个数据组的数据和与该数据对应的表项中其他数据列的数据;当计算节点个数等于数据组个数时,每一个计算节点可以分别处理一个数据组的数据和与该数据对应的表项中其他数据列的数据;当计算节点个数小于数据组个数时,可以从计算节点中选择负载较低的计算节点进行多个数据组的数据和与该数据对应的表项中其他数据列的数据的处理,本发明实施例不做限定。
与步骤103a并列的步骤103b、若所述数据量小于或等于所述预设内存加载阈值,则所述主服务节点进行所述第一表项与所述第二表项的表关联操作。
对于本发明实施例,当第一表项的数据量小于或等于所述预设内存加载阈值时,可以直接进行第一表项与所述第二表项的表关联操作,而不再对第一表项进行分片预处理操作,从而可以进一步提升多表关联操作的效率。
本发明实施例提供的一种多表关联方法,首先主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,若所述数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,然后所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。与目前通过在Hadoop中的reduce端或者map端实现表关联操作相比,本发明实施例通过将数据量较大的表项预先进行分片处理,可以实现数据量较大的多个表之间的关联,同时,提升了多表关联效率。
进一步地,本发明实施例提供另一种多表关联方法,如图2所示,所述方法包括:
201、计算节点从主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据。
其中,所述主服务节点保存有每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述每一个数据组为所述主服务节点根据所述第一表项的关联数据列中的数据进行划分的。
对于本发明实施例中计算节点的个数可以根据实际需求进行配置,具体可以大于、小于、或者等于上述数据组的个数,本发明实施例不做限定。当计算节点个数大于数据组个数时,可以从计算节点中选择负载较低的与数据组个数等量的多个计算节点分别处理一个数据组的数据和与该数据对应的表项中其他数据列的数据;当计算节点个数等于数据组个数时,每一个计算节点可以分别处理一个数据组的数据和与该数据对应的表项中其他数据列的数据;当计算节点个数小于数据组个数时,可以从计算节点中选择负载较低的计算节点进行多个数据组的数据和与该数据对应的表项中其他数据列的数据的处理,本发明实施例不做限定。
202、计算节点按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据。
203、计算节点判断所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同。若相同则跳转到步骤204,不同则跳转到步骤205。
204、若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,计算节点建立所述当前行数据与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
例如,用于关联维表和数据表的关联列数据为用户编号,此时通过将与用户编号对应的维表中的用户性别、用户年龄等数据,和与用户编号对应的数据表中的用户上网时间信息、用户常用应用程序的统计信息等建立对应关系,可以使得用户只需要输入一个用户编号,即可获取到维表和数据表中与该用户编号对应的性别信息、年龄信息、上网时间信息、和用户常用应用程序的统计信息等。
可选地,若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据不相同,则不对当前行数据进行处理,并跳转到步骤205。
205、计算节点判断所述第二表项的数据中是否存在未获取到的数据。若存在,则跳转到步骤202,若不存在,则跳转到步骤206。
对于本发明实施例,计算节点具体可以根据获取的当前行数据中存在结束符标记,确认第二表项的数据中不存在未获取到的数据;或者计算节点还可以根据本次当前行数据获取操作未获取到数据,确认不存在未获取到的数据,本发明实施例不做限定。
206、若所述第二表项的数据中不存在未获取到的数据,所述计算节点终止再次获取所述第二表项的数据。
对于本发明实施例,当第二表项的数据中不存在未获取到的数据时,说明此时第二表项的数据已经全部与第一表项中的数据进行了关联操作,计算节点终止再次获取所述第二表项的数据,可以避免计算节点重复进行数据获取操作。
本发明实施例提供的另一种多表关联方法,首先主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,若所述数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,然后所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。与目前通过在Hadoop中的reduce端或者map端实现表关联操作相比,本发明实施例通过将数据量较大的表项预先进行分片处理,可以实现数据量较大的多个表之间的关联,同时,提升了多表关联效率。
进一步地,作为图1所示方法的具体实现,本发明实施例提供一种主服务节点,所述主服务节点可以为终端设备,例如服务器,如图3所示,包括:获取单元31、划分单元32、保存单元33、关联单元34。
获取单元31,可以用于获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联。
划分单元32,可以用于若所述获取单元31获取的所述数据量大于预设内存加载阈值,则将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值。
保存单元33,可以用于保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。
划分单元32,可以用于根据所述第一表项的数据量,将所述关联数据列中的数据划分为多个数据组,和/或
划分单元32,可以用于根据所述关联数据列中各个数据分别对应的统计热度值,将所述关联数据列中的数据划分为多个数据组。
关联单元34,可以用于若所述数据量小于或等于所述预设内存加载阈值,则进行所述第一表项与所述第二表项的表关联操作。
需要说明的是,本发明实施例提供的主服务节点所涉及各功能单元的其他相应描述,可以参考图1中的对应描述,在此不再赘述。
再进一步地,作为图2所示方法的具体实现,本发明实施例提供一种计算节点,所述计算节点可以为终端设备,例如计算机,如图4所示,所述计算节点包括:获取单元41、判断单元42、建立单元43、终止单元44。
获取单元41,可以用于从主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述主服务节点保存有每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述每一个数据组为所述主服务节点根据所述第一表项的关联数据列中的数据进行划分的。
获取单元41,还可以用于按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据。
判断单元42,用于判断所述获取单元41获取的所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同。
建立单元43,可以用于若所述判断单元42判断所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
判断单元42,还可以用于判断所述第二表项的数据中是否存在未获取到的数据。
终止单元44,可以用于若所述判断单元42判断所述第二表项的数据中不存在未获取到的数据,终止再次获取所述第二表项的数据。
判断单元42,还可以用于若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据不相同,则所述计算节点判断所述第二表项的数据中是否存在未获取到的数据。
需要说明的是,本发明实施例提供的计算节点所涉及各功能单元的其他相应描述,可以参考图2中的对应描述,在此不再赘述。
本发明实施例提供的装置,首先主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,若所述数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,然后所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。与目前通过在Hadoop中的任务reduce端或者任务map端实现表关联操作相比,本发明实施例通过将数据量较大的表项预先进行分片处理,可以实现进行数据量较大的多个表之间的关联,同时,提升了多表关联效率。
再进一步地,作为上述各个实施例的具体实现,本发明实施例提供一种多表关联系统,如图5所示,所述多表关联系统可以包括:主服务节点51和至少一个计算节点52。
主服务节点51,可以用于获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联。
主服务节点51,还可以用于若所述数据量大于预设内存加载阈值,则将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量,小于所述预设内存加载阈值。
主服务节点51,还可以用于保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据。
计算节点52,可以用于从所述主服务节点51中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据。
计算节点52,还可以用于按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据。
计算节点52,还可以用于若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
本发明实施例提供的多表关联系统所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
本发明实施例提供的多表关联系统,首先主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,若所述数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,然后所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。与目前通过在Hadoop中的任务reduce端或者任务map端实现表关联操作相比,本发明实施例通过将数据量较大的表项预先进行分片处理,可以实现数据量较大的多个表之间的关联,同时,提升了多表关联效率。
本发明实施例提供的主服务节点、计算节点和多表关联系统可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的多表关联方法、主服务节点、计算节点及系统可以适用于信息技术领域,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (13)

1.一种多表关联方法,其特征在于,包括:
主服务节点获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联;
若所述第一表项的数据量大于预设内存加载阈值,则所述主服务节点将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值;
所述主服务节点保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和与所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。
2.根据权利要求1所述的多表关联方法,其特征在于,所述主服务节点将所述关联数据列中的数据划分为多个数据组的步骤包括:
所述主服务节点根据所述第一表项的数据量,将所述关联数据列中的数据划分为多个数据组;和/或
所述主服务节点根据所述关联数据列中各个数据分别对应的统计热度值,将所述关联数据列中的数据划分为多个数据组。
3.根据权利要求1所述的多表关联方法,其特征在于,所述主服务节点获取第一表项的数据量的步骤之后,还包括:
若所述第一表项的数据量小于或等于所述预设内存加载阈值,则所述主服务节点进行所述第一表项与所述第二表项的表关联操作。
4.一种多表关联方法,其特征在于,包括:
计算节点从主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的第一表项的其他数据列的数据,所述主服务节点保存有每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述每一个数据组为所述主服务节点根据所述第一表项的关联数据列中的数据进行划分的;
所述计算节点按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据;
所述计算节点判断所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同;
若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,所述计算节点建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
5.根据权利要求4所述的多表关联方法,其特征在于,所述计算节点建立所述当前行数据和与所述数据对应的所述第一表项中其他数据列的数据之间的对应关系的步骤之后,还包括:
所述计算节点判断所述第二表项的数据中是否存在未获取到的数据;
若所述第二表项的数据中不存在未获取到的数据,所述计算节点终止再次获取所述第二表项的数据。
6.根据权利要求4所述的多表关联方法,其特征在于,所述计算节点判断所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同的步骤之后,还包括:
若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据不相同,则所述计算节点判断所述第二表项的数据中是否存在未获取到的数据。
7.一种主服务节点,所述主服务节点为终端设备,其特征在于,包括:
获取单元,用于获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联;
划分单元,若所述获取单元获取的所述第一表项的数据量大于预设内存加载阈值,则将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值;
保存单元,用于保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,以使得至少一个计算节点根据分别对应的数据组中的数据和与所述数据对应的其他数据列的数据,进行所述第一表项与所述第二表项的表关联操作。
8.根据权利要求7所述的主服务节点,其特征在于,
所述划分单元,用于根据所述第一表项的数据量,将所述关联数据列中的数据划分为多个数据组;和/或
所述划分单元,用于根据所述关联数据列中各个数据分别对应的统计热度值,将所述关联数据列中的数据划分为多个数据组。
9.根据权利要求7所述的主服务节点,其特征在于,所述主服务节点还包括:
关联单元,用于若所述第一表项的数据量小于或等于所述预设内存加载阈值,则进行所述第一表项与所述第二表项的表关联操作。
10.一种计算节点,所述计算节点为终端设备,其特征在于,包括:
获取单元,用于从主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的第一表项的其他数据列的数据,所述主服务节点保存有每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据,所述每一个数据组为所述主服务节点根据所述第一表项的关联数据列中的数据进行划分的;
获取单元,还用于按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据;
判断单元,用于判断所述获取单元获取的所述当前行数据对应的所述第二表项的关联数据列中的数据,是否与所述计算节点对应的所述数据组中的数据相同;
建立单元,用于若所述判断单元判断所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
11.根据权利要求10所述的计算节点,其特征在于,所述计算节点还包括:终止单元;
所述判断单元,还用于判断所述第二表项的数据中是否存在未获取到的数据;
所述终止单元,用于若所述判断单元判断所述第二表项的数据中不存在未获取到的数据,终止再次获取所述第二表项的数据。
12.根据权利要求10所述的计算节点,其特征在于,
所述判断单元,还用于若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据不相同,则所述计算节点判断所述第二表项的数据中是否存在未获取到的数据。
13.一种多表关联系统,其特征在于,包括:主服务节点和至少一个计算节点;
所述主服务节点,用于获取第一表项的数据量和所述第一表项中的关联数据列,所述关联数据列用于与第二表项进行关联;
所述主服务节点,还用于若所述第一表项的数据量大于预设内存加载阈值,则将所述关联数据列中的数据划分为多个数据组,所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据量之和,小于所述预设内存加载阈值;
所述主服务节点,还用于保存所述每一个数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据;
所述计算节点,用于从所述主服务节点中获取与所述计算节点对应的数据组中的数据和与所述数据对应的所述第一表项的其他数据列的数据;
所述计算节点,还用于按行获取第二表项的数据,并且获取当前行数据对应的所述第二表项的关联数据列中的数据;
所述计算节点,还用于若所述当前行数据对应的所述第二表项的关联数据列中的数据与所述数据组中的数据相同,建立所述当前行数据和与所述数据组中的数据对应的所述第一表项中其他数据列的数据之间的对应关系。
CN201310378712.2A 2013-08-27 2013-08-27 多表关联方法、主服务节点、计算节点及系统 Active CN104424240B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310378712.2A CN104424240B (zh) 2013-08-27 2013-08-27 多表关联方法、主服务节点、计算节点及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310378712.2A CN104424240B (zh) 2013-08-27 2013-08-27 多表关联方法、主服务节点、计算节点及系统

Publications (2)

Publication Number Publication Date
CN104424240A CN104424240A (zh) 2015-03-18
CN104424240B true CN104424240B (zh) 2019-06-14

Family

ID=52973231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310378712.2A Active CN104424240B (zh) 2013-08-27 2013-08-27 多表关联方法、主服务节点、计算节点及系统

Country Status (1)

Country Link
CN (1) CN104424240B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468740B (zh) * 2015-11-24 2019-03-08 网易(杭州)网络有限公司 一种游戏玩家数据的存储、分析方法及装置
CN107153643B (zh) * 2016-03-02 2021-02-19 阿里巴巴集团控股有限公司 数据表连接方法及装置
CN107330796B (zh) * 2016-04-29 2021-01-29 泰康保险集团股份有限公司 组件化生成表单的数据处理方法及系统
CN106506665B (zh) * 2016-11-18 2019-09-24 郑州云海信息技术有限公司 一种分布式视频监控系统的负载均衡方法及平台
CN111124682B (zh) * 2019-12-24 2021-01-08 珠海大横琴科技发展有限公司 一种弹性资源分配方法、装置、电子设备和存储介质
CN110851452B (zh) * 2020-01-16 2020-09-04 医渡云(北京)技术有限公司 数据表连接处理方法及装置、电子设备和存储介质
CN112632116B (zh) * 2020-12-24 2022-06-24 苏州浪潮智能科技有限公司 一种k-db数据库多节点集群调度的方法、系统、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218404A (zh) * 2013-03-20 2013-07-24 华中科技大学 一种基于关联特性的多维元数据管理方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332389B2 (en) * 2009-12-04 2012-12-11 International Business Machines Corporation Join order for a database query
US20120123981A1 (en) * 2010-08-04 2012-05-17 Graves Spencer B Software to facilitate design, data flow management, data analysis and decision support in structural health monitoring systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218404A (zh) * 2013-03-20 2013-07-24 华中科技大学 一种基于关联特性的多维元数据管理方法和系统

Also Published As

Publication number Publication date
CN104424240A (zh) 2015-03-18

Similar Documents

Publication Publication Date Title
CN104424240B (zh) 多表关联方法、主服务节点、计算节点及系统
US11032391B2 (en) Social network grouping method and system, and computer storage medium
CN107872528B (zh) 消息推送方法及装置
CN103309738B (zh) 用户作业调度方法及装置
Sun et al. The cost-efficient deployment of replica servers in virtual content distribution networks for data fusion
CN103365842B (zh) 一种页面浏览推荐方法及装置
CN106533826A (zh) 网络状态的探测方法及系统
Narayanam et al. Topologies of strategically formed social networks based on a generic value function—Allocation rule model
Xue et al. Two exact algorithms for the traveling umpire problem
CN109191135A (zh) 基于区块链的交易重试方法、装置、设备及可读存储介质
CN105471770B (zh) 一种基于多核处理器的报文处理方法及装置
CN106131134B (zh) 一种消息内容合并去重方法及系统
CN104320458A (zh) 基于Domino和Nginx服务器实现的信息化系统
KR101509888B1 (ko) 소셜 네트워크에서의 메시지 전파 방법 및 그 장치
CN106157150B (zh) 信息处理方法与信息处理装置
CN105335362B (zh) 实时数据的处理方法及系统、即时处理系统
CN104852964A (zh) 一种多功能服务器调度方法
CN101639856B (zh) 检测互联网信息传播的网页关联评价装置
Zhang et al. A hybrid global optimization algorithm and its application to parameter estimation problems
CN104618329B (zh) 数据处理方法及装置
CN111131512B (zh) 设备信息的处理方法、装置、存储介质及处理器
US9460206B2 (en) Active platform system
CN105812442B (zh) 一种合并数据文件的方法和ftp转发器
CN105874491B (zh) 用于被动分布式定性集群知识的平台设备
CN109951507B (zh) 数据传输方法、系统、节点及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190805

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

TR01 Transfer of patent right