[發明專利]涉及寫入操作的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.szxzyx.cn/pat/books/202110439615.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種流動性好的船用燃油及其制備方法
- 下一篇:一種洗頭保護裝置





