当前位置: 首页 > 专利查询>南京大学专利>正文

规则驱动和数据驱动相结合的跨平台SQL查询优化方法技术

技术编号:24995872 阅读:23 留言:0更新日期:2020-07-24 17:58
本发明专利技术公开了一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法,包括以下步骤:第一步,将跨平台SQL语句解析成系统内部的逻辑查询计划;第二步,优化器调度模块依据逻辑查询计划的特点调度最适合的优化器进行查询优化;第三步,规则驱动的优化器依据规则进行计划搜索,并依据代价模型和基数估算进行执行计划的选择,得到最佳物理执行计划,且将优化结果导入样本采集模块;第四步,样本采集模块导入的样本经过数据适配模块转化为训练样本,数据驱动的优化器利用训练样本进行强化学习模型训练,将查询输入训练好的模型得到最佳物理执行计划。本发明专利技术解决了现有跨平台SQL查询优化方法可拓展性差、灵活性低、优化效果差等问题。

【技术实现步骤摘要】
规则驱动和数据驱动相结合的跨平台SQL查询优化方法
本专利技术涉及跨平台SQL查询优化
,尤其涉及一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法。
技术介绍
近年来,随着各行各业对大数据分析处理应用需求的不断增长,大数据查询系统逐步向多样化方向发展。这些数据查询系统在查询语言、计算模型、系统架构与底层存储技术等方面各有特点,适用于不同垂直应用场景,因此现代企业或组织为了处理多样化业务,通常会构建多种不同的数据查询系统。然而,很多综合性业务需要能进行便捷、高效的跨平台数据查询,例如,同一个机构跨部门之间的数据统一分析业务就有这种需求。因此,如何充分利用不同计算平台的特性完成高效便捷的跨平台数据查询已成为当前学术界与工业界的研究热点。由于不同数据引擎面向的查询场景不同,因此优化跨平台查询,为查询选择合适的执行平台能极大提高查询效率。但是查询优化是一种组合式复杂问题,再加上跨平台因素,相当于扩充了连接算子的种类,使搜索空间更加庞大。因此目前普遍采用启发式的方法进行查询优化,例如,经典的SystemR系统通常会将搜索空间限制为某些形状(例如“左深树”计划)。查询优化器有时还会使用遗传或随机算法等更加启发式的方法应用于大型连接查询。在边界情况下,这些启发式方法可能会崩溃,从而导致查询效率低下。已有的跨平台查询优化相关工作在灵活性、可拓展性、高效性方面都存在一定不足。首先,现有工作进行查询优化时严重依赖固定的启发式策略,因此不能随着数据集和查询负载变化而灵活改变优化策略,导致边界情况得到很差的结果。其次,部分跨平台查询优化方法采用穷举的方式进行执行计划的搜索,导致其可优化的查询连接规模受限。此外,现有的跨平台查询优化方法找到的物理执行计划并不高效,不能以最优的方式实现子查询划分和子查询调度,无法充分利用多个执行平台的性能。
技术实现思路
专利技术目的:针对上述现有技术存在的问题和不足,本专利技术的目的是提供一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法,解决了现有跨平台查询优化方法可拓展性差、灵活性低和优化效果差等问题。技术方案:为实现上述专利技术目的,本专利技术采用的技术方案为一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法,包括以下步骤:(1)将跨平台SQL语句解析成系统内部的逻辑查询计划;(2)优化器调度模块依据逻辑查询计划的特点以及优化器状态调度最适合的优化器进行查询优化,如果选择第一优化器,转向步骤(3),如果选择第二优化器,转向步骤(4);(3)第一优化器依据优化规则进行计划搜索,并依据代价模型和基数估算进行执行计划的选择,得到第一物理执行计划;(4)第二优化器利用强化学习技术建立优化模型并进行模型训练,利用训练好的模型进行查询优化得到最佳连接序列,再由数据适配模块将所述最佳连接序列转化为第二物理执行计划;(5)收集第一物理执行计划至样本采集模块,为第二优化器模型训练提供样本。进一步地,所述步骤(2)中,优化器调度模块以连接规模大小以及优化器状态作为调度的依据选择查询优化器:当第二优化器优化模型训练完成时,如果连接规模小于或等于设定阈值则选择第一优化器,如果连接规模大于设定阈值则选择第二优化器。进一步地,所述步骤(2)中,当第二优化器优化模型还未训练完成时,采用第一优化器且适当放宽物理执行计划的搜索空间以此生成更为有效的物理执行计划。进一步地,所述步骤(3)中,第一优化器为规则驱动的优化器,物理执行计划绑定了具体的执行平台,查询数据能够在不同的执行平台之间迁移;所述第一优化器依据优化规则进行自顶向下的执行计划搜索,优化规则的执行顺序由一个重要性指标指导,从而促进算法的收敛。进一步地,所述步骤(3)中,建立代价模型,综合考虑数据迁移的代价和查询在平台上的执行代价,并且以此为依据选择总体代价最小的物理执行计划为第一物理执行计划。进一步地,所述步骤(4)中,第二优化器为数据驱动的优化器,将跨平台查询优化问题抽象成马尔科夫决策过程,并对马尔科夫决策过程采用强化学习技术建立模型并进行训练,最终依据训练好的模型进行跨平台查询优化得到最佳连接序列。进一步地,所述步骤(4)中,数据适配模块通过连接算子划分物理执行计划为子查询,从而适配第二优化器的输入;通过深度优先遍历最佳连接序列生成第二物理执行计划,从而适配第二优化器的输出。有益效果:本专利技术能够在跨平台SQL查询场景下高效地进行跨平台查询优化,有效解决了跨平台SQL查询优化在灵活性、可拓展性、高效性方面的问题。第一,本专利技术提供了规则驱动的跨平台查询优化器,针对简单查询可以快速获得最优物理执行计划,且为数据驱动的跨平台查询优化器提供了训练样本;第二,本专利技术提供了数据启动的跨平台查询优化器,优化器根据物理执行计划实例学习特定的搜索策略,从而显著减少执行计划的搜索时间,提升优化效果;第三,本专利技术提供了优化器调度策略,通过结合规则驱动和数据驱动优化器的特性,针对不同场景选择合适的优化器,从而进一步提升跨平台优化器的性能和效果。附图说明图1为本专利技术的总体方法流程示意图;图2为本专利技术中规则驱动的优化器内部root树结构的示意图;图3为本专利技术中数据驱动的优化器优化过程示意图。具体实施方式下面结合附图和具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。本专利技术提出了一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法,解决了现有跨平台查询优化方法可拓展性差、灵活性低和优化效果差等问题。如图1所示,本专利技术的完整流程包括SQL解析阶段、优化器调度阶段、规则驱动的查询优化阶段、数据驱动的查询优化阶段以及训练样本采集阶段5个部分。具体的实施方式说明如下:SQL解析阶段对应技术方案步骤(1)。具体实施方式为:跨平台查询语句先被解析为一颗抽象语法树,接着会验证查询语句中出现的表、列以及数据类型的有效性,并判断是否存在由同名命名空间(Namespace)或同名表带来的歧义。验证完成之后,检查SQL中是否存在语义错误,并将抽象语法树转换为逻辑查询计划。优化器调度阶段对应技术方案步骤(2)。具体实施方式为:以连接规模大小作为调度的依据。当连接表的数量小于等于4时,因为规模有限(查询树的数量≤120),枚举执行计划的代价不高,所以采用规则驱动的优化器枚举执行计划,寻找最优执行计划。当连接规模大于4时,规则驱动的优化器枚举的开销过大(查询树的数量≥1680),只能采用基于编码的固定启发式方法进行优化,此时采用数据驱动的优化器能够有效避免基于编码的固定启发式方法的缺陷。当系统冷启动,数据集自适应优化器还未训练完成时,采用规则驱动的优化器且适当放宽采用枚举策略的连接规模阈值至6(查询树的数量=30240),以此来放宽物理执行计划的搜索空间,收集更为有效的执行计划进行训练。规则驱动本文档来自技高网
...

