数据查询方法及装置制造方法及图纸

技术编号:39764959 阅读:8 留言:0更新日期:2023-12-22 02:19
本说明书一个或多个实施方式提供了一种数据查询方法及装置,数据查询方法包括基于数据查询指令确定当前需要查询的存储数据和下推算子,基于索引树中各个节点的索引数据自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,并对符合剪裁条件的数据区间进行数据剪裁得到目标数据,基于下推算子对目标数据进行计算得到查询结果

【技术实现步骤摘要】
数据查询方法及装置


[0001]本说明书一个或多个实施方式涉及数据库
,尤其涉及一种数据查询方法及装置


技术介绍

[0002]在数据查询时通常需要对数据库中的大规模数据进行扫描和计算,需要消耗大量资源且查询效率较低

计算下推是一种对数据查询的优化方法,计算下推可以将部分复杂算子由计算节点下推到存储节点中执行,从而可以在数据查询过程中尽早剪裁掉无关数据,提高数据查询和处理效率

[0003]但是相关技术中,针对数据库数据的查询剪裁效果不佳,在一些数据库场景中反而带来额外开销,导致数据查询性能变得更差


技术实现思路

[0004]为提高数据查询过程中数据剪裁效果,提高数据查询效率,本说明书一个或多个实施方式提供了一种数据查询方法

装置

存储系统及存储介质

[0005]第一方面,本说明书一个或多个实施方式提供了一种数据查询方法,包括:
[0006]基于数据查询指令确定当前需要查询的存储数据和下推算子,所述存储数据包括待查询数据以及所述待查询数据对应的索引树,所述索引树中的节点对应于所述待查询数据的数据区间,并且每个节点的索引数据包括其下一级所有子节点的索引数据的聚合数据;
[0007]基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,并对符合剪裁条件的数据区间进行数据剪裁,得到目标数据;
[0008]基于所述下推算子对所述目标数据进行计算,得到查询结果

[0009]在本说明书一个或多个实施方式中,所述基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,包括:
[0010]对于所述索引树中的每个节点,根据所述节点的所述聚合数据的元数据,确定所述节点对应的数据区间是否为有效数据区间;
[0011]在所述节点对应的数据区间为有效数据区间的情况下,基于所述数据查询指令包括的剪裁条件,确定所述数据区间是否符合所述剪裁条件;
[0012]在所述数据区间不符合所述剪裁条件的情况下,确定所述节点的下一级子节点对应的数据区间是否符合所述剪裁条件,直至遍历所述索引树的所有节点

[0013]在本说明书一个或多个实施方式中,所述对符合剪裁条件的数据区间进行数据剪裁,得到目标数据,包括:
[0014]对于所述索引树中的任意一个节点,在所述节点对应的数据区间符合所述剪裁条件的情况下,将所述节点及其下级的所有子节点对应的数据区间进行数据剪裁,得到所述目标数据

[0015]在本说明书一个或多个实施方式中,所述索引树包括聚合索引树,所述聚合索引树的底层节点的索引数据,包括所述底层节点对应的数据区间中所有数据的聚合数据;
[0016]所述基于所述下推算子对所述目标数据进行计算,得到查询结果,包括:
[0017]在所述下推算子包括聚合算子的情况下,读取所述目标数据对应的各个节点的聚合数据,得到所述查询结果

[0018]在本说明书一个或多个实施方式中,所述基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,包括:
[0019]基于所述存储数据和
/
或所述下推算子,确定是否开启查询剪裁操作;
[0020]在确定开启查询剪裁操作的情况下,执行所述基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件的过程

[0021]在本说明书一个或多个实施方式中,确定是否开启查询剪裁操作的过程包括以下至少之一:
[0022]在所述下推算子包括数据估计算子的情况下,确定开启所述查询剪裁操作;
[0023]在所述下推算子包括聚合算子的情况下,响应于所述聚合算子的聚合函数类型与所述聚合数据的元数据类型一致,确定开启所述查询剪裁操作;
[0024]在所述下推算子包括过滤算子的情况下,响应于所述存储数据的历史选择率位于预设阈值范围,确定开启所述查询剪裁操作;
[0025]在所述待查询数据中存在预设数量的数据区间不包括增量数据的情况下,确定开启所述查询剪裁操作

[0026]在本说明书一个或多个实施方式中,所述基于所述下推算子对所述目标数据进行计算,得到查询结果,包括:
[0027]基于所述下推算子以预设数量的数据区间为步长,分批对所述目标数据进行计算,得到每批数据的查询反馈结果;
[0028]根据每批数据的查询反馈结果得到所述查询结果

