CN105264521B - 一种数据表的导入方法、数据管理器以及服务器 - Google Patents

一种数据表的导入方法、数据管理器以及服务器 Download PDF

Info

Publication number
CN105264521B
CN105264521B CN201480000196.2A CN201480000196A CN105264521B CN 105264521 B CN105264521 B CN 105264521B CN 201480000196 A CN201480000196 A CN 201480000196A CN 105264521 B CN105264521 B CN 105264521B
Authority
CN
China
Prior art keywords
data
tables
server
management system
sent
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.)
Expired - Fee Related
Application number
CN201480000196.2A
Other languages
English (en)
Other versions
CN105264521A (zh
Inventor
黄坚坚
王玉虎
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105264521A publication Critical patent/CN105264521A/zh
Application granted granted Critical
Publication of CN105264521B publication Critical patent/CN105264521B/zh
Expired - Fee Related 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

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)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种数据表的导入方法、数据管理器以及服务器,该方法包括:数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据分布式数据库中的N个服务器,将第1张数据表的数据分成N份并分别发送给N个服务器;按照导入次序,并分别取i值为2至M的整数,数据管理器依次对M张待导入数据表中的第i张数据表执行至少一次下述步骤:数据管理器读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器;数据管理器接收N个服务器将至少部分外键与第i‑1张数据表的主键进行连接处理后而获得的N个处理结果;数据管理器将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器。

Description

