[发明专利]涉及写入操作的SQL执行方法、装置及存储介质有效
申请号: | 202110439615.4 | 申请日: | 2021-04-23 |
公开(公告)号: | CN113204571B | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 王磊 | 申请(专利权)人: | 新华三大数据技术有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/242;G06F40/253;G06F40/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 450000 河南省郑州市郑州高*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 涉及 写入 操作 sql 执行 方法 装置 存储 介质 | ||
本公开提供一种涉及写入操作的SQL执行方法、装置及存储介质,用于解决Hudi表不支持SQL执行引擎执行涉及写入操作的SQL语句的技术问题。本公开对SQL语句的语义解析阶段、逻辑计划阶段、物理计划阶段进行了改进,将根据SQL语句生成的原始AST统一重构为Insert AST并在Hudi参数对象中记录SQL语句类型,在逻辑计划阶段在操作树中剔除Hudi表的内置字段,在物理计划阶段使用SpartTask任务替换MoveTask任务,根据所记录的SQL语句类型执行相应操作。本公开实现了基于hive数据仓库的Hudi存储格式,提供统一SQL支持,减少用户的繁琐代码、配置等工作,使用更加快捷、易用、灵活。
技术领域
本公开涉及大数据技术领域,尤其涉及一种涉及写入操作的SQL执行方法、装置及存储介质。
背景技术
Hive是建立在Hadoop上的数据仓库框架,提供一种类SQL的语言HQL (Hive QueryLanguage),对结构化和半结构化数据进行批量分析,完成数据计算。
HQL具有对海量数据处理的能力,将执行的HQL语句转换为分布式计算任务,从而完成海量数据的查询和分析工作。同时,为了满足不同场景的需求, HQL能通过实现用户自定义函数(User Defined Function,UDF)、用户自定义聚合函数(User-DefinedAggregation Function,UDAF)以及用户自定义表函数 (User-Defined Table-GeneratingFunctions,DTF)对其进行扩展。
Hive SQL执行SQL语句的过程通常需要经历词法语法解析、语义解析、生成逻辑执行计划、优化逻辑执行计划、生成物理计划、优化物理计划这几个阶段。
在词法语法解析阶段会对SQL语句进行词法和语法解析,生成抽象语法树(Abstract Syntax Tree,AST)。在语义解析阶段遍历AST,抽象出查询的基本组成单元QueryBlock。
在生成逻辑执行计划阶段会遍历QueryBlock,构造一颗父子关系操作树OperatorTree。操作树通常包含TableScanOperator、SelectOperator、FileSinkOperator、MoveOperator四类操作,FileSinkOperator是把select语句的查询结果输入到临时文件。在优化逻辑执行计划阶段会通过逻辑层优化器进行操作树OperatorTree的变换,合并Operator,达到减少MR Job,减少数据传输及shuffle数据量的目的。生成逻辑执行计划阶段和优化逻辑执行计划阶段统称为逻辑计划阶段。
在生成物理执行计划阶段遍历OperatorTree,将OperatorTree翻译为MapReduce/Tez/Spark任务。在优化物理执行计划阶段使用物理层优化器进行物理计划的变换,生成最终的执行计划。生成和优化物理执行计划阶段统称为物理计划阶段,其主要任务是把操作树构造成work链条,然后在对work进行编排构造成task任务链,一个task任务由一个work树组成,一个work由一个操作树组成。
Apache Hudi用于基于分布式文件系统(HDFS或云存储)接收和管理大型分析数据集的存储,是一个数据湖Data Lakes的开源方案。Hudi将DFS上的数据集组织到基本路径下的目录结构中。数据集分为多个分区,这些分区是包含该分区的数据文件的文件夹,这与Hive表非常相似。Hudi可提供类似于时序数据库的功能,每次提交都有一个时间,可以查询每个时间点的数据,也可以根据提交时间查询一段时间内的增量。Hudi可提供从不同时间点出发得到不同的视图下的数据集。主要特性是支持增量读取和更新插入。
Hudi提供两种存储类型,分别为写时复制和读时合并。写时复制存储类型仅使用列文件格式(例如parquet)存储数据,通过在写入过程中执行同步合并以更新版本并重写文件。读时合并存储类型使用列式(例如parquet)+基于行 (例如avro)的文件格式组合来存储数据,更新记录到增量文件中,然后进行同步或异步压缩以生成列文件的新版本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三大数据技术有限公司,未经新华三大数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110439615.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种流动性好的船用燃油及其制备方法
- 下一篇:一种洗头保护装置