一种基于预计算场景的查询处理方法及其装置制造方法及图纸

技术编号:37269357 阅读:11 留言:0更新日期:2023-04-20 23:39
本申请提供了一种基于预计算场景的查询处理方法及其装置,所述方法涉及用户端、优化端、执行端和数据库,所述方法包括:所述优化端接收所述用户端发送的查询请求,所述用户端用于依据用户需求生成查询请求,并向所述优化端发送所述查询请求;所述优化端依据所述查询请求在所述数据库中读取元数据;所述优化端依据所述数据表内的数据进行预计算处理生成第一访问约束;所述优化端依据所述第一访问约束和查询改写类型生成查询计划;所述优化端将所述查询计划发送至所述执行端,所述执行端用于将所述查询计划执行后生成的查询结果反馈至所述用户端。访问约束增加预计算处理之后,减少了查询执行过程中的计算量;加速了查询性能。加速了查询性能。加速了查询性能。

【技术实现步骤摘要】
一种基于预计算场景的查询处理方法及其装置


[0001]本申请涉及数据查询领域,特别是一种基于预计算场景的查询处理方法及其装置。

技术介绍

[0002]对于大数据场景下的查询分析,查询性能是关键指标之一。为了提升查询性能,业界探索了多种方法,包括索引、物化视图和cube、基于有界计算的访问约束。
[0003]目前现有技术中:1)索引:提高查询效率的典型方法是为查询创建合适的索引,常见的索引包括B+Tree索引、Hash索引、Bitmap索引,查询时根据索引可以快速的定位到满足条件的记录或记录的范围,从而减少参与计算的记录数。2)物化视图和cube:物化视图和cube都可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。当源表发生变化时,物化视图也应当刷新。3)基于有界计算的访问约束:基于上述有界计算的原理,可以在表上创建访问约束(AC){x

>y,N},对于表的任何满足访问约束的查询Q,都可以改写为对AC的查询Q

,从而加速查询性能。
[0004]而在大数据分析场景,针对海量数据的分组聚集、join、过滤等操作计算量都非常大,查询效率较低。基于有界计算理论的访问约束,对于包含分组聚集、join、过滤等操作的复杂查询的加速效果不够理想。存在大数据分析场景下访问约束效率不高的问题,极大的影响了查询效率。

技术实现思路