一种数据表的导入方法、数据管理器以及服务器
技术领域
本发明涉及数据处理领域,特别涉及一种数据表的导入方法、数据管理器以及服务器。
背景技术
随着现代生活中大量数据的产生以及科技的发展,分布式数据库以其能够高效处理大量数据的优点开始在各个领域中被广泛使用。
分布式数据库可以包括一个或者多个客户端(Client)和多个服务器(Mserver),其中,客户端负责与用户的交互,例如接收用户的查询、修改或者导入指令等等,服务器负责处理导入到数据库中的数据,如存储以及修改数据库中表的相关信息等等,为了方便地将数据导入到分布式数据库中,通常会使用数据管理器(Data Manager),在实际应用中,一个或者多个客户端与数据管理器相连,数据管理器分别与多个服务器分别相连,数据管理器负责处理客户端发送的各种指令、数据管理以及与服务器之间的数据传送,从而将用户希望导入到分布式数据库中的数据导入到服务器中。
以将多张具有关联关系的数据表导入到上述所介绍的分布式数据库中为例,该方法包括:
S1:客户端接收用户输入的导入命令,并将该导入命令发送给数据管理器;
S2:数据管理器向服务器请求目标数据表的信息,主要是获取数据表和数据表之间的关联关系;
S3:服务器向数据管理器返回数据表和数据表的关联关系;
S4:数据管理器根据返回的关联关系,确定数据表的导入次序,并获取导入次序为1的数据表、也即第一张数据表的数据;
S5:数据管理器将第一张数据表的主键记录下来,并记录其对应所在的服务器,即建立主键与服务器的映射表;
S6:数据管理器将第一张数据表均匀分割,并分发给服务器;
S7:数据管理器按照导入次序,获取下一张数据表的数据;
S8:数据管理器通过该下一张数据表的外键与上张已导入表的主键与服务器的映射表,确定要导入表该行所在服务器,然后将要导入表的该行传给相应的服务器,然后建立该下一张数据表的主键与服务器的映射表。
重复S7-S8,直到所有数据表都导入到分布式数据库中。
可以看出,在将数据表导入到分布式数据库的过程中,数据管理器需要计算的数据量特别多,例如步骤S5中“建立数据表的主键与服务器的映射表”,再如步骤S7中“通过该下一张数据表的外键与上张已导入表的主键与服务器的映射表,确定要导入表该行所在服务器,然后将要导入表的该行传给相应的服务器,然后建立该下一张数据表的主键与服务器的映射表”等等,而服务器要处理的数据量较小,也就是说,在将数据表导入分布式数据库的过程中,数据管理器大部分时间会处于服务状态(忙碌状态),而服务器在大部分时间都处于等待状态(空闲状态),因此,现有技术中在将数据表导入到分布式数据库的过程中,存在数据管理器压力过大,资源利用率较低的技术问题。
发明内容
本发明提供一种数据表的导入方法、数据管理器以及服务器,用以解决现有技术中在将数据表导入到分布式数据库的过程中,存在的数据管理器压力过大,资源利用率较低的技术问题。
第一方面,本发明提供一种数据表的导入方法,包括:
数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据所述分布式数据库中的N个服务器,将所述第1张数据表的数据分成N份并分别发送给所述N个服务器,其中M和N为大于等于2的整数;
按照所述导入次序,并分别取i值为2至M的整数,所述数据管理器依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
所述数据管理器读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器;
所述数据管理器接收所述N个服务器将所述至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果;
所述数据管理器将所述第i张数据表中与所述N个处理结果对应的对应数据分别发送给所述N个服务器。
在第一方面的第一种可能的实现方式中,在所述数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据之前,所述方法还包括:
所述数据管理器向所述N个服务器中任一服务器发送用于获得所述M张待导入数据表的关联关系的请求信息;
所述数据管理器接收所述任一服务器根据所述请求信息而发送的所述关联关系,并基于所述关联关系确定所述导入次序。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,在所述数据管理器读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器之前,所述方法还包括:
所述数据管理器根据所述第i张数据表的数据量,确定对所述第i张数据执行所述下述步骤的次数。
第二方面,本发明还提供一种数据表的导入方法,包括:
分布式数据库中的N个服务器中的第一服务器接收所述分布式数据库的数据管理器发送的第1张数据表的1份数据,所述1份数据为所述数据管理器根据所述N个服务器将所述第1张数据表的数据分为N份数据中的1份,所述第1张数据表为M张待导入数据表中的导入次序为1的数据表,其中M和N为大于等于2的整数;
按照所述导入次序,并分别取i值为2至M的整数,所述第一服务器依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
所述第一服务器接收所述数据管理器发送的第i张数据表的至少部分外键;
所述第一服务器将所述至少部分外键与第i-1张数据表的主键进行连接处理,并将第一处理结果发送给所述数据管理器;
所述第一服务器接收所述数据管理器根据所述第一处理结果发送的第i张数据表中与所述第一处理结果对应的数据。
第三方面,本发明还提供一种数据管理器,包括:
第一处理单元,用于读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据所述分布式数据库中的N个服务器,将所述第1张数据表的数据分成N份并分别发送给所述N个服务器,其中M和N为大于等于2的整数;
第二处理单元,用于按照所述导入次序,并分别取i值为2至M的整数,依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器;
接收所述N个服务器将所述至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果;
将所述第i张数据表中与所述N个处理结果对应的数据分别发送给所述N个服务器。
在第三方面的第一种可能的实现方式中,所述导入装置还包括确定单元,用于在所述分布式数据库的数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据之前,向所述N个服务器发送用于获得所述M张待导入数据表的关联关系的请求信息,并接收所述N个服务器根据所述请求信息发送的所述关联关系,并基于所述关联关系确定所述导入次序。
结合第三方面或第一种可能的实现方式,在第二种可能的实现方式中,所述第二处理单元还用于在所述数据管理器读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器之前,根据所述第i张数据表的数据量,确定对所述第i张数据执行所述下述步骤的次数。
第四方面,本发明还提供一种服务器,包括:
第一处理单元,用接收所述数据管理器发送的第1张数据表的1份数据,所述1份数据为所述数据管理器根据所述分布式数据库中的N个服务器将所述第1张数据表的数据分为N份数据中的1份,所述第1张数据表为M张待导入数据表中导入次序为1的数据表,其中M和N为大于等于2的整数;
第二处理单元,用于按照所述导入次序,i分别取2至M的整数,依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
接收所述数据管理器发送的第i张数据表的至少部分外键;
将所述至少部分外键与第i-1张数据表的主键进行连接处理,并将第一处理结果发送给所述数据管理器;
接收所述数据管理器根据所述第一处理结果发送的第i张数据表中与所述第一处理结果对应的数据。
本发明有益效果如下:
1、在将数据表导入到分布式数据库的过程中,由于采用了将待导入数据表中第i张数据表的至少部分外键发送给服务器,并接收服务器进行将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果,并将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器的技术方案,将一部分由数据管理器处理的工作转交给了服务器进行处理,避免了在数据管理器处于服务状态时服务器处于等待状态的情形,所以减轻了数据管理器的压力,提高了在将数据表导入到分布式数据库的过程中,分布式数据库的资源利用率,并且,由于分布式数据库的服务器同时参与计算,每个服务器所计算的数据量减少,与现有技术中由数据管理器进行计算相比,减少了计算的时间,从而提高了数据表的导入速度。
2、在导入第i张数据表的过程中,由于采用了读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器,并接收N个服务器将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果,并将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器的技术方案,在第i张数据表的数据量很大时,可以分多次读取第i张数据表的数据,每次读取第i张数据表的部分数据,直到整张数据表的导入,所以减少了对数据管理器的内存的容量需求。
3、由于不需要建立主键与服务器的映射表,所以节省了数据管理器在导入数据时的内存资源,减少了对数据管理器的内存的容量需求。
附图说明
图1为本发明实施例提供的本发明实施例提供的数据表的导入方法的流程图;
图2为本发明实施例提供的分布式数据库的硬件架构图;
图3为本发明实施例提供的具有关联关系的3张数据表的示意图;
图4为本发明实施例提供的将表C的数据发送给第一服务器2031和第二服务器2032的示意图;
图5为本发明实施例提供的将至少部分外键发送给第一服务器2031和第二服务器2032的示意图;
图6为本发明实施例提供的服务器将该至少部分外键与各自存储的第i-1张数据表的主键进行连接处理的示意图;
图7为本发明实施例提供的将表B中与两个处理结果对应的对应数据发送给第一服务器2031和第二服务器2032的示意图;
图8为本发明实施例提供的数据管理器的功能模块图;
图9为本发明实施例提供的服务器的功能模块图。
具体实施方式
为了解决现有技术中出现的在将数据表导入到分布式数据库的过程中,存在的数据管理器压力过大,资源利用率较低的技术问题,本发明实施例提出了一种数据表的导入方法、数据管理器以及服务器。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本发明优选的实施方式进行详细说明。
本发明实施例提供一种数据表的导入方法,请参考图1,图1是本发明实施例提供的数据表的导入方法的流程图,如图1所示,该方法包括:
S1:数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据分布式数据库中的N个服务器,将第1张数据表的数据分成N份并分别发送给N个服务器,其中M和N为大于等于2的整数;
按照导入次序,并分别取i值为2至M的整数,数据管理器依次对M张待导入数据表中的第i张数据表执行至少一次下述步骤:
S2:数据管理器读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器;
S3:数据管理器接收N个服务器将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果;
S4:数据管理器将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器。
请继续参考图2与图3,图2是本发明实施例提供的分布式数据库的硬件架构图,图3是本发明实施例提供的具有关联关系的3张数据表的示意图。
如图2所示,本发明实施例提供的分布式数据库包括一个客户端201,以及第一服务器2031和第二服务器2032,当然,为了方便地向第一服务器2031和第二服务器2032导入数据,本发明实施例还提供一个数据管理器202,其中,客户端201与数据管理器202相连,数据管理器202分别与第一服务器2031和第二服务器2032相连,需要说明的是,本发明实施例中所介绍的分布式数据库只是为了举例,在实际应用中,分布式数据库可以包括多个客户端,如两个、三个或四个客户端等等,也可以包括多个服务器,如三个、四个或者五个服务器等等,以满足实际情况的需要,在此就不再赘述了。
如图3所示,本发明实施例提供的具有关联关系的3张数据表中,表A的外键(FK,Foreign Key)关联表B的主键(PK,Primary Key),表B的外键关联表C的主键。当然,需要说明的是,在实际应用中,待导入的具有关联关系的数据表的具体数量在此不做限制,其可以是2张,也可以是4张、5张等等。
在具体实施过程中,为了减少分布式数据库节点之间的数据交互以加快数据表做连接操作的速度,加快查询的速度,要求数据表在导入到分布式数据库中的时候,表B的外键要跟随表C的主键,例如,表C的主键有0、1、2、3、4、5六个值,其中0、1、2被导入到服务器一中,3、4、5被导入到服务器二中,则表B中外键值与0、1、2相等的行将被导入到服务器一中,与3、4、5相等的行将被导入到服务器二中,类似地,表A的外键也要跟随表B的主键,在此就不再赘述了。
在接下来的部分中,以将如图3所示的3张数据表导入到如图2所示的分布式数据库为例,来详细介绍本发明实施例中的技术方案。
在具体实施过程中,如图2所示,分布式数据库中的客户端201接收用户输入的导入命令,并将该导入命令发送给数据管理器202,数据管理器202在接收到客户端201发送的导入命令后,即会开始将如图3所示的3张数据表导入到分布式数据库中。在实际应用中,数据管理器202会从磁盘、移动硬盘或U盘等存储装置中读取该3张数据表的具体数据,从而将其导入到分布式数据库中,在此就不再赘述了。
在具体实施过程中,数据管理器202在将如图3所示的3张数据表导入到分布式数据库中的时候,还会获取图3所示的3张数据表之间的关联关系。
在本实施例中,数据管理器202可以通过向分布式数据库的第一服务器2031和第二服务器2032中的任一服务器发送用于获得3张待导入数据表的关联关系的请求信息,例如,可以设定固定向第一服务器2031或第二服务器2032中的某一服务器发送请求信息,也可以设定同时向第一服务器2031和第二服务器2032发送请求信息,在此不做限制。
第一服务器2031或第二服务器2032在接收到数据管理器202发送的请求信息后,即根据该请求信息向数据管理器202发送如图3所示的3张数据表的关联关系,具体为表A的外键关联表B的主键,表B的外键关联表C的主键。
数据管理器202在接收到第一服务器2031或第二服务器2032发送的关联关系后,即能够根据该关联关系确定如图3所示的数据表的导入次序,在本实施例中,由于表A的外键关联表B的主键,表B的外键关联表C的主键,所以如图3所示的3张数据表中的表C的导入次序为1,表B的导入次序为2,表A的导入次序为3。
当然了,在实际应用中,数据管理器202获取待导入的数据表之间的关联关系并不限定于从分布式数据库中的服务器处获得,例如,也可以由客户端201在向数据管理器202发送用户输入的导入命令时同时发送待导入数据表的关系等等,在此就不再赘述了。
在数据管理器202获得如图3所示的3张数据表的关联关系,并确定该3张数据表的导入次序之后,本发明实施例提供的数据表的导入方法即可以进入步骤S1,即:数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据分布式数据库中的N个服务器,将第1张数据表的数据分成N份并分别发送给N个服务器,其中M和N为大于等于2的整数。
在步骤S1中,具体来讲,也即数据管理器202读取表C的数据,在本实施例中,服务器的数量的数量为2,所以还会根据分布式数据库中的服务器的数量将表C的数据分为两份,并将该两份数据发送给第一服务器2031和第二服务器2032,请参考图4,图4是本发明实施例提供的将表C的数据发送给第一服务器2031和第二服务器2032的示意图。
在实际应用中,可以将根据分布式数据库中的服务器的数量,采用均分法将表C的数据进行划分,例如,在服务器的数量为2时,将表C的数据均分成两份,当然,也可以按照预设的划分比例对表C的数据进行划分,例如,在服务器的数量为2时,其中一个服务器分配1/4的数据,另一个服务器分配3/4的数据等等,在此不做限制,以能够满足实际情况的需要为准。
当然,在实际应用中,若表C的数据过大,则数据管理器202可以分次读取表C中的数据,直到表C的数据全部被导入,并被发送到分布式数据库中的服务器,从而减小了对数据管理器202的内存的容量需求。
在步骤S1之后,按照待导入数据表的导入次序,分别取i值为2至M的整数,数据管理器202依次对待导入的M张数据表中的第i张数据表执行至少一次下述S2-S4中介绍的步骤。
在本实施例中,在步骤S2之前,数据管理器还可以根据第i张数据表的数据量,确定对第i张数据表执行下述S2-S4的次数。
例如,以第2张数据表即如图3所示的表B为例,数据管理器202在读取表B的数据之前,先根据表B的数据量,确定出需要对表B执行下述S2-S4的次数,如数据管理器202一次能够处理的数据表的最大数据量为100M,而表B的数据量为50M,则执行下述S2-S4一次即能够将表B的数据导入到分布式数据库的服务器中,若表B的数据为200M,则数据管理器202至少需要执行下述S2-S4两次才能够将表B的数据导入到分布式数据库的服务器中,当然,需要说明的是,本实施例中所介绍的数据管理器一次能够处理的数据表的最大数据量只是一个举例,实际应用中并不局限于此。
当然,在实际应用中,数据管理器202也可以不确定对第i张数据表执行下述S2-S4的次数,而是直接读取表B的数据,在读取到的数据量达到数据管理器202一次能够处理的数据表的最大数据量后,即停止读取,并在表B中停止读取的位置做一个标记,以提示数据管理器202下一次从该标记所标记的位置开始读取表B的数据,在此就不再赘述了。
在本实施例中,在数据管理器202确定对第i张数据表执行下述S2-S4的次数之后,即能够对第i张数据按照确定的次数执行下述S2-S4。
步骤S2:数据管理器读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器。
具体来讲,若数据管理器202确定对第i张数据表执行一次S2-S4,则此时数据管理器202读取第i张数据表的全部外键,并将该全部外键发送给N个服务器;若数据管理器202确定对第i张数据表执行两次或者两次以上S2-S4,则此时数据管理器202读取第i张数据表的部分外键,并将该部分外键发送给N个服务器。
以表B为例,若数据管理器202确定需要对表B执行一次S2-S4,则数据管理器202读取表B的全部外键,并将该全部外键发送给第一服务器2031和第二服务器2032;若数据管理器202确定需要对表B执行两次或者两次以上S2-S4,则数据管理器读取表B的部分外键,并将该部分外键发送给第一服务器2031和第二服务器2032。
请参考图5,图5是本发明实施例提供的将至少部分外键发送给第一服务器2031和第二服务器2032的示意图,如图5所示,数据管理器读取表B的至少部分外键,并将该至少部分外键发送给第一服务器2031和第二服务器2032。
在第一服务器2031和第二服务器2032接收到数据管理器202发送的至少部分外键后,第一服务器2031和第二服务器2032即可以将该至少部分外键与各自存储的第i-1张数据表的主键进行连接(JOIN)处理,连接处理的结果即是第i张数据表被分配到该服务器上的行号,第一服务器2031和第二服务器2032将各自的处理结果发送给数据管理器202。
请参考图6,图6是本发明实施例提供的服务器将该至少部分外键与各自存储的第i-1张数据表的主键进行连接处理的示意图,如图6所示,设定表C的主键为1-14,其中,1-7所对应的数据存储在第一服务器2031上,8-14所对应的数据存储在第二服务器2032上。
如图6所示,第一服务器2031在进行连接处理的过程中,会为表C的主键1-7和表B的外键分别分配对象标识(Object identifier,OID),在进行连接处理之后,会将处理结果发送给数据管理器202。
请继续参考图6,类似地,第二服务器2032进行连接处理的过程中,会为表C的主键8-14和表B的外键分别分配对象标识,在进行连接处理之后,同样会将处理结果发送给数据管理器202。
可以看出,第一服务器2031和第二服务器2032接收数据管理器202发送的待导入的第i张数据表的至少部分外键,将该至少部分外键与第i-1张数据表的主键进行连接处理获得两个处理结果,以及将该两个处理结果发送给数据管理器202这三个步骤是同时进行的,两个服务器均处于服务状态(忙碌状态),也就是说,将一部分由数据管理器202处理的工作转交给了第一服务器2031和第二服务器2032进行处理,避免了在数据管理器202处于服务状态时服务器处于等待状态的情形,所以提高了在将数据表导入到分布式数据库的过程中,分布式数据库的资源利用率,并且,由于分布式数据库的服务器同时参与计算,每个服务器所计算的数据量减少,与现有技术中由数据管理器进行计算相比,减少了计算的时间,从而提高了数据表的导入速度。
步骤S3:数据管理器接收N个服务器将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果。
在本实施例中,可以是数据管理器202接收第一服务器2031和第二服务器2032发送的两个处理结果。
步骤S4:数据管理器将第i张数据表中与N个处理结果对应的对应数据发送给N个服务器。
具体来讲,可以是数据管理器202根据步骤S3中接收到的两个处理结果,分别确定两个处理结果对应的表B中的行,也即两个处理结果对应的对应数据,并分别将对应数据发送给第一服务器2031和第二服务器2032。
请参考图7,图7是本发明实施例提供的表B中与两个处理结果对应的对应数据发送给第一服务器2031和第二服务器2032的示意图,如图7所示,数据管理器202根据步骤S3中接收到的两个处理结果,将表B中行号为0、1、3和4对应的数据发送给第二服务器2032,将表B中行号为2、5和6对应的数据发送给第一服务器2031,在此就不再赘述了。
第一服务器2031和第二服务器2032接收数据管理器202发送的对应数据,并进行存储,从而完成了此次数据的导入。
如前述部分,如果数据管理器202确定对第i张数据表执行一次S2-S4,则此时即完成第i张数据表的导入,如果数据管理器202确定对第i张数据表执行两次或者两次以上S2-S4,则此时可以按照前述部分所介绍的S2-S4的具体过程继续导入第i张数据表,直到完成第i张数据表的导入,在此就不再赘述了。
通过上述部分可以看出,在将数据表导入到分布式数据库的过程中,由于采用了将待导入数据表中第i张数据表的至少部分外键发送给服务器,并接收服务器进行将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果,并将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器的技术方案,将一部分由数据管理器处理的工作转交给了服务器进行处理,避免了在数据管理器处于服务状态时服务器处于等待状态的情形,所以减轻了数据管理器的压力,提高了在将数据表导入到分布式数据库的过程中,分布式数据库的资源利用率,并且,由于分布式数据库的服务器同时参与计算,每个服务器所计算的数据量减少,与现有技术中由数据管理器进行计算相比,减少了计算的时间,从而提高了数据表的导入速度。
同时,在导入第i张数据表的过程中,由于采用了读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器,并接收N个服务器将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果,并将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器的技术方案,在第i张数据表的数据量很大时,可以分多次读取第i张数据表的数据,每次读取第i张数据表的部分数据,直到整张数据表的导入,所以减少了对数据管理器的内存的容量需求。
进一步地,由于不需要建立主键与服务器的映射表,所以节省了数据管理器在导入数据时的内存资源,减少了对数据管理器的内存的容量需求。
基于同一发明构思,本发明实施例另一方面还提供一种数据管理器,请参考图8,图8是本发明实施例提供的数据管理器的功能模块图,如图8所示,该数据管理器包括:
第一处理单元801,用于读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据分布式数据库中的N个服务器,将第1张数据表的数据分成N份并分别发送给N个服务器,其中M和N为大于等于2的整数;
第二处理单元802,用于按照导入次序,并分别取i值为2至M的整数,依次对M张待导入数据表中的第i张数据表执行至少一次下述步骤:
读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器;
接收N个服务器将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果;
将第i张数据表中与N个处理结果对应的数据分别发送给N个服务器。
在具体实施过程中,导入装置还包括确定单元,用于在分布式数据库的数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据之前,向N个服务器发送用于获得M张待导入数据表的关联关系的请求信息,并接收N个服务器根据请求信息发送的关联关系,并基于关联关系确定导入次序。
在具体实施过程中,第二处理单元802还用于在数据管理器读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器之前,根据第i张数据表的数据量,确定对第i张数据执行下述步骤的次数。
本发明实施例另一方面还提供一种服务器,请参考图9,图9是本发明实施例提供的服务器的功能模块图,如图9所示,该服务器包括:
第一处理单元901,用接收数据管理器发送的第1张数据表的1份数据,1份数据为数据管理器根据分布式数据库中的N个服务器将第1张数据表的数据分为N份数据中的1份,第1张数据表为M张待导入数据表中导入次序为1的数据表,其中M和N为大于等于2的整数;
第二处理单元902,用于按照导入次序,i分别取2至M的整数,依次对M张待导入数据表中的第i张数据表执行至少一次下述步骤:
接收数据管理器发送的第i张数据表的至少部分外键;将至少部分外键与第i-1张数据表的主键进行连接处理,并将第一处理结果发送给数据管理器;接收数据管理器根据第一处理结果发送的第i张数据表中与第一处理结果对应的数据。
本实施例中的数据管理器、服务器与前述实施例中的数据表的导入方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚的了解本实施例中的电子设备的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
本发明的一个或多个实施例,可以实现如下技术效果:
1、在将数据表导入到分布式数据库的过程中,由于采用了将待导入数据表中第i张数据表的至少部分外键发送给服务器,并接收服务器进行将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果,并将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器的技术方案,将一部分由数据管理器处理的工作转交给了服务器进行处理,避免了在数据管理器处于服务状态时服务器处于等待状态的情形,所以减轻了数据管理器的压力,提高了在将数据表导入到分布式数据库的过程中,分布式数据库的资源利用率,并且,由于分布式数据库的服务器同时参与计算,每个服务器所计算的数据量减少,与现有技术中由数据管理器进行计算相比,减少了计算的时间,从而提高了数据表的导入速度。
2、在导入第i张数据表的过程中,由于采用了读取第i张数据表的至少部分外键,并将至少部分外键发送给N个服务器,并接收N个服务器将至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果,并将第i张数据表中与N个处理结果对应的对应数据分别发送给N个服务器的技术方案,在第i张数据表的数据量很大时,可以分多次读取第i张数据表的数据,每次读取第i张数据表的部分数据,直到整张数据表的导入,所以减少了对数据管理器的内存的容量需求。
3、由于不需要建立主键与服务器的映射表,所以节省了数据管理器在导入数据时的内存资源,减少了对数据管理器的内存的容量需求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种数据表的导入方法,其特征在于,包括:
数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据分布式数据库中的N个服务器,将所述第1张数据表的数据分成N份并分别发送给所述N个服务器,其中M和N为大于等于2的整数;
按照所述导入次序,并分别取i值为2至M的整数,所述数据管理器依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
所述数据管理器读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器;
所述数据管理器接收所述N个服务器将所述至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果;
所述数据管理器将所述第i张数据表中与所述N个处理结果对应的对应数据分别发送给所述N个服务器。
2.如权利要求1所述的方法,其特征在于,在所述数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据之前,所述方法还包括:
所述数据管理器向所述N个服务器中任一服务器发送用于获得所述M张待导入数据表的关联关系的请求信息;
所述数据管理器接收所述任一服务器根据所述请求信息而发送的所述关联关系,并基于所述关联关系确定所述导入次序。
3.如权利要求1或2所述的方法,其特征在于,在所述数据管理器读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器之前,所述方法还包括:
所述数据管理器根据所述第i张数据表的数据量,确定对所述第i张数据执行所述下述步骤的次数。
4.一种数据表的导入方法,其特征在于,包括:
分布式数据库中的N个服务器中的第一服务器接收所述分布式数据库的数据管理器发送的第1张数据表的1份数据,所述1份数据为所述数据管理器根据所述N个服务器将所述第1张数据表的数据分为N份数据中的1份,所述第1张数据表为M张待导入数据表中的导入次序为1的数据表,其中M和N为大于等于2的整数;
按照所述导入次序,并分别取i值为2至M的整数,所述第一服务器依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
所述第一服务器接收所述数据管理器发送的第i张数据表的至少部分外键;
所述第一服务器将所述至少部分外键与第i-1张数据表的主键进行连接处理,并将第一处理结果发送给所述数据管理器;
所述第一服务器接收所述数据管理器根据所述第一处理结果发送的第i张数据表中与所述第一处理结果对应的数据。
5.一种数据管理器,其特征在于,包括:
第一处理单元,用于读取M张待导入数据表中的导入次序为1的第1张数据表的数据,并根据分布式数据库中的N个服务器,将所述第1张数据表的数据分成N份并分别发送给所述N个服务器,其中M和N为大于等于2的整数;
第二处理单元,用于按照所述导入次序,并分别取i值为2至M的整数,依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器;
接收所述N个服务器将所述至少部分外键与第i-1张数据表的主键进行连接处理后而获得的N个处理结果;
将所述第i张数据表中与所述N个处理结果对应的数据分别发送给所述N个服务器。
6.如权利要求5所述的数据管理器,其特征在于,所述导入装置还包括确定单元,用于在所述分布式数据库的数据管理器读取M张待导入数据表中的导入次序为1的第1张数据表的数据之前,向所述N个服务器发送用于获得所述M张待导入数据表的关联关系的请求信息,并接收所述N个服务器根据所述请求信息发送的所述关联关系,并基于所述关联关系确定所述导入次序。
7.如权利要求5或6所述的数据管理器,其特征在于,所述第二处理单元还用于在所述数据管理器读取第i张数据表的至少部分外键,并将所述至少部分外键发送给所述N个服务器之前,根据所述第i张数据表的数据量,确定对所述第i张数据执行所述下述步骤的次数。
8.一种服务器,其特征在于,包括:
第一处理单元,用于接收数据管理器发送的第1张数据表的1份数据,所述1份数据为所述数据管理器根据分布式数据库中的N个服务器将所述第1张数据表的数据分为N份数据中的1份,所述第1张数据表为M张待导入数据表中导入次序为1的数据表,其中M和N为大于等于2的整数;
第二处理单元,用于按照所述导入次序,i分别取2至M的整数,依次对所述M张待导入数据表中的第i张数据表执行至少一次下述步骤:
接收所述数据管理器发送的第i张数据表的至少部分外键;
将所述至少部分外键与第i-1张数据表的主键进行连接处理,并将第一处理结果发送给所述数据管理器;
接收所述数据管理器根据所述第一处理结果发送的第i张数据表中与所述第一处理结果对应的数据。
CN201480000196.2A 2014-02-18 2014-02-18 一种数据表的导入方法、数据管理器以及服务器 Expired - Fee Related CN105264521B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/072200 WO2015123809A1 (zh) 2014-02-18 2014-02-18 一种数据表的导入方法、数据管理器以及服务器

