【技术实现步骤摘要】
涉及写入操作的SQL执行方法、装置及存储介质
本公开涉及大数据
,尤其涉及一种涉及写入操作的SQL执行方法、装置及存储介质。
技术介绍
Hive是建立在Hadoop上的数据仓库框架,提供一种类SQL的语言HQL(HiveQueryLanguage),对结构化和半结构化数据进行批量分析,完成数据计算。HQL具有对海量数据处理的能力,将执行的HQL语句转换为分布式计算任务,从而完成海量数据的查询和分析工作。同时,为了满足不同场景的需求,HQL能通过实现用户自定义函数(UserDefinedFunction,UDF)、用户自定义聚合函数(User-DefinedAggregationFunction,UDAF)以及用户自定义表函数(User-DefinedTable-GeneratingFunctions,DTF)对其进行扩展。HiveSQL执行SQL语句的过程通常需要经历词法语法解析、语义解析、生成逻辑执行计划、优化逻辑执行计划、生成物理计划、优化物理计划这几个阶段。在词法语法解析阶段会对SQL语句 ...
【技术保护点】
1.一种涉及写入操作的SQL执行方法,其特征在于,所述方法包括:/n对接收到的SQL语句进行词法和语法解析,生成抽象语法树AST,并获取元数据;所述SQL语句包括针对Hudi表的类型为插入类、更新类或删除类的SQL语句;/n在语义解析阶段,在生成所述SQL语句的抽象语法树AST后,构造Hudi参数对象;其中,所述Hudi参数至少包括表元数据信息、临时文件地址、Hudi标识、SQL语句类型;所述Hudi标识用于标识是否为针对Hudi表的操作;/n在逻辑计划阶段,根据Hudi参数对象判定所处理的表为Hudi表时,修改操作树中用于将中间结果数据写入临时文件的操作符对应的对象,使所 ...
【技术特征摘要】
1.一种涉及写入操作的SQL执行方法,其特征在于,所述方法包括:
对接收到的SQL语句进行词法和语法解析,生成抽象语法树AST,并获取元数据;所述SQL语句包括针对Hudi表的类型为插入类、更新类或删除类的SQL语句;
在语义解析阶段,在生成所述SQL语句的抽象语法树AST后,构造Hudi参数对象;其中,所述Hudi参数至少包括表元数据信息、临时文件地址、Hudi标识、SQL语句类型;所述Hudi标识用于标识是否为针对Hudi表的操作;
在逻辑计划阶段,根据Hudi参数对象判定所处理的表为Hudi表时,修改操作树中用于将中间结果数据写入临时文件的操作符对应的对象,使所述对象将Hudi表内置字段剔除;
在物理计划阶段,将原始生成的任务树中移动类任务替换为SpartTask任务,所述SparkTask任务用于读取存放中间结果的临时文件并直接调用SparkDataSourceAPI接口对Hudi表执行与Hudi对象中SQL语句类型相对应的操作。
2.根据权利要求1所述的方法,其特征在于,在所述构造Hudi参数对象之前,所述方法还包括:
根据所述抽象语法树,判断所述SQL语句是否是针对Hudi表的操作;
如果是针对Hudi表的操作,则执行构造Hudi参数对象的步骤,然后遍历所述抽象语法树,生成查询块;
如果不是针对Hudi表的操作,直接执行遍历所述抽象语法树,生成查询块的步骤;
所述查询块用于在逻辑计划阶段生成操作树。
3.根据权利要求2所述的方法,其特征在于,在判定是针对Hudi表的操作之后,在构造Hudi参数对象之前,所述方法还包括:
判断所述SQL语句的类型是否为更新类或删除类的SQL语句,若判定为更新类或删除类的SQL语句,则将所生成的抽象语法树重构为针对Hudi表的插入类SQL语句的抽象语法树即InsertAST,并剔除其中的Hudi表内置字段。
4.根据权利要求1所述的方法,其特征在于,
所述SQL执行引擎为HiveSQL执行引擎或SparkSQL执行引擎。
5.根据权利要求1所述的方法,其特征在于,根据所述元数据中的表属性inputformat是否为“org.apache.hudi.hadoop.HoodieParquetInputFormat”来判断是否是针对Hudi表的SQL语句。
6.一种...
【专利技术属性】
技术研发人员:王磊,
申请(专利权)人:新华三大数据技术有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。