[發明專利]一種SQL到云環境的映射方法及系統在審
| 申請號: | 201410708225.2 | 申請日: | 2014-11-28 |
| 公開(公告)號: | CN104408134A | 公開(公告)日: | 2015-03-11 |
| 發明(設計)人: | 徐英鐘;虎嵩林;蘇伊鵬;陳建;吳凱鋒;李祥珍;王志強;張春光;裘煒浩;肖政;衡星辰 | 申請(專利權)人: | 中國科學院計算技術研究所;國網浙江省電力公司信息通信分公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;H04L29/08 |
| 代理公司: | 北京泛華偉業知識產權代理有限公司 11280 | 代理人: | 王勇 |
| 地址: | 100190 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sql 環境 映射 方法 系統 | ||
技術領域
本發明涉及并行數據庫以及查詢重寫和查詢優化技術領域,具體地說,本發明涉及SQL到云環境的映射方法。
背景技術
MapReduce提供了一個高度抽象的編程模型,它允許用戶只需關注于兩個函數(Mapper和Reducer)功能的邏輯實現,就可以快速地將他們的程序分布式地并行執行在多臺機器組成的集群當中,而不需要關注諸如數據擺放和任務調度等底層系統問題。隨著云計算技術的興起,用于將高層抽象語言自動轉換為Mapreduce任務流的Hive應運而生,它極大提高了數據分析代碼的重用能力。Hive和Mapreduce都是當前互聯網公司內廣泛應用的技術,許多公司用它們進行網頁的索引創建、用戶行為分析以及商品推薦。然而,當軟件工程師試圖利用Hive來替代并加速之前運行在RDBMS(關系型數據庫)中的存儲過程時,將已有的SQL(Structured?Query?Language,結構化查詢語言)轉換為正確、高效的HiveQL(Hive所使用的申明型語言)通常面臨許多困難。
SQL至Mapreduce的自動轉換和優化近幾年受到了極大的關注,當前已有的方法主要包括:1.采用基于規則的方法來引導這種轉換以減少開銷,例如Google提出的Tenzing系統。2.采用優化算法來合并生成的多個Mapreduce任務,以達到減少開銷的目的,例如YSmart系統。這兩種技術都主要關注于Mapreduce層次的優化,即直接將SQL語句轉成MapReduce任務,然后再采用優化算法來合并所生成的多個MapReduce任務。現有的這些優化方案可以在一定程度上提高SQL至Mapreduce的自動轉換的效率,但仍存在進一步提高的空間。
發明內容
因此,本發明的任務是克服現有技術的不足,幫助進一步提高SQL到云環境(例如Mapreduce)映射的效率的解決方案。
為實現上述發明目的,本發明提供了一種SQL到云環境的映射方法,包括下列步驟:
1)重寫待轉換SQL語句,獲得具有原待轉換SQL語句相同功能的多個重寫HiveQL語句;
2)對于步驟1)所得的每個重寫HiveQL語句,分別計算其對應的Mapreduce執行計劃的代價,根據所計算的代價選出其中最優的重寫HiveQL語句作為原SQL語句在云環境中的映射。
其中,所述步驟2)中,所述Mapreduce執行計劃的代價是該Mapreduce執行計劃所產生的總的中間數據量。
其中,所述步驟2)包括下列子步驟:
21)對于每個HiveQL語句,分別查詢其對應的Mapreduce執行計劃以及所涉及到的表的統計信息;
22)利用基于概率的基數估計方法,將所述的所涉及到的表的統計信息代入,得到所述Mapreduce執行計劃中每個Mapper操作和每個Reducer操作所產生的中間數據量,然后求和得到所述Mapreduce執行計劃所產生的總的中間數據量;
23)根據所計算的相應Mapreduce執行計劃所產生的總的中間數據量,選出最優的重寫HiveQL語句作為原SQL語句在云環境中的映射。
其中,所述步驟21)中,所述的表的統計信息包括:表的各列的唯一值數量、各個列的空值數量、各個列的最小值、各個列的最大值、各個列出現頻率最高的值分布以及各個列的平均比特數。
其中,所述步驟1)包括下列子步驟:
11)接收待轉換的SQL語句,將該SQL語句轉換成可編程操作的結構化語法樹;
12)掃描所述結構化語法樹,依據預先定義的一系列的規則觸發重寫操作,得到多個具有相同功能的HiveQL語句。
其中,所述步驟12)中,所述預先定義的一系列的規則包括:增加缺失列、抽取隱式JOIN、改寫EXISTS子查詢、改寫NOT?EXISTS子查詢、改寫通過OR連接的EXISTS/NOT?EXISTS子查詢、OR轉換為UNION、OR條件原地轉換、改寫UPDATE語句、改寫DELETE語句、改寫MERGE?INTO語句、調整JOIN順序的規則中的一項或多項。
其中,所述調整JOIN順序的規則是:如果語句中存在多個JOIN,則采用組合方法對參與JOIN的表進行前后執行順序的調整,從而形成多個不同的HiveQL語句。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所;國網浙江省電力公司信息通信分公司,未經中國科學院計算技術研究所;國網浙江省電力公司信息通信分公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410708225.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種雙螺桿面棒機
- 下一篇:含有吡菌苯威的殺菌組合物