Publications (2)

Publication Number Publication Date
CN105264521A CN105264521A (zh) 2016-01-20
CN105264521B true CN105264521B (zh) 2018-10-30

Family

ID=53877499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480000196.2A Expired - Fee Related CN105264521B (zh) 2014-02-18 2014-02-18 一种数据表的导入方法、数据管理器以及服务器

Country Status (2)

Country Link
CN (1) CN105264521B (zh)
WO (1) WO2015123809A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107305581B (zh) * 2016-04-25 2020-06-16 华为技术有限公司 分布式数据库系统中的表连接方法及分布式数据库系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916261A (zh) * 2010-07-28 2010-12-15 北京播思软件技术有限公司 一种分布式并行数据库系统的数据分区方法
CN102096685A (zh) * 2009-12-11 2011-06-15 阿里巴巴集团控股有限公司 分布式数据同步到数据仓库的方法及装置
JP2012079078A (ja) * 2010-10-01 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> 分散データベース管理装置および分散データベース管理プログラム
CN102906751A (zh) * 2012-07-25 2013-01-30 华为技术有限公司 一种数据存储、数据查询的方法及装置
EP2637111A1 (en) * 2012-03-05 2013-09-11 NHN Business Platform Corp. Data management system and method using database middleware
CN103473334A (zh) * 2013-09-18 2013-12-25 浙江中控技术股份有限公司 数据存储、查询方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096685A (zh) * 2009-12-11 2011-06-15 阿里巴巴集团控股有限公司 分布式数据同步到数据仓库的方法及装置
CN101916261A (zh) * 2010-07-28 2010-12-15 北京播思软件技术有限公司 一种分布式并行数据库系统的数据分区方法
JP2012079078A (ja) * 2010-10-01 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> 分散データベース管理装置および分散データベース管理プログラム
EP2637111A1 (en) * 2012-03-05 2013-09-11 NHN Business Platform Corp. Data management system and method using database middleware
CN102906751A (zh) * 2012-07-25 2013-01-30 华为技术有限公司 一种数据存储、数据查询的方法及装置
CN103473334A (zh) * 2013-09-18 2013-12-25 浙江中控技术股份有限公司 数据存储、查询方法及系统

