双副本并行数据库的查询方法和装置的制造方法

文档序号:9787481阅读:595来源:国知局
双副本并行数据库的查询方法和装置的制造方法
【技术领域】
[0001] 本发明涉及数据库技术领域,尤其涉及双副本并行数据库的查询方法和装置。
【背景技术】
[0002] 为了保证数据安全,提供24小时无间断数据服务,双副本并行数据库成为常用数 据存储方式,相应的,双副本并行数据库的数据查询的效率也成为关注重点。其中,并行数 据库为在MPP(Massively Parallel Processing,大规模并行处理系统)和集群并行计算环 境的基础上建立的数据库系统。双副本并行数据库中的同一数据同时存储于两个并行数据 库中,两个并行数据库中的相同数据互备。
[0003] 目前,双副本并行数据库中数据均衡分布在集群节点上,数据查询时,通过对数据 进行分片,并按照分片生成并行执行计划并启动多个线程并行执行查询请求。
[0004] 当集群规模较大时,节点间的数据传输耗时较长,上述方法中数据均衡分布在集 群节点上,使得数据查询时的数据转移耗时较长,影响了数据查询效率。

【发明内容】

[0005] 为解决上述问题,本发明实施例提出了一种双副本并行数据库的查询方法和装 置。
[0006] -方面,本发明实施例提供了一种双副本并行数据库的查询方法,包括:
[0007] 获取查询请求及数据的存储单元信息;
[0008] 根据所述查询请求及数据的存储单元信息形成多个执行计划,其中,执行计划包 括执行操作和与所述执行操作相关的执行节点;
[0009] 根据各执行计划中执行节点的资源利用率、执行节点的预估数据传输量计算各执 行计划的资源占用率;
[0010] 根据所述资源占用率从所述执行计划中选择一个执行计划;
[0011] 根据选择的执行计划查询数据。
[0012] 可选地,所述根据所述数据的存储单元信息形成多个执行计划之前,还包括:
[0013] 根据数据的数据量及查询类型选择所述数据的存储单元;
[0014] 将数据存储于所述存储单元内的并行数据库中;
[0015] 将数据的存储单元信息存储于元数据库中。
[0016] 可选地,获取数据的存储单元信息,包括:
[0017] 从所述元数据库中获取数据的存储单元信息;
[0018] 所述根据所述查询请求及数据的存储单元信息形成多个执行计划,包括:
[0019] 根据所述数据的存储单元信息和所述查询请求的类型将所述查询请求拆分成多 个执行操作,确定各执行操作对应的执行节点;
[0020] 根据执行操作及执行节点形成多个执行计划。
[0021 ]可选地,每个执行计划包含多个查询子任务;
[0022] 所述根据各执行计划中执行节点的资源利用率、执行节点的预估数据传输量计算 各执行计划的资源占用率,包括:
[0023] 对于任一执行计划,所述任一执行计划的资源占用率通过如下公式确定:
[0024]
[0025] 其中,m为所述任一执行计划中执行节点总数,kl为执行节点资源系数,k2为数据 库资源系数,k3为数据传输系数;
[0026] 所述kl,k2,k3根据所述双副本并行数据库的查询性能瓶颈确定;
[0027] 所述执行节点资源利用率=中央处理器cpu利用率+内存memory利用率+磁盘disk 利用率+网络network利用率+所述执行节点对应的查询任务数/所述执行节点正在执行的 所有查询任务总数;
[0028] 所述数据库资源利用率=进程process利用率+会话session利用率;
[0029] 所述数据传输量=执行操作的预估数据传输量*所述执行计划包含的查询子任务 总数η。
[0030] 可选地,所述根据所述资源占用率从所述执行计划中选择一个执行计划,包括:
[0031] 从所述执行计划中选择一个资源占用率最小的执行计划。
[0032] 可选地,所述根据选择的执行计划查询数据之后,还包括:
[0033]存储查询结果;
[0034]所述查询结果包括查询中间结果和查询最终结果 [0035] 可选地,所述方法,还包括:
[0036] 所述存储单元内的并行数据库中数据更新后,将数据更新信息存储于所述元数据 库中。
[0037] 可选地,所述获取查询请求及数据的存储单元信息之后,在执行根据所述数据的 存储单元信息形成多个执行计划之前,还包括:
[0038] 根据所述元数据库中存储的数据更新信息确定所述查询请求对应的数据是否有 更新;
[0039] 若有更新,则触发执行根据所述数据的存储单元信息形成多个执行计划的步骤;
[0040] 若无更新,则在所述元数据库中确定是否有与所述查询请求对应的查询结果;
[0041 ]若有对应的查询结果,则获取对应的查询结果,结束流程;
[0042] 若未有对应的查询结果,则触发执行根据所述数据的存储单元信息形成多个执行 计划的步骤。
[0043] 另一方面,本发明实施例提供了一种双副本并行数据库的查询装置,包括:
[0044] 解析模块,用于获取查询请求及数据的存储单元信息;根据所述查询请求及数据 的存储单元信息形成多个执行计划,其中,执行计划包括执行操作和与所述执行操作相关 的执行节点。
[0045] 计算模块,用于根据所述解析模块形成的各执行计划中执行节点的资源利用率、 执行节点的预估数据传输量计算各执行计划的资源占用率,并根据所述资源占用率从所述 执行计划中选择一个执行计划;
[0046]查询模块,用于根据所述计算模块选择的执行计划查询数据。
[0047] 可选地,所述装置,还包括:
[0048]选择模块,用于根据数据的数据量及查询类型选择所述数据的存储单元;
[0049]存储模块,用于将数据存储于所述选择模块选择的存储单元内的并行数据库中;
[0050] 第一元数据模块,用于将数据的存储单元信息存储于元数据库中。
[0051] 可选地,解析模块,用于从所述元数据库中获取数据的存储单元信息;根据所述数 据的存储单元信息和查询请求类型将所述查询请求拆分成多个执行操作;确定各执行操作 对应的执行节点;根据执行操作及执行节点形成多个执行计划。
[0052] 可选地,每个执行计划包含多个查询子任务;
[0053] 所述计算模块,用于对于任一执行计划,所述任一执行计划的资源占用率通过如 下公式确定:
[0054]
[0055] 其中,m为所述任一执行计划中执行节点总数,kl为执行节点资源系数,k2为数据 库资源系数,k3为数据传输系数;
[0056] 所述kl,k2,k3根据所述双副本并行数据库的查询性能瓶颈确定;
[0057] 所述执行节点资源利用率=中央处理器cpu利用率+内存memory利用率+磁盘disk 利用率+网络network利用率+所述执节点对应的查询任务数/所述执行节点正在执行的所 有查询任务总数;
[0058] 所述数据库资源利用率=进程process利用率+会话session利用率;
[0059] 所述数据传输量=执行操作的预估数据传输量*所述执行计划包含的查询子任务 总数η。
[0060] 可选地,所述计算模块,用于从所述执行计划中选择一个资源占用率最小的执行 计划。
[0061 ] 可选地,所述装置,还包括:
[0062]缓存模块,用于存储查询结果;所述查询结果包括查询中间结果和查询最终结果。 [0063] 可选地,所述装置,还包括:
[0064]第二元数据模块,用于在所述存储单元内的并行数据库中数据更新后,将数据更 新信息存储于所述元数据库中。
[0065] 可选地,所述装置,还包括:
[0066] 第一确定模块,用于根据所述元数据库中存储的数据更新信息确定所述查询请求 对应的数据是否有更新;
[0067] 第二确定模块,用于当所述第一确定模块确定无更新时,在所述元数据库中确定 是否有与所述查询请求对应的查询结果;
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1