数据处理的方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:37037576 阅读:14 留言:0更新日期:2023-03-29 19:17
本申请公开了数据处理的方法、装置、设备及计算机可读存储介质,属于大数据技术领域。方法包括:获取第一SQL语句和关系型数据,关系型数据包括已处理的SQL语句和已处理的SQL语句的关键要素之间的对应关系;获取第一SQL语句的关键要素;基于已处理的SQL语句的关键要素对第一SQL语句的关键要素进行优化,得到优化后的关键要素;基于优化后的关键要素获取对第一SQL语句重写得到的第二SQL语句,基于第二SQL语句进行数据处理。该方法避免了修改优化规则时需要侵入到查询分析引擎内部的问题,降低了可实现的难度。SQL重写可以复用到不同的数据库,且避免了不同数据库都需要修改优化规则的增量开发,减少了开发工作量。减少了开发工作量。减少了开发工作量。

【技术实现步骤摘要】
数据处理的方法、装置、设备及计算机可读存储介质


[0001]本申请实施例涉及大数据
,特别涉及一种数据处理的方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]随着大数据技术的发展,对数据库中的数据进行处理的方式也在不断进步。处理数据时,一般基于结构化查询语言(structured query language,SQL)语句进行,处理时SQL语句会被输入至查询分析引擎进行解析和处理,得到物理执行计划,以通过物理执行计划完成数据处理。其中,物理执行计划为访问数据库中的数据的有序步骤集合。
[0003]相关技术中,查询分析引擎对输入的SQL语句依次进行词法分析、语法分析和语义分析,得到语义分析结果,再基于语义分析的结果生成初步逻辑执行计划。为了提高处理速度,节省计算开销,利用查询分析引擎内的执行计划优化器所包含的优化规则对该初步逻辑执行计划进行优化,得到优化后的逻辑执行计划。之后,基于优化后的逻辑执行计划生成的物理执行计划进行数据处理。
[0004]由于上述方法利用查询分析引擎内的执行计划优化器所包含的优化规则对初步逻辑执行计划进行优化,因而如果需要修改执行计划优化器所包含的优化规则,则需要侵入到查询分析引擎内部实现,导致修改优化规则的难度大,且修改后的优化规则不容易进行复用和增量开发。

技术实现思路

