[发明专利]一种基于预计算场景的查询处理方法及其装置有效
申请号: | 202310188956.8 | 申请日: | 2023-02-22 |
公开(公告)号: | CN115964374B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 陈志标;李伟超 | 申请(专利权)人: | 深圳计算科学研究院 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/2453 |
代理公司: | 深圳市智胜联合知识产权代理有限公司 44368 | 代理人: | 袁斌 |
地址: | 518000 广东省深圳市龙*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 预计 场景 查询 处理 方法 及其 装置 | ||
1.一种基于预计算场景的查询处理方法,其特征在于,所述方法涉及用户端、优化端、执行端和数据库,所述方法包括:
所述优化端接收所述用户端发送的查询请求,所述用户端用于依据用户需求生成查询请求,并向所述优化端发送所述查询请求;
所述优化端依据所述查询请求在所述数据库中读取元数据,其中,所述元数据包括数据表和访问约束集合;
所述优化端依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算,所述优化端依据所述数据生成第一初始访问约束,并获取所述第一初始访问约束中的第一表达式集合和第二表达式集合;当所述预计算处理为所述聚集函数时,所述优化端在所述第一表达式集合和所述第二表达式集合中添加或修改预设聚集函数,并依据添加或修改的所述预设聚集函数后的所述第一表达式集合和所述预设聚集函数后的所述第二表达式集合生成所述第一访问约束;其中,所述预设聚集函数包括含有指定字段或含有指定表达式;
当所述预计算处理为所述条件过滤时,所述优化端依据预设过滤条件在所述数据表的所述数据中确定符合所述预设过滤条件的预处理数据;所述优化端依据所述预处理数据生成所述第一访问约束;
所述优化端依据所述数据生成第二初始访问约束,并获取所述第二初始访问约束中的第三表达式集合和第四表达式集合;当所述预计算处理为所述表达式计算时,所述优化端依据所述第三表达式集合和所述第四表达式集合获取目标字段;所述优化端依据所述目标字段确定对应于所述数据表中的目标列;所述优化端依据所述目标列确定对应于所述目标列的目标表达式;所述优化端依据所述目标表达式进行计算生成所述第一访问约束;
所述优化端依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改写和Join改写;
所述优化端将所述查询计划发送至所述执行端,所述执行端用于将所述查询计划执行后生成的查询结果反馈至所述用户端;
所述执行端接收所述优化端发送的查询计划,所述优化端用于向所述执行端发送所述查询计划;
所述执行端依据所述查询计划确定目标访问约束;
所述执行端依据所述目标访问约束在数据表确定第二目标数据;
所述执行端依据所述第二目标数据生成查询结果;
所述执行端将所述查询结果发送至所述用户端,所述用户端用于接收所述执行端反馈的所述查询结果;所述用户端依据用户需求生成查询请求,并将所述查询请求发送至所述优化端,所述优化端用于接收所述用户端发送的所述查询请求;
所述用户端接收所述执行端发送的查询结果,并将所述查询结果返回至对应的目标用户,所述执行端用于将所述查询结果反馈至所述用户端。
2.根据权利要求1所述的方法,其特征在于,所述依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改写和Join改写的步骤,包括:
当所述查询改写类型为所述Filter匹配改写时,所述优化端确定分析查询语句生成的结果集是否为所述第一访问约束的子集,若是,则依据所述第一访问约束生成所述查询计划;或,
当所述查询改写类型为所述投影匹配改写时,所述优化端确定分析查询语句内的投影表达式是否包含在所述第一访问约束内,若是,则依据所述第一访问约束生成所述查询计划;或,
当所述查询改写类型为聚集列匹配改写时,所述优化端确定所述第一访问约束内的目标聚集函数,且修改分析查询语句对应的原始聚集函数,通过所述目标聚集函数和修改后的所述原始聚集函数生成所述查询计划;或,
当所述查询改写类型为Join改写时,所述优化端确定join算子的左右节点的数据是否存在于所述第一访问约束中,若是,则依据所述第一访问约束生成所述查询计划。
3.一种基于预计算场景的查询处理装置,其特征在于,所述装置涉及用户端、优化端、执行端和数据库,所述装置包括:
第一发送模块,用于所述优化端接收所述用户端发送的查询请求,所述用户端用于依据用户需求生成查询请求,并向所述优化端发送所述查询请求;
第一读取模块,用于所述优化端依据所述查询请求在所述数据库中读取元数据,其中,所述元数据包括数据表和访问约束集合;
第一生成模块,用于所述优化端依据所述数据表内的数据进行预计算处理生成第一访问约束,其中,所述预计算处理包括条件过滤、聚集函数和表达式计算,所述优化端依据所述数据生成第一初始访问约束,并获取所述第一初始访问约束中的第一表达式集合和第二表达式集合;当所述预计算处理为所述聚集函数时,所述优化端在所述第一表达式集合和所述第二表达式集合中添加或修改预设聚集函数,并依据添加或修改的所述预设聚集函数后的所述第一表达式集合和所述预设聚集函数后的所述第二表达式集合生成所述第一访问约束;其中,所述预设聚集函数包括含有指定字段或含有指定表达式;
当所述预计算处理为所述条件过滤时,所述优化端依据预设过滤条件在所述数据表的所述数据中确定符合所述预设过滤条件的预处理数据;所述优化端依据所述预处理数据生成所述第一访问约束;
所述优化端依据所述数据生成第二初始访问约束,并获取所述第二初始访问约束中的第三表达式集合和第四表达式集合;当所述预计算处理为所述表达式计算时,所述优化端依据所述第三表达式集合和所述第四表达式集合获取目标字段;所述优化端依据所述目标字段确定对应于所述数据表中的目标列;所述优化端依据所述目标列确定对应于所述目标列的目标表达式;所述优化端依据所述目标表达式进行计算生成所述第一访问约束;
第二生成模块,用于所述优化端依据所述第一访问约束和查询改写类型生成查询计划,其中,查询改写类型包括Filter匹配改写、投影匹配改写、聚集列匹配改写和Join改写;
第二发送模块,用于所述优化端将所述查询计划发送至所述执行端,所述执行端用于将所述查询计划执行后生成的查询结果反馈至所述用户端;
第三发送模块,用于所述执行端接收所述优化端发送的查询计划,所述优化端用于向所述执行端发送所述查询计划;
第一确定模块,用于所述执行端依据所述查询计划确定目标访问约束;
第二确定模块,用于所述执行端依据所述目标访问约束在数据表确定第二目标数据;
第三生成模块,用于所述执行端依据所述第二目标数据生成查询结果;
第四发送模块,用于所述执行端将所述查询结果发送至所述用户端,所述用户端用于接收所述执行端反馈的所述查询结果;
第五发送模块,用于所述用户端依据用户需求生成查询请求,并将所述查询请求发送至所述优化端,所述优化端用于接收所述用户端发送的所述查询请求;
返回模块,用于所述用户端接收所述执行端发送的查询结果,并将所述查询结果返回至对应的目标用户,所述执行端用于将所述查询结果反馈至所述用户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳计算科学研究院,未经深圳计算科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310188956.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:无线充电系统
- 下一篇:公共场所用气溶胶处理设备