[發明專利]一種查詢elasticsearch的實現方法及系統有效
| 申請號: | 201710194847.1 | 申請日: | 2017-03-28 |
| 公開(公告)號: | CN106934062B | 公開(公告)日: | 2020-05-19 |
| 發明(設計)人: | 楊佳佳;謝勝利 | 申請(專利權)人: | 廣東工業大學 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F16/2453;G06F16/2458 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 羅滿 |
| 地址: | 510062 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 查詢 elasticsearch 實現 方法 系統 | ||
本發明公開了一種基于calcite的sql查詢elasticsearch的實現方法,包括:獲取輸入的SQL語句;根據提供的元數據對所述SQL語句進行元數據驗證;在驗證通過后對所述SQL語句進行解析得到SQL語法樹;利用附加規則將所述SQL語法樹轉換為elasticsearch可執行的匹配條件和查詢執行動作,返回查詢結果集;該實現方法解析SQL語句,完成SQL至elasticsearch java API的適配和優化;本發明公開了一種基于calcite的sql查詢elasticsearch的實現系統,具有上述有益效果。
技術領域
本發明涉及數據處理技術領域,特別涉及一種基于calcite的sql查詢elasticsearch的實現方法及系統。
背景技術
elasticsearch是一個實時的分布式搜索和分析引擎,其數據邏輯組織方式類似于關系型數據庫,比如:elasticsearch會對數據進行索引(index),每個索引下都有類型(type),每個類型都有對應的mapping。這些概念對應于關系型數據庫的庫(database)、表格(table)和schema。
elasticsearch提供了特定的數據查詢API接口(RESTful API或JavaclientAPI),這些接口都需要對elasticsearch進行學習才能較好地使用。而數據分析工程師對于SQL語言更為熟悉,事實上,IT軟件開發者基本上都更熟悉SQL語言。對于elasticsearch這樣一個專注于搜索領域的引擎/服務器,不一定知曉,也不一定熟悉。那么一個很自然的需求就是,通過SQL語句來訪問elasticsearch的數據。
SQL on elasticsearch相當于一個中間件,接收SQL語句作為輸入,然后解析、優化、轉換為elasticsearch所能接受的API,查詢得到elasticsearch的數據后,作為結果輸出。
現有的SQL on elasticsearch一般是作為elasticsearch服務器的一個插件,提供一種交互式的、簡單的數據查看。比如:elasticsearch-sql是github上的一個第三方開源插件,與elasticsearch綁定后,可以在瀏覽器web頁面輸入SQL語句。插件會通過表格的方式返回數據。
但是目前其僅以插件形式存在,只能在web頁面簡單查看數據,不能集成到程序代碼中,可用性不強。不管是SQL數據庫查詢,還是elasticsearch搜索引擎,它們都是應用于后臺程序代碼中。使用者基本上都是程序員。而elasticsearch-sql插件只是提供了一個查看elasticsearch數據的簡單的可視化表格。輸入一個SQL語句,出來一個表格,這對于程序員來說根本就沒多大的作用。因為它不是以框架形式存在的,沒有提供API接口以供程序中調用。而且該插件僅支持elasticsearch 2.3.x及以下的版本,不支持最新的5.x版本。其次,SQL查詢語句支持度不夠,比如不支持別名。如何克服上述缺點,是本領域技術人員需要解決的技術問題。
發明內容
本發明的目的是提供一種基于calcite的sql查詢elasticsearch的實現方法及系統,解析SQL語句,完成SQL至elasticsearch java API的適配和優化。
為解決上述技術問題,本發明提供一種基于calcite的sql查詢elasticsearch的實現方法,包括:
獲取輸入的SQL語句;
根據提供的元數據對所述SQL語句進行元數據驗證;
在驗證通過后對所述SQL語句進行解析得到SQL語法樹;
利用附加規則將所述SQL語法樹轉換為elasticsearch可執行的匹配條件和查詢執行動作,返回查詢結果集。
可選的,所述元數據的提供過程包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東工業大學,未經廣東工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710194847.1/2.html,轉載請聲明來源鉆瓜專利網。





