分布式数据库的SQL查询方法及装置制造方法及图纸

技术编号:31928616 阅读:36 留言:0更新日期:2022-01-15 13:17
本说明书的实施例提供一种分布式数据库的SQL查询方法及装置。分布式数据库包括多个分布式数据存储节点,每个分布式数据存储节点包括SQL引擎和存储引擎,在进行SQL查询时,经由SQL语句接收接口接收SQL语句。SQL优化器根据所接收的SQL语句生成基于串行调度策略的第一SQL执行计划。SQL执行器根据串行调度策略执行第一SQL执行计划,以实现SQL查询操作。在执行第一SQL执行计划时,响应于执行需要访问存储节点的存储引擎上的存储数据的SQL算子,SQL执行器使用SQL算子所对应的数据访问参数向对应存储节点的存储引擎发起基于数据分区的多分区数据访问来获取对应的数据访问结果,所述数据访问结果用于通知当前SQL算子执行完成或者用于供后续SQL算子执行时使用。者用于供后续SQL算子执行时使用。者用于供后续SQL算子执行时使用。

【技术实现步骤摘要】
分布式数据库的SQL查询方法及装置


[0001]本说明书实施例通常涉及数据库领域,尤其涉及分布式数据库的SQL查询方法及装置。

技术介绍

[0002]分布式数据库由多个分布式存储节点组成。每个分布式存储节点包括SQL引擎和存储引擎。分布式数据库通常采用share noting架构,比如,OceanBase数据库。在这种分布式数据库中,数据分布式地存储在各个存储引擎中,并且存储引擎本身不提供跨存储节点的数据访问能力。每个分布式存储节点上涉及的数据访问所需要的CPU资源和IO资源都发生在本地,由该分布式存储节点上的SQL引擎执行。

技术实现思路

[0003]本说明书实施例提供用于分布式数据库的SQL查询的方法及装置。利用该方法及装置,可以提高小查询结果集时的SQL查询效率。
[0004]根据本说明书实施例的一个方面,提供一种分布式数据库的SQL查询方法,所述分布式数据库包括多个分布式数据存储节点,每个分布式数据存储节点包括SQL引擎和存储引擎,所述SQL查询方法由SQL引擎执行,所述SQL查询方法包括:接收SQL语句;根据所本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的SQL查询方法,所述分布式数据库包括多个分布式数据存储节点,每个分布式数据存储节点包括SQL引擎和存储引擎,所述SQL查询方法由SQL引擎执行,所述SQL查询方法包括:接收SQL语句;根据所接收的SQL语句生成基于串行调度策略的第一SQL执行计划;根据串行调度策略执行所述第一SQL执行计划,其中,在执行所述第一SQL执行计划时,响应于执行需要访问存储节点上的存储数据的SQL算子,使用所述SQL算子所对应的数据访问参数向对应存储节点发起基于数据分区的多分区数据访问来获取对应的数据访问结果,所述数据访问结果用于通知当前SQL算子执行完成或者用于供后续SQL算子执行时使用。2.如权利要求1所述的方法,其中,所述SQL引擎包括数据访问服务层,使用所述SQL算子所对应的数据访问参数向对应存储节点发起基于数据分区的多分区数据访问包括:经由所述数据访问服务层使用所述SQL算子所对应的数据访问参数向对应存储节点发起基于数据分区的多分区数据访问。3.如权利要求2所述的方法,其中,经由所述数据访问服务层使用所述SQL算子所对应的数据访问参数向对应存储节点发起基于数据分区的多分区数据访问包括:响应于SQL引擎中的SQL执行器执行需要访问存储节点上的存储数据的SQL算子,接收来自所述SQL执行器的数据访问请求,所述数据访问请求包括SQL算子所对应的数据访问参数;基于所接收的数据访问参数生成与所述SQL算子对应的一个或多个数据访问任务,每个数据访问任务对应存储节点中的存储引擎上的一个数据分区;将所生成的数据访问任务打包为本地消息和/或RPC消息并基于所述本地消息和/或所述RPC消息发起针对各个对应存储引擎的数据访问;以及接收各个对应的存储引擎返回的数据访问结果并返回给所述SQL执行器。4.如权利要求3所述的方法,其中,经由所述数据访问服务层使用所述SQL算子所对应的数据访问参数向对应存储节点发起基于数据分区的多分区数据访问还包括:在所述数据访问服务层与各个待访问远端存储节点的SQL引擎中的数据访问服务层之间建立数据传输通道,其中,所述RPC消息经由所述数据传输通道传输给对应远端存储节点的SQL引擎的数据传输服务层,以及所述数据访问结果经由所述数据传输通道返回给本地存储节点的数据访问服务层。5.如权利要求1或3所述的方法,其中,所述数据访问参数包括:数据表ID、数据分区ID列表、数据列ID列表以及与所述SQL算子对应的目标操作数据信息。6.如权利要求5所述的方法,其中,所述目标操作数据信息包括下述目标操作数据信息中的至少一个:数据扫描范围和目标数据行。7.如权利要求3所述的方法,其中,与同一远端存储节点对应的多个可合并数据访问任务被打包为同一RPC消息。8.如权利要求7所述的方法,其中,所述可合并数据访问任务包括下述数据访问任务中的至少一种:
针对同一远端存储节点的不同数据分区的多个具有相同数据访问类型的数据访问任务;和与同一SQL算子对应的针对同一远端存储节点的多个具有不同数据访问类型的数据访问任务。9.如权利要求1所述的方法,其中,根据所接收的SQL语句生成基于串行调度策略的第一SQL执行计划包括:根据所接收的SQL语句生成基于串行调度策略的第一SQL执行计划以及基于并行调度策略的第二SQL执行计划,所述方法还包括:确定所述第一SQL执行计划和所述第二SQL执行计划在当前数据规模下的执行代价;基于所确定出的执行代价,选择执行所述第一SQL执行计划或所述第二SQL执行计划,其中,根据串行调度策略执行所述第一SQL执行计划包括:响应于选择执行所述第一SQL执行计划,根据串行调度策略执行所述第一SQL执行计划,以及响应于选择执行所述第二SQL执行计划,根据并行调度策略执行所述第二SQL执行计划。10.如权利要求1所述的方法,其中,根据所接收的SQL语句生成基于串行调度策略的第一SQL执行计划包括:响应于未满足预定规则,根据所接收的SQL语句生成基于串行调度策略的第一SQL执行计划,或者响应于满足预定规则,根据所接收的SQL语句生成基于并行调度策略的第二SQL执行计划,根据串行调度策略执行所述第一SQL执行计划包括:响应于生成所述第一SQL执行计划,根据串行调度策略执行所述第一SQL执行计划,或者响应于生成所述第二SQL执行计划,根据并行调度策略执行所述第二SQL执行计划。11.一种分布式数据库的SQL引擎,所述分布式数据库包括多个分布式数据存储节点,每个分布式数据存储节点包括SQL引擎和存储引擎,所述SQL引擎包括:SQL语句接收接口,接收SQL语句;SQL优化器,根据所接收的SQL语句生成基于串行调度策略...

【专利技术属性】
技术研发人员:魏宇臣潘毅陈萌萌王国平余璜汪龙重
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1