Also Published As

Publication number Publication date
WO2015123809A1 (zh) 2015-08-27
CN105264521A (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN104123184B (zh) 一种用于为构建过程中的任务分配资源的方法和系统
TWI780065B (zh) 資源調度的方法、裝置和系統
CN110209714A (zh) 报表生成方法、装置、计算机设备及计算机可读存储介质
CN105812175A (zh) 一种资源管理方法及资源管理设备
CN110019205A (zh) 一种数据存储、还原方法、装置及计算机设备
CN108733839A (zh) 一种海量数据的统计方法及装置
CN108153494B (zh) 一种io请求处理方法及装置
CN108399175A (zh) 一种数据存储、查询方法及其装置
CN113766047B (zh) 一种任务分组方法、装置、计算机设备及存储介质
CN105264521B (zh) 一种数据表的导入方法、数据管理器以及服务器
US8150970B1 (en) Work load distribution among server processes
CN109062683A (zh) 主机资源分配的方法、装置及计算机可读存储介质
CN110505276B (zh) 对象匹配方法、装置及系统、电子设备及存储介质
CN110909072B (zh) 一种数据表建立方法、装置及设备
WO2023071566A1 (zh) 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
CN105511959A (zh) 虚拟资源分配方法和装置
CN110334018A (zh) 一种大数据导入方法以及相关设备
CN109104506B (zh) 域名解析规则的确定方法、装置和计算机可读存储介质
CN109657801A (zh) 推荐系统的分流方法、装置及可读存储介质
WO2018205890A1 (zh) 一种分布式系统的任务分配方法及系统及其计算机可读存储介质和计算机设备
CN109409883A (zh) 基于智能合约的协同处理方法、家电设备及服务器
CN109614242A (zh) 一种计算能力共享方法、装置、设备及介质
CN111144860B (zh) 订单处理方法、装置、服务器及存储介质
CN109597832A (zh) 数据处理方法、计算设备、存储设备和存储介质
CN110427390A (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
TR01 Transfer of patent right

Effective date of registration: 20200714

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20200714

Address after: Room 102, No.48, Lane 2438, Jinshajiang Road, Putuo District, Shanghai

Patentee after: Zhao Xiuwen

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181030

Termination date: 20210218