【技术保护点】
1.一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法,包括以下步骤:/n(1)将跨平台SQL语句解析成系统内部的逻辑查询计划;/n(2)优化器调度模块依据逻辑查询计划的特点以及优化器状态调度最适合的优化器进行查询优化,如果选择第一优化器,转向步骤(3),如果选择第二优化器,转向步骤(4);/n(3)第一优化器依据优化规则进行计划搜索,并依据代价模型和基数估算进行执行计划的选择,得到第一物理执行计划;/n(4)第二优化器利用强化学习技术建立优化模型并进行模型训练,利用训练好的模型进行查询优化得到最佳连接序列,再由数据适配模块将所述最佳连接序列转化为第二物理执行计划;/n(5)收集第一物理执行计划至样本采集模块,为第二优化器模型训练提供样本。/n

【技术特征摘要】
1.一种规则驱动和数据驱动相结合的跨平台SQL查询优化方法,包括以下步骤:
(1)将跨平台SQL语句解析成系统内部的逻辑查询计划;
(2)优化器调度模块依据逻辑查询计划的特点以及优化器状态调度最适合的优化器进行查询优化,如果选择第一优化器,转向步骤(3),如果选择第二优化器,转向步骤(4);
(3)第一优化器依据优化规则进行计划搜索,并依据代价模型和基数估算进行执行计划的选择,得到第一物理执行计划;
(4)第二优化器利用强化学习技术建立优化模型并进行模型训练,利用训练好的模型进行查询优化得到最佳连接序列,再由数据适配模块将所述最佳连接序列转化为第二物理执行计划;
(5)收集第一物理执行计划至样本采集模块,为第二优化器模型训练提供样本。


2.根据权利要求1所述的规则驱动和数据驱动相结合的跨平台SQL查询优化方法,其特征在于:所述步骤(2)中,优化器调度模块以连接规模大小以及优化器状态作为调度的依据选择查询优化器:当第二优化器优化模型训练完成时,如果连接规模小于或等于设定阈值则选择第一优化器,如果连接规模大于设定阈值则选择第二优化器。


3.根据权利要求2所述的规则驱动和数据驱动相结合的跨平台SQL查询优化方法,其特征在于:所述步骤(2)中,当第二优化器优化模型还未训练完成时,采用第一优化器且适当放宽物理执行计划的搜索空间以此生成更为...

【专利技术属性】
技术研发人员:顾荣张仪袁春风黄宜华
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1