[0005]鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种基于预计算场景的查询处理方法及其装置,包括:
[0006]一种基于预计算场景的查询处理方法,所述方法涉及用户端、优化端、执行端和数据库,所述方法包括:
[0007]所述优化端接收所述用户端发送的查询请求,所述用户端用于依据用户需求生成查询请求,并向所述优化端发送所述查询请求;
[0008]所述优化端依据所述查询请求在所述数据库中读取元数据,其中,所述元数据包括数据表和访问约束集合;
[0009]所述优化端依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算;
[0010]所述优化端依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改写和Join改写;
[0011]所述优化端将所述查询计划发送至所述执行端,所述执行端用于将所述查询计划执行后生成的查询结果反馈至所述用户端。
[0012]进一步地,所述依据所述数据表内的数据进行预计算处理生成第一访问约束,其
中,所述预计算处理包括条件过滤、聚集函数和表达式计算的步骤,包括:
[0013]当所述预计算处理为所述条件过滤时,所述优化端依据预设过滤条件在所述数据表的所述数据中确定符合所述预设过滤条件的预处理数据;
[0014]所述优化端依据所述预处理数据生成所述第一访问约束。
[0015]进一步地,所述依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算的步骤,包括:
[0016]所述优化端依据所述数据生成第一初始访问约束,并获取所述第一初始访问约束中的第一表达式集合和第二表达式集合;
[0017]当所述预计算处理为所述聚集函数时,所述优化端在所述第一表达式集合和所述第二表达式集合中添加或修改预设聚集函数,并依据添加或修改的所述预设聚集函数后的所述第一表达式集合和所述预设聚集函数后的所述第二表达式集合生成所述第一访问约束;其中,所述预设聚集函数包括含有指定字段或含有指定表达式。
[0018]进一步地,所述依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算的步骤,包括:
[0019]所述优化端依据所述数据生成第二初始访问约束,并获取所述第二初始访问约束中的第三表达式集合和第四表达式集合;
[0020]当所述预计算处理为所述表达式计算时,所述优化端依据所述第三表达式集合和所述第四表达式集合获取目标字段;
[0021]所述优化端依据所述目标字段确定对应于所述数据表中的目标列;
[0022]所述优化端依据所述目标列确定对应于所述目标列的目标表达式;
[0023]所述优化端依据所述目标表达式进行计算生成所述第一访问约束。
[0024]进一步地,所述依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改写和Join改写的步骤,包括:
[0025]当所述查询改写类型为所述Filter匹配改写时,所述优化端确定分析查询语句生成的结果集是否为所述第一访问约束的子集,若是,则依据所述第一访问约束生成所述查询计划;或,
[0026]当所述查询改写类型为所述投影匹配改写时,所述优化端确定分析查询语句内的投影表达式是否包含在所述第一访问约束内,若是,则依据所述第一访问约束生成所述查询计划;或,
[0027]当所述查询改写类型为聚集列匹配改写时,所述优化端确定所述第一访问约束内的目标聚集函数,且修改分析查询语句对应的原始聚集函数,通过所述目标聚集函数和修改后的所述原始聚集函数生成所述查询计划;或,
[0028]当所述查询改写类型为Join改写时,所述优化端确定join算子的左右节点的数据是否存在于所述第一访问约束中,若是,则依据所述第一访问约束生成所述查询计划。
[0029]本申请实施例还公开了一种基于预计算场景的查询处理方法,所述方法涉及用户端、优化端、执行端和数据库,所述方法包括:
[0030]所述执行端接收所述优化端发送的所述查询计划,所述优化端用于向所述执行端发送所述查询计划;
[0031]所述执行端依据所述查询计划确定目标访问约束;
[0032]所述执行端依据所述目标访问约束在所述数据表确定第二目标数据;
[0033]所述执行端依据所述第二目标数据生成查询结果;
[0034]所述执行端将所述查询结果发送至所述用户端,所述用户端用于接收所述执行端反馈的所述查询结果。
[0035]本申请实施例还公开了一种基于预计算场景的查询处理方法,所述方法涉及用户端、优化端、执行端和数据库,所述方法包括:
[0036]所述用户端依据用户需求生成查询请求,并将所述查询请求发送至所述优化端,所述优化端用于接收所述用户端发送的所述查询请求;
[0037]所述用户端接收所述执行端发送的所述查询结果,并将所述查询结果返回至对应的目标用户,所述执行端用于将所述查询结果反馈至所述用户端。
[0038]本申请实施例还公开了一种基于预计算场景的查询处理装置,所述装置涉及用户端、优化端、执行端和数据库,所述装置包括:
[0039]第一发送模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于预计算场景的查询处理方法,其特征在于,所述方法涉及用户端、优化端、执行端和数据库,所述方法包括:所述优化端接收所述用户端发送的查询请求,所述用户端用于依据用户需求生成查询请求,并向所述优化端发送所述查询请求;所述优化端依据所述查询请求在所述数据库中读取元数据,其中,所述元数据包括数据表和访问约束集合;所述优化端依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算;所述优化端依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改写和Join改写;所述优化端将所述查询计划发送至所述执行端,所述执行端用于将所述查询计划执行后生成的查询结果反馈至所述用户端。2.根据权利要求1所述的方法,其特征在于,所述依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算的步骤,包括:当所述预计算处理为所述条件过滤时,所述优化端依据预设过滤条件在所述数据表的所述数据中确定符合所述预设过滤条件的预处理数据;所述优化端依据所述预处理数据生成所述第一访问约束。3.根据权利要求1所述的方法,其特征在于,所述依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算的步骤,包括:所述优化端依据所述数据生成第一初始访问约束,并获取所述第一初始访问约束中的第一表达式集合和第二表达式集合;当所述预计算处理为所述聚集函数时,所述优化端在所述第一表达式集合和所述第二表达式集合中添加或修改预设聚集函数,并依据添加或修改的所述预设聚集函数后的所述第一表达式集合和所述预设聚集函数后的所述第二表达式集合生成所述第一访问约束;其中,所述预设聚集函数包括含有指定字段或含有指定表达式。4.根据权利要求1所述的方法,其特征在于,所述依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算的步骤,包括:所述优化端依据所述数据生成第二初始访问约束,并获取所述第二初始访问约束中的第三表达式集合和第四表达式集合;当所述预计算处理为所述表达式计算时,所述优化端依据所述第三表达式集合和所述第四表达式集合获取目标字段;所述优化端依据所述目标字段确定对应于所述数据表中的目标列;所述优化端依据所述目标列确定对应于所述目标列的目标表达式;所述优化端依据所述目标表达式进行计算生成所述第一访问约束。5.根据权利要求1所述的方法,其特征在于,所述依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改
写和Join改写的步骤,包括:当所述查询改写类型为所述Filter匹配改写时,所述优化端确定分析查询语句生成的结果集是否为所述第一访问约束的子集,若是,则依据所述第一访问约束生成所述查询计划;或,当所述查询改写类型为所述投影匹配改写时,所述优化端确定分析查询语句内的投影表达式是否包含在所述第一访问约束内,若是,则依据所述第一访问约束生成所述查询计划;或,当所述查询改写类型为聚集列匹配改写时,所述优化端确定所述第一访问约束内的目标聚集函数,且修...

【专利技术属性】
技术研发人员:陈志标李伟超
申请(专利权)人:深圳计算科学研究院
类型:发明
国别省市:

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

1