[0029]在本说明书一个或多个实施方式中,数据查询方法还包括:
[0030]在基于所述下推算子对每批数据计算完成后,基于历史的查询反馈结果,确定是否开启查询剪裁操作

[0031]在本说明书一个或多个实施方式中,所述基于历史的查询反馈结果,确定是否开启查询剪裁操作的过程,包括以下至少之一:
[0032]在基于历史的查询反馈结果,确定之前的连续
N
个数据区间均不符合剪裁条件的情况下,确定查询剪裁操作关闭;
[0033]在基于历史的查询反馈结果,确定之前的连续
M
个数据区间均符合剪裁条件的情况下,确定查询剪裁操作开启,其中,
N

M
为大于等于1的整数

[0034]在本说明书一个或多个实施方式中,所述预设数量的取值与所述查询剪裁操作的维持时长正相关

[0035]第二方面,本说明书一个或多个实施方式提供了一种数据查询装置,包括:
[0036]数据确定模块,被配置为基于数据查询指令确定当前需要查询的存储数据和下推算子,所述存储数据包括待查询数据以及所述待查询数据对应的索引树,所述索引树中的节点对应于所述待查询数据的数据区间,并且每个节点的索引数据包括其下一级所有子节
点的索引数据的聚合数据;
[0037]数据剪裁模块,被配置为基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,并对符合剪裁条件的数据区间进行数据剪裁,得到目标数据;
[0038]下推计算模块,被配置为基于所述下推算子对所述目标数据进行计算,得到查询结果

[0039]在本说明书一个或多个实施方式中,所述数据剪裁模块被配置为:
[0040]对于所述索引树中的每个节点,根据所述节点的所述聚合数据的元数据,确定所述节点对应的数据区间是否为有效数据区间;
[0041]在所述节点对应的数据区间为有效数据区间的情况下,基于所述数据查询指令包括的剪裁条件,确定所述数据区间是否符合所述剪裁条件;
[0042]在所述数据区间不符合所述剪裁条件的情况下,确定所述节点的下一级子节点对应的数据区间是否符合所述剪裁条件,直至遍历所述索引树的所有节点

[0043]在本说明书一个或多个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据查询方法,包括:基于数据查询指令确定当前需要查询的存储数据和下推算子,所述存储数据包括待查询数据以及所述待查询数据对应的索引树,所述索引树中的节点对应于所述待查询数据的数据区间,并且每个节点的索引数据包括其下一级所有子节点的索引数据的聚合数据;基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,并对符合剪裁条件的数据区间进行数据剪裁,得到目标数据;基于所述下推算子对所述目标数据进行计算,得到查询结果
。2.
根据权利要求1所述的方法,所述基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,包括:对于所述索引树中的每个节点,根据所述节点的所述聚合数据的元数据,确定所述节点对应的数据区间是否为有效数据区间;在所述节点对应的数据区间为有效数据区间的情况下,基于所述数据查询指令包括的剪裁条件,确定所述数据区间是否符合所述剪裁条件;在所述数据区间不符合所述剪裁条件的情况下,确定所述节点的下一级子节点对应的数据区间是否符合所述剪裁条件,直至遍历所述索引树的所有节点
。3.
根据权利要求1所述的方法,所述对符合剪裁条件的数据区间进行数据剪裁,得到目标数据,包括:对于所述索引树中的任意一个节点,在所述节点对应的数据区间符合所述剪裁条件的情况下,将所述节点及其下级的所有子节点对应的数据区间进行数据剪裁,得到所述目标数据
。4.
根据权利要求1所述的方法,所述索引树包括聚合索引树,所述聚合索引树的底层节点的索引数据,包括所述底层节点对应的数据区间中所有数据的聚合数据;所述基于所述下推算子对所述目标数据进行计算,得到查询结果,包括:在所述下推算子包括聚合算子的情况下,读取所述目标数据对应的各个节点的聚合数据,得到所述查询结果
。5.
根据权利要求1至4任一项所述的方法,所述基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件,包括:基于所述存储数据和
/
或所述下推算子,确定是否开启查询剪裁操作;在确定开启查询剪裁操作的情况下,执行所述基于所述索引数据,自顶层至底层确定每个节点对应的数据区间是否符合剪裁条件的过程
。6.
根据权利要求5所述的方法,确定是否开启查询剪裁操作的过程包括以下至少之一:在所述下推算子包括数据估计算子的情况下,确定开启所述查询剪裁操作;在所述下推算子包括聚合算子的情况下,响应于所述聚合算子的聚合函数类型与所述聚合数据的元数据类型一致,确...

【专利技术属性】
技术研发人员:赵赛铜路昊澎陈嘉华
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1