首页> 中国专利> 一种数据表的导入方法、数据管理器以及服务器

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

摘要

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

著录项

  • 公开/公告号CN105264521A

    专利类型发明专利

  • 公开/公告日2016-01-20

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201480000196.2

  • 发明设计人 黄坚坚;王玉虎;

    申请日2014-02-18

  • 分类号G06F17/30(20060101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人黄志华

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 13:43:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-08

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2014800001962 申请日:20140218 授权公告日:20181030

    专利权的终止

  • 2020-07-31

    专利权的转移 IPC(主分类):G06F17/30 登记生效日:20200714 变更前: 变更后: 申请日:20140218

    专利申请权、专利权的转移

  • 2018-10-30

    授权

    授权

  • 2016-02-17

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140218

    实质审查的生效

  • 2016-01-20

    公开

    公开

说明书

mat="original" lang="zh">

一种数据表的导入方法、 数据管理器以及服务器 技术领域 本发明涉及数据处理领域, 特别涉及一种数据表的导入方法、 数据管理 器以及服务器。 背景技术 随着现代生活中大量数据的产生以及科技的发展, 分布式数据库以其能 够高效处理大量数据的优点开始在各个领域中被广泛使用。

分布式数据库可以包括一个或者多个客户端 (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个处理结果; 个服务器。

在第三方面的第一种可能的实现方式中, 所述导入装置还包括确定单元, 用于在所述分布式数据库的数据管理器读取 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的数据均 在服务器的数量为 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对应的数据发送给第一服务器 2031 , 将表 B中行号为 2、 5和 6对 应的数据发送给第二服务器 2032, 在此就不再赘述了。

第一服务器 2031和第二服务器 2032接收数据管理器 202发送的对应数 据, 并进行存储, 从而完成了此次数据的导入。

如前述部分, 如果数据管理器 202确定对第 i张数据表执行一次 S2-S4, 则此时即完成第 i张数据表的导入, 如果数据管理器 202确定对第 i张数据表 执行两次或者两次以上 S2-S4,则此时可以按照前述部分所介绍的 S2-S4的具 体过程继续导入第 i张数据表, 直到完成第 i张数据表的导入, 在此就不再赘 述了。

通过上述部分可以看出, 在将数据表导入到分布式数据库的过程中, 由 于釆用了将待导入数据表中第 i张数据表的至少部分外键发送给服务器,并接 收服务器进行将至少部分外键与第 i-1张数据表的主键进行连接处理后而获得 发送给 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、 光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、 设备(系统)、 和计算机程序产 品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程图 和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流程 和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器, 使得通 过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流 程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的 装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器 中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程或 多个流程和 /或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的 处理, 从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图 一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的步 骤。

尽管已描述了本发明的优选实施例, 但本领域内的技术人员一旦得知了 基本创造性概念, 则可对这些实施例作出另外的变更和修改。 所以, 所附权 利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。 脱离本发明实施例的精神和范围。 这样, 倘若本发明实施例的这些修改和变 型属于本发明权利要求及其等同技术的范围之内, 则本发明也意图包含这些 改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号