[0005]本申请提供了一种数据处理的方法、装置、设备及计算机可读存储介质,可用于解决相关技术中的问题。所述技术方案如下:
[0006]一方面,提供了一种数据处理的方法,该方法包括:获取第一SQL语句和关系型数据,所述关系型数据包括已处理的SQL语句和所述已处理的SQL语句的关键要素之间的对应关系;获取所述第一SQL语句的关键要素;基于所述已处理的SQL语句的关键要素对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素;基于所述优化后的关键要素获取对所述第一SQL语句重写得到的第二SQL语句,基于所述第二SQL语句进行数据处理。
[0007]本申请提供的技术方案,基于已处理的SQL语句的关键要素对待处理的第一SQL语句的关键要素进行优化,该优化是在查询分析引擎之外进行的,所以避免了修改优化规则时需要侵入到查询分析引擎内部的问题,降低了可实现的难度。此外,在得到优化后的关键要素后,基于优化后的关键要素获取对第一SQL语句重写得到的第二SQL语句,再基于第二SQL语句进行数据处理,该SQL重写可以复用到不同的数据库,且避免了不同数据库都需要修改优化规则的增量开发,减少了开发工作量。
[0008]在一种可能的实现方式中,所述基于所述已处理的SQL语句的关键要素对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素,包括:遍历所述关系型数据,将遍历到的关系型数据中的关键要素与所述第一SQL语句的关键要素进行匹配,得到匹配结果;
确定所述匹配结果中满足条件的关系型数据;基于所述满足条件的关系型数据对应的物理执行计划,对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素。
[0009]在一种可能的实现方式中,所述确定所述匹配结果中满足条件的关系型数据,包括:通过优化器提供的优化规则确定所述满足条件的关系型数据。
[0010]在一种可能的实现方式中,所述优化规则是所述优化器内部的优化规则,或者是通过所述优化器提供的接口连接到的所述优化器外部,由外部输入的优化规则。优化规则可通过不同方式获取,增加了灵活性。
[0011]在一种可能的实现方式中,所述基于所述满足条件的关系型数据对应的物理执行计划,对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素,包括:基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一SQL语句的关键要素中的部分信息,得到所述优化后的关键要素;或者,基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一SQL语句的关键要素中的全部信息,得到所述优化后的关键要素。
[0012]在一种可能的实现方式中,所述基于所述第二SQL语句进行数据处理,包括:将所述第二SQL语句进行语法适配,按照适配后的SQL语句进行数据处理。通过将第二SQL语句进行语法适配,增加后续处理的成功率。
[0013]在一种可能的实现方式中,所述获取所述第一SQL语句的关键要素,包括:对所述第一SQL语句进行词法分析,得到第一词法分析结果;对所述第一词法分析结果进行语法分析,得到第一语法分析结果;对所述第一语法分析结果进行语义分析,得到第一语义分析结果;基于所述第一语义分析结果,对所述第一SQL语句进行检验;当所述第一SQL语句检验合格,获取所述第一SQL语句的关键要素。通过对第一SQL语句进行检验,在第一SQL语句检验合格后再去获取关键要素,从而避免因第一SQL语句不合格而继续处理导致的资源浪费,继而可以提高处理的可靠性。
[0014]在一种可能的实现方式中,所述对所述第一SQL语句进行检验,包括:对所述第一SQL语句所涉及到的模式Schema的合法性、表Table的存在性和列Column的存在性中的至少一个进行检验。
[0015]在一种可能的实现方式中,所述基于所述第二SQL语句进行数据处理,包括:对所述第二SQL语句进行词法分析,得到第二词法分析结果;对所述第二词法分析结果进行语法分析,得到第二语法分析结果;对所述第二语法分析结果进行语义分析,得到第二语义分析结果;基于所述第二语义分析结果,生成逻辑执行计划;基于所述逻辑执行计划,生成物理执行计划;基于所述物理执行计划进行数据处理。
[0016]在一种可能的实现方式中,所述关系型数据是物化视图,或者是关系型缓存。关系型数据的形式可以多样化,提高灵活性。
[0017]第二方面,提供了一种数据处理的装置,所述装置包括:
[0018]第一获取模块,用于获取第一SQL语句和关系型数据,所述关系型数据包括已处理的SQL语句和所述已处理的SQL语句的关键要素之间的对应关系;
[0019]第二获取模块,用于获取所述第一SQL语句的关键要素;
[0020]优化模块,用于基于所述已处理的SQL语句的关键要素对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素;
[0021]重写模块,用于基于所述优化后的关键要素获取对所述第一SQL语句重写得到的
第二SQL语句;
[0022]处理模块,用于基于所述第二SQL语句进行数据处理。
[0023]在一种可能的实现方式中,所述优化模块,用于遍历所述关系型数据,将遍历到的关系型数据中的关键要素与所述第一SQL语句的关键要素进行匹配,得到匹配结果;确定所述匹配结果中满足条件的关系型数据;
[0024]基于所述满足条件的关系型数据对应的物理执行计划,对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素。
[0025]在一种可能的实现方式中,所述优化模块,用于通过优化器提供的优化规则确定所述满足条件的关系型数据。
[0026]在一种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理的方法,其特征在于,所述方法包括:获取第一结构化查询语言SQL语句和关系型数据,所述关系型数据包括已处理的SQL语句和所述已处理的SQL语句的关键要素之间的对应关系;获取所述第一SQL语句的关键要素;基于所述已处理的SQL语句的关键要素对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素;基于所述优化后的关键要素获取对所述第一SQL语句重写得到的第二SQL语句,基于所述第二SQL语句进行数据处理。2.根据权利要求1所述的方法,其特征在于,所述基于所述已处理的SQL语句的关键要素对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素,包括:遍历所述关系型数据,将遍历到的关系型数据中的关键要素与所述第一SQL语句的关键要素进行匹配,得到匹配结果;确定所述匹配结果中满足条件的关系型数据;基于所述满足条件的关系型数据对应的物理执行计划,对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素。3.根据权利要求2所述的方法,其特征在于,所述确定所述匹配结果中满足条件的关系型数据,包括:通过优化器提供的优化规则确定所述满足条件的关系型数据。4.根据权利要求3所述的方法,其特征在于,所述优化规则是所述优化器内部的优化规则,或者是通过所述优化器提供的接口连接到的所述优化器外部,由外部输入的优化规则。5.根据权利要求2

4任一所述的方法,其特征在于,所述基于所述满足条件的关系型数据对应的物理执行计划,对所述第一SQL语句的关键要素进行优化,得到优化后的关键要素,包括:基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一SQL语句的关键要素中的部分信息,得到所述优化后的关键要素;或者,基于所述满足条件的关系型数据对应的物理执行计划,修改所述第一SQL语句的关键要素中的全部信息,得到所述优化后的关键要素。6.根据权利要求1

5任一所述的方法,其特征在于,所述基于所述第二SQL语句进行数据处理,包括:将所述第二SQL语句进行语法适配,按照适配后的SQL语句进行数据处理。7.根据权利要求1

6任一所述的方法,其特征在于,所述获取所述第一SQL语句的关键要素,包括:对所述第一SQL语句进行词法分析,得到第一词法分析结果;对所述第一词法分析结果进行语法分析,得到第一语法分析结果;对所述第一语法分析结果进行语义分析,得到第一语义分析结果;基于所述第一语义分析结果,对所述第一SQL语句进行检验;当所述第一SQL语句检验合格,获取所述第一SQL语句的关键要素。8.根据权利要求7所述的方法,其特征在于,所述对所述第一SQL语句进行检验,包括:对所述第一SQL语句所涉及到的模式Schema的合法性、表Table的存在性和列Column的
存在性中的至少一个进行检验。9.根据权利要求1

8任一所述的方法,其特征在于,所述基于所述第二SQL语句进行数据处理,包括:对所述第二SQL语句进行词法分析,得到第二词法分析结果;对所述第二词法分析结果进行语法分析,得到第二语法分析结果;对所述第二语法分析结果进行语义分析,得到第二语义分析结果;基于所述第二语义分析结果,生成逻辑执行计划;基于所述逻辑执行计划,生成物理执行计划;基于所述物理执行计划进行数据处理。10.根据权利要求1

9任一所述的方法,其特征在于,所述关系型数据是物化视图,或者是关系型缓存。11.一种数据处理的装置,其特征在于,所述装置包括:第一获取模块,用于获取第一结构化处理语言SQL语句和关系型数据...

【专利技术属性】
技术研发人员:李铮刘玉罗旦张巍
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1