【技術實現步驟摘要】
一種將SQL語句轉義為ES語句的方法及系統
[0001]本專利技術涉及數據庫
,具體而言,涉及一種將SQL語句轉義為ES語句的方法及系統。
技術介紹
[0002]隨著數據量的不斷增加,傳統的結構型數據庫查詢、更新的性能已經無法滿足業務訴求,故而很多應用都引入了elasticsearch(以下簡稱ES),ES是一個基于Lucene的開源分布式的搜索引擎,在大數據的搜索、分析方面,ES可以提供接近實時的可靠保障,因此ES作為實時數據搜索引擎已經被廣泛應用到各個場景中。但是,由于傳統的結構型數據庫的語法與ES的語法差異很大,想要從數據庫查詢切換到ES查詢,需要開發人員對數據庫的每一條SQL語句重新進行開發,整個過程耗時耗力、周期性長。
技術實現思路
[0003]本專利技術的目的在于提供一種將SQL語句轉義為ES語句的方法及系統,其通過對接收到原生SQL語句進行分析,獲得原生SQL語句的類型后針對不同類型的SQL語句類型,按照ES的語法對原生SQL語句進行轉義處理生成ES語句等步驟,可以將SQL的查詢性語句轉義為ES的布爾查詢語句、將SQL的事務性語句轉義為ES的事務操作語句,從而將原生SQL語句自動地轉義為ES語句,不需要開發人員針對數據庫的每一條SQL語句重新進行開發,節約了人力物力,縮短了開發周期;且可以幫助應用快速地從SQL模式切換至ES模式,應用通過執行自動生成的ES語句可以實時地搜索數據,進而提高數據(或數據庫)查詢、操作的速度。
[0004]本專利技術的實施例是這樣實現的: >[0005]第一方面,本申請實施例提供一種將SQL語句轉義為ES語句的方法,包括以下步驟:
[0006]接收原生SQL語句;
[0007]對所述原生SQL語句進行分析,得到所述原生SQL語句的類型;
[0008]根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句。
[0009]在本專利技術的一些實施例中,所述對所述原生SQL語句進行分析,得到所述原生SQL語句的類型的步驟具體包括:
[0010]解析所述原生SQL語句,獲得所述原生SQL語句的語句標識;
[0011]根據所述語句標識確定所述原生SQL語句的類型,所述原生SQL語句的類型包括查詢性語句和事務性語句。
[0012]在本專利技術的一些實施例中,所述根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句的步驟具體包括:
[0013]若所述原生SQL語句的類型為查詢性語句,則按ES的查詢語法將所述原生SQL語句轉義為ES的布爾查詢語句。
[0014]在本專利技術的一些實施例中,所述根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句的步驟具體還包括:
[0015]若所述原生SQL語句的類型為事務性語句,則按ES的事務操作語法將所述原生SQL語句轉義為ES的事務操作語句。
[0016]在本專利技術的一些實施例中,所述按ES的查詢語法將所述原生SQL語句轉義為ES的布爾查詢語句的步驟具體包括:
[0017]將原生SQL語句中的數據庫schema字段轉義為ES的index字段;
[0018]將原生SQL語句中的查詢條件字段、查詢方式字段進行ES轉義,并與所述ES的index字段組合成完整的ES的布爾查詢語句。
[0019]在本專利技術的一些實施例中,所述按ES的事務操作語法將所述原生SQL語句轉義為ES的事務操作語句的步驟具體包括:
[0020]將原生SQL語句中的數據庫schema字段轉義為ES的index字段;
[0021]將原生SQL語句中的事務標識字段、操作的目標字段及對應的值ES轉義后與所述ES的index字段組合成完整的ES的事務操作語句。
[0022]第二方面,本申請實施例提供一種將SQL語句轉義為ES語句的系統,其包括:
[0023]接收模塊,用于接收原生SQL語句;
[0024]分析模塊,用于對所述原生SQL語句進行分析,得到所述原生SQL語句的類型;
[0025]轉義模塊,用于根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句。
[0026]在本專利技術的一些實施例中,所述分析模塊具體包括:
[0027]解析子模塊,用于解析所述原生SQL語句,獲得所述原生SQL語句的語句標識;
[0028]確定子模塊,用于根據所述語句標識確定所述原生SQL語句的類型,所述原生SQL語句的類型包括查詢性語句和事務性語句。
[0029]第三方面,本申請實施例提供一種電子設備,其包括存儲器,用于存儲一個或多個程序;處理器,當上述一個或多個程序被上述處理器執行時,實現如上述第一方面中任一項上述的方法。
[0030]第四方面,本申請實施例提供一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現如上述第一方面中任一項上述的方法。
[0031]相對于現有技術,本專利技術的實施例至少具有如下優點或有益效果:
[0032]本專利技術的實施例提出了一種將SQL語句轉義為ES語句的方法,其通過對接收到原生SQL語句進行分析,獲得原生SQL語句的類型后針對不同類型的SQL語句類型,按照ES的語法對原生SQL語句進行轉義處理生成ES語句等步驟,可以將SQL的查詢性語句轉義為ES的布爾查詢語句、將SQL的事務性語句轉義為ES的事務操作語句,從而將原生SQL語句自動地轉義為ES語句,不需要開發人員針對數據庫的每一條SQL語句重新進行開發,節約了人力物力,縮短了開發周期;且可以幫助應用快速地從SQL模式切換至ES模式,應用通過執行自動生成的ES語句可以實時地搜索數據,進而提高數據(或數據庫)查詢、操作的速度。
附圖說明
[0033]為了更清楚地說明本專利技術實施例的技術方案,下面將對實施例中所需要使用的附
圖作簡單地介紹,應當理解,以下附圖僅示出了本專利技術的某些實施例,因此不應被看作是對范圍的限定,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他相關的附圖。
[0034]圖1為本專利技術一種將SQL語句轉義為ES語句的方法一實施例的流程圖;
[0035]圖2為本專利技術實施例中對所述原生SQL語句進行分析,得到所述原生SQL語句的類型的步驟的具體流程圖;
[0036]圖3為本專利技術實施例中根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句的步驟的具體流程圖;
[0037]圖4為本專利技術實施例中若所述原生SQL語句的類型為查詢性語句,則按ES的查詢語法將所述原生SQL語句轉義為ES的布爾查詢語句的具體流程圖;
[0038]圖5為本申請實施例中的若所述原生SQL語句的類型為事務性語句,則按ES的事務操作語法將所述原生SQL語句轉義為ES本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種將SQL語句轉義為ES語句的方法,其特征在于,包括:接收原生SQL語句;對所述原生SQL語句進行分析,得到所述原生SQL語句的類型;根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句。2.如權利要求1所述的一種將SQL語句轉義為ES語句的方法,其特征在于,所述對所述原生SQL語句進行分析,得到所述原生SQL語句的類型的步驟具體包括:解析所述原生SQL語句,獲得所述原生SQL語句的語句標識;根據所述語句標識確定所述原生SQL語句的類型,所述原生SQL語句的類型包括查詢性語句和事務性語句。3.如權利要求2所述的一種將SQL語句轉義為ES語句的方法,其特征在于,所述根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句的步驟具體包括:若所述原生SQL語句的類型為查詢性語句,則按ES的查詢語法將所述原生SQL語句轉義為ES的布爾查詢語句。4.如權利要求2所述的一種將SQL語句轉義為ES語句的方法,其特征在于,所述根據所述原生SQL語句的類型,按ES的語法對所述原生SQL語句進行轉義處理,得到對應的ES語句的步驟具體還包括:若所述原生SQL語句的類型為事務性語句,則按ES的事務操作語法將所述原生SQL語句轉義為ES的事務操作語句。5.如權利要求3任一所述的一種將SQL語句轉義為ES語句的方法,其特征在于,所述按ES的查詢語法將所述原生SQL語句轉義為ES的布爾查詢語句的步驟具體包括:將原生SQL語句中的數據庫schema字段轉義為ES的index字段;將原生SQL語句中的查詢條件字段、查詢方式字段進行ES轉義,并與所述ES...
【專利技術屬性】
技術研發人員:黃哲智,劉永富,陳柳柳,
申請(專利權)人:天翼電子商務有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。