本發明涉及數據庫預處理技術領域,尤其涉及一種分布式數據庫預處理的方法及裝置。
背景技術:
目前,通常采用數據庫預處理技術對數據庫服務器進行操作,當創建數據庫預處理操作語句時,客戶端向數據庫服務器發送一個包括查詢、插入、更新等操作的數據庫操作語句模板,然后,數據庫服務器對數據庫操作語句模板進行解析,生成對應的語法樹,并將經過處理的數據庫操作語句模板保存起來,數據庫預處理操作語句模板用問號(?)代表執行具體操作的參數值,當客戶端執行對應的查詢、插入、更新等具體操作時,可以將問號所代表的參數值發送至數據庫服務器,即可得到操作結果,上述過程可以重復多次,采用數據庫預處理操作技術的優勢在于:
1、數據庫所在的服務器只需解析一次數據庫操作語句,并且完整的數據庫操作語句不會被發送至服務器,只需采用二進制協議的形式發送參與具體業務的參數信息,節約了處理具體業務的開銷如內存、帶寬;
2、數據庫所在的服務器緩存了部分處理數據庫操作語句的計劃,所以只需執行一次解析數據庫操作語句的動作,提高了處理具體業務的效率;
3、采用預處理技術的數據庫服務器,可以有效避免所述數據庫服務器遭遇注入式攻擊,提高了數據庫服務器的安全性。
但是,數據庫預處理技術目前只能在獨立式數據庫服務器上使用,而不能在分布式數據庫服務器上使用。
技術實現要素:
本發明的主要目的在于提供一種分布式數據庫預處理的方法及裝置,旨在解決數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
為了實現上述目的,本發明提供一種分布式數據庫預處理的方法,所述方法包括以下步驟:
從客戶端處獲取分布式數據庫操作語句模板,并獲取操作語句參數信息;
通過解析所述分布式數據庫操作語句模板確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,并發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群;
發送所述操作語句參數信息至所述分布式數據庫服務器集群;
獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果。
優選地,所述通過解析所述分布式數據庫操作語句模板確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群的步驟包括:
解析所述分布式數據庫操作語句模板生成語法樹;
根據所述語法樹,計算生成所述分布式數據庫操作語句模板的執行計劃樹;
根據所述執行計劃樹,獲取與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群。
優選地,所述操作語句參數信息包括操作語句參數值及用于將所述操作語句參數值匹配給所述分布式數據庫操作語句模板的標識信息。
優選地,所述獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果的步驟包括:
獲取由所述分布式數據庫服務器集群返回的結果數據,其中,所述結果數據是位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器結合所述分布式數據庫操作語句模板及所述操作語句參數信息對存儲于對應的分布式數據庫服務器中的數據進行處理而得到的結果;
對所述結果數據進行匯總計算,獲取經過匯總計算的結果集。
優選地,所述獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果的步驟之后還包括:
將所述處理結果發送至客戶端;從客戶端處獲取關閉預處理操作的請求信息,并發送所述請求信息至執行預處理操作的分布式數據庫服務器集群;關閉位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器的預處理服務。
此外,為實現上述目的,本發明還提供一種分布式數據庫預處理的裝置,所述裝置包括:
模板獲取模塊,用于從客戶端處獲取分布式數據庫操作語句模板,并獲取操作語句參數信息;
模板處理模塊,用于通過解析所述分布式數據庫操作語句模板確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,并發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群;
參數信息轉發模塊,用于發送所述操作語句參數信息至所述分布式數據庫服務器集群;
結果返回模塊,用于獲取所述分布式數據庫服務器根據所述執行預處理操作的請求信息返回的處理結果。
優選地,所述操作語句參數信息包括操作語句參數值及用于將所述操作語句參數值匹配給所述分布式數據庫操作語句模板的標識信息。
優選地,所述模板處理模塊還用于:
解析生成所述分布式數據庫操作語句模板的語法樹;
根據所述語法樹,計算生成所述分布式數據庫操作語句模板的執行計劃樹;
根據所述執行計劃樹,獲取與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群。
優選地,所述結果返回模塊還用于:
獲取由所述分布式數據庫服務器集群返回的結果數據,其中,所述結果數據是位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器結合所述分布式數據庫操作語句模板及所述操作語句參數信息對存儲于對應的分布式數據庫服務器中的數據進行處理而得到的結果;
對所述結果數據進行匯總計算,獲取經過匯總計算的結果集。
優選地,所述分布式數據庫預處理的裝置還包括:
將所述處理結果發送至客戶端;從客戶端處獲取關閉預處理操作的請求信息,并發送所述請求信息至執行預處理操作的分布式數據庫服務器集群;關閉位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器的預處理服務。
本發明提供了一種分布式數據庫預處理的方法及裝置,通過從客戶端處獲取分布式數據庫操作語句模板,并獲取操作語句參數信息,對所述分布式數據庫操作語句模板進行解析,確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群,并發送所述操作語句參數信息至所述分布式數據庫服務器集群,獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果,從而解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
附圖說明
圖1為本發明分布式數據庫預處理的方法一實施例的流程示意圖;
圖2為本發明分布式數據庫預處理的方法二實施例的流程示意圖;
圖3為本發明分布式數據庫預處理的裝置一實施例的功能模塊示意圖;
圖4是本發明實施例中分布式數據庫系統的結構示意圖;
圖5是本發明實施例中分布式數據庫操作語句預處理的裝置的另一種功能模塊示意圖;
圖6為本發明分布式數據庫預處理的裝置二實施例的功能模塊示意圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
本發明提供一種分布式數據庫預處理的方法。
參照圖1,圖1為本發明分布式數據庫操作語句預處理的方法一實施例的流程示意圖。
在一實施例中,該分布式數據庫操作語句預處理的方法包括:
步驟s10,從客戶端處獲取分布式數據庫操作語句模板,并獲取操作語句參數信息;
本實施例中的技術方案涉及客戶端與分布式數據庫服務器之間的交互,以實現客戶端通過發送分布式數據庫操作語句請求來完成對分布式數據庫的訪問。其中,本實施例在客戶端與分布式數據庫服務器之間引入中間件,也稱分布式數據庫操作語句預處理的裝置,通過中間件實現分布式數據庫預處理。
本實施例分布式數據庫系統的結構可以如圖4所示,其中,本實施例中的分布式數據庫操作語句預處理的裝置可以包括執行模塊及操作語句路由模塊(sql路由模塊)。
具體地,作為一種功能模塊設置方式,可以參照圖5所示,所述執行模塊可以包括線程池單元、線程調度單元、數據操作語句解析單元(sql解析單元)、數據操縱語言單元(dml單元)、數據定義語言單元(ddl單元)、中介數據緩存單元,以及與sql路由接口,具體的執行模塊的組成部分,在此不作限定。
具體地,所述線程池單元負責管理所述分布式數據庫操作語句預處理的裝置的所有線程的使用與回收。當所述分布式數據庫操作語句預處理的裝置獲取由客戶端處發送的分布式數據庫操作語句模板時,所述線程調度單元從所述線程池單元調度一個線程用于處理所述分布式數據庫操作語句模板。
所述數據定義語言單元負責將數據定義語句轉化為可在分布式數據庫服務器中執行的數據定義語句,并將所述數據定義語句的分發策略信息存儲于數據字典文件中,再將所述分發策略信息加載至緩存中,以供所述數據操縱語言單元使用。
當所述分布式數據庫操作語句預處理的裝置啟動時,所述分布式數據庫操作語句預處理的裝置將全部分發策略信息加載至緩存中,所述中介數據緩存單元負責管理所述分發策略信息,并向所述數據操縱語言單元提供查詢服務。
本實施例中,通過在客戶端處設定分布式數據庫操作語句,其中,所述分布式數據庫操作語句包括分布式數據庫操作語句模板與分布式數據庫操作語句參數值。客戶端將分布式數據庫操作語句拆分為單獨的分布式數據庫操作語句模板與單獨的分布式數據庫操作語句參數值,其中,單獨的分布式數據庫操作語句模板,如insertintostudents(firstname,lastname,email) values(?,?,?),可以包括操作語句語法框架、數據庫表頭信息、操作語句參數變量,具體地,所述分布式數據庫操作語句模板的組成部分,在此不作限定。分布式數據庫操作語句模板由客戶端發送至分布式數據庫操作語句預處理的裝置。
步驟s20,通過解析所述分布式數據庫操作語句模板確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,并發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群;
在獲取分布式數據庫操作語句模板后,分布式數據庫操作語句預處理的裝置對所述分布式數據庫操作語句模板進行解析,確定存儲以數據庫表頭信息作為標識的數據庫表的分布式數據庫服務器,將全部符合條件的分布式數據庫服務器打包成一個分布式數據庫服務器集群,再向所述分布式數據庫服務器集群發送包括所述數據庫表頭信息的分布式數據庫操作語句模板。
步驟s30,發送所述操作語句參數信息至所述分布式數據庫服務器集群;
在分布式數據庫操作語句預處理的裝置獲取由客戶端發送的與所述分布式數據庫操作語句模板匹配的操作語句參數信息后,所述分布式數據庫操作語句預處理的裝置將所述操作語句參數信息發送至經過確定的分布式數據庫服務器集群。
位于所述分布式數據庫服務器集群中的所有分布式數據庫服務器將之前獲取的分布式數據庫操作語句模板與所述操作語句參數信息進行組合,形成可以被所述分布式數據庫服務器執行的完整的分布式數據庫操作語句,通過執行所述分布式數據庫操作語句,完成對存儲于所述分布式數據庫服務器中的數據的具體操作,如查詢數據、插入數據、更新數據等,具體的,所述具體操作的操作內容,在此不作限定。
步驟s40,獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果。
在完成相關的操作后,所有分布式數據庫服務器將操作結果發送至分布式數據庫操作語句預處理的裝置,所述操作結果包括操作成功信息、操作失敗信息、操作用時信息等,具體地,所述操作結果,在此不作限定。
本實施例通過從客戶端處獲取分布式數據庫操作語句模板,并獲取操作 語句參數信息,對所述分布式數據庫操作語句模板進行解析,確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群,并發送所述操作語句參數信息至所述分布式數據庫服務器集群,獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
進一步地,在其他實施例中,上述步驟s20可以包括:
解析生成所述分布式數據庫操作語句模板的語法樹;
根據所述語法樹,計算所述分布式數據庫操作語句模板生成執行計劃樹;
根據所述執行計劃樹,獲取與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群。
該實施例中,通過解析由客戶端處獲取的分布式數據庫操作語句模板,生成所述分布式數據庫操作語句模板的語法樹,由數據操縱語言單元對所述語法樹進行計算,生成所述分布式數據庫操作語句模板的計劃執行樹,根據所述計劃執行樹,所述數據操縱語言單元確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,并將所有位于所述分布式數據庫服務器集群中的分布式數據庫服務器的網絡地址信息存儲于所述執行計劃樹的節點中,由分布式數據庫操作語句預處理的裝置將所述分布式數據庫操作語句模板發送至所述分布式數據庫服務器集群。
具體地,所述數據操作語句解析單元負責解析由客戶端處獲取的分布式數據庫操作語句模板,生成所述分布式數據庫操作語句模板的語法樹,再將所述語法樹發送至所述數據操縱語言單元與所述數據定義語言單元用于生成與所述分布式數據庫操作語句模板對應的執行計劃樹。
在一種實施方式中,客戶端將分布式數據庫操作語句模板發送至分布式數據庫操作語句預處理的裝置,當所述分布式數據庫操作語句預處理的裝置獲取所述分布式數據庫操作語句模板時,對所述分布式數據庫操作語句模板中的操作語句語法框架進行解析,得到語法樹,所述數據操縱語言單元通過分析所述語法樹,獲取所述分布式數據庫操作語句模板中的數據庫表頭信息, 并通過中介數據緩存單元獲取存儲以所述數據庫表頭信息作為標識的數據庫表的所有分布式數據庫服務器的網絡地址信息,根據所述網絡地址信息,生成執行計劃樹,并將所述網絡地址信息存儲于所述執行計劃樹中。
上述實施例方案,通過存儲于所述執行計劃樹中的所述網絡地址信息,確定與所述分布式數據庫操作語句模板對應的所有分布式數據庫服務器,并與所述所有分布式數據庫服務器集群建立邏輯鏈路通道,其中,所述分布式數據庫服務器組成一個分布式數據庫服務器集群。通過操作語句路由器即操作語句路由模塊通過所述邏輯鏈路通道向所述分布式數據庫服務器集群發送所述分布式數據庫操作語句模板。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
進一步地,在其他實施例中,操作語句參數信息包括操作語句參數值及用于將所述操作語句參數值匹配給所述分布式數據庫操作語句模板的標識信息。
該實施例中,參數信息可以包括中間變量。位于所述分布式數據庫服務器集群中的所有分布式數據庫服務器將之前獲取的分布式數據庫操作語句模板中的問號(?)與所述中間變量進行組合,獲取包括所述中間變量的分布式數據庫操作語句模板,如insertintostudents(firstname,lastname,email)values(x,y,z),其中,中間變量x、中間變量y及中間變量z可以與在客戶端中設定的參數x、參數y及參數z形成邏輯關系,具體地,所述中間變量的數量,在此不作限定。在所述客戶端中,當對所述參數x、所述參數y及所述參數z執行賦值運算操作如循環賦值運算時,用于執行賦值操作的參數值可以對所述中間變量x、所述中間變量y及所述中間變量z進行賦值,其中,所述參數值是所述參數信息的組成部分。中間變量的引入,解決了當需多次要執行發送參數信息的操作時,需要在客戶端處多次輸入參數值的問題,提升了用戶體驗。
進一步地,在其他實施例中,上述步驟s40可以包括:
獲取由所述分布式數據庫服務器集群返回的結果數據,其中,所述結果數據是位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器結合 所述分布式數據庫操作語句模板及所述操作語句參數信息對存儲于對應的分布式數據庫服務器中的數據進行處理而得到的結果;
對所述結果數據進行匯總計算,獲取經過匯總計算的結果集。
該實施例中,分布式數據庫服務器通過結合分布式數據庫操作語句模板與操作語句參數信息,對存儲于所述分布式數據庫服務器中的數據進行處理,處理方式可以包括增添數據、刪除數據、更改數據、查詢數據等,具體地,所述處理方式的處理內容,在此不作限定。在完成相關的操作后,所述分布式數據庫服務器得到處理結果,所述處理結果可以包括操作成功信息、操作失敗信息、操作用時信息等。具體地,所述操作成功信息的具體內容,如通過查詢操作得到的數據,在此不作限定。
在一種實施方式中,操作語句路由器監聽所述分布式數據庫服務器的處理過程,當處理結束時,所述分布式數據庫服務器將結果數據發送至執行計劃樹的節點中,由分布式數據庫操作語句預處理的裝置對存儲于所述節點中的所述結果數據進行匯總計算,得到經過匯總計算的結果集。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
參照圖2,圖2為本發明分布式數據庫預處理的方法二實施例的流程示意圖,在上述實施例的基礎上,在上述步驟s40之后還包括:
步驟s50,將所述處理結果發送至客戶端;從客戶端處獲取關閉預處理操作的請求信息,并發送所述請求信息至執行預處理操作的分布式數據庫服務器集群;關閉位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器的預處理服務。
本實施例中,將所述處理結果發送至客戶端,并從客戶端處獲取關閉預處理操作的請求信息,當分布式數據庫操作語句預處理的裝置獲取關閉預處理操作的請求信息時,所述分布式數據庫操作語句預處理的裝置銷毀相關的數據,具體地,所述數據可以包括語法樹、執行計劃樹及相關的緩存信息,在此不作限定。同時,向執行預處理操作的分布式數據庫服務器發送所述請求信息,關閉所述數據庫服務器的預處理服務。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題,并在釋放硬件資源的基礎上,節省了硬件資源的內存與存儲空間。
本發明進一步提供一種分布式數據庫預處理的裝置。
參照圖3,圖3為本發明分布式數據庫預處理的裝置一實施例的功能模塊示意圖。
在一實施例中,該分布式數據庫操作語句預處理的裝置可以包括:模板獲取模塊01、模板處理模塊02、參數信息轉發模塊03、結果返回模塊04,其中:
模板獲取模塊01,用于從客戶端處獲取分布式數據庫操作語句模板,并獲取操作語句參數信息;
本實施例中的技術方案涉及客戶端與分布式數據庫服務器之間的交互,以實現客戶端通過發送分布式數據庫操作語句請求來完成對分布式數據庫的操作。其中,本實施例在客戶端與分布式數據庫服務器之間引入中間件,也即本實施例提出的分布式數據庫操作語句預處理的裝置,通過中間件實現分布式數據庫預處理。本實施例中,通過在客戶端處設定分布式數據庫操作語句,其中,所述分布式數據庫操作語句包括分布式數據庫操作語句模板與分布式數據庫操作語句參數值。客戶端將分布式數據庫操作語句拆分為單獨的分布式數據庫操作語句模板與單獨的分布式數據庫操作語句參數值,其中,單獨的分布式數據庫操作語句模板,如insertintostudents(firstname,lastname,email)values(?,?,?),可以包括操作語句語法框架、數據庫表頭信息、操作語句參數變量,具體地,所述分布式數據庫操作語句模板的組成部分,在此不作限定。分布式數據庫操作語句模板由客戶端發送至分布式數據庫操作語句預處理的裝置。
模板處理模塊02,用于通過解析所述分布式數據庫操作語句模板確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,并發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群;
在獲取分布式數據庫操作語句模板后,分布式數據庫操作語句預處理的裝置對所述分布式數據庫操作語句模板進行解析,確定存儲以數據庫表頭信息作為標識的數據庫表的分布式數據庫服務器,將全部符合條件的分布式數據庫服務器打包成一個分布式數據庫服務器集群,再向所述分布式數據庫服務器集群發送包括所述數據庫表頭信息的分布式數據庫操作語句模板。
參數信息轉發模塊03,用于發送所述操作語句參數信息至所述分布式數據庫服務器集群;
在分布式數據庫操作語句預處理的裝置獲取由客戶端發送的與所述分布式數據庫操作語句模板匹配的操作語句參數信息后,所述分布式數據庫操作語句預處理的裝置將所述操作語句參數信息發送至經過確定的分布式數據庫服務器集群。
位于所述分布式數據庫服務器集群中的所有分布式數據庫服務器將之前獲取的分布式數據庫操作語句模板與所述操作語句參數信息進行組合,形成可以被所述分布式數據庫服務器執行的完整的分布式數據庫操作語句,通過執行所述分布式數據庫操作語句,完成對存儲于所述分布式數據庫服務器中的數據的具體操作,如查詢數據、插入數據、更新數據等,具體的,所述具體操作的操作內容,在此不作限定。
結果返回模塊04,用于獲取所述分布式數據庫服務器根據所述執行預處理操作的請求信息返回的處理結果。
在完成相關的操作后,所有分布式數據庫服務器將操作結果發送至分布式數據庫操作語句預處理的裝置,所述操作結果包括操作成功信息、操作失敗信息、操作用時信息等,具體地,所述操作結果,在此不作限定。
本實施例通過從客戶端處獲取分布式數據庫操作語句模板,并獲取操作語句參數信息,對所述分布式數據庫操作語句模板進行解析,確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,發送所述分布式數據庫操作語句模板至所述分布式數據庫服務器集群,并發送所述操作語句參數信息至所述分布式數據庫服務器集群,獲取所述分布式數據庫服務器集群根據所述分布式數據庫操作語句模板及所述操作語句參數信息返回的處理結果。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
在一種實際應用中,本實施例分布式數據庫系統的結構可以如圖4所示,其中,本實施例中的分布式數據庫操作語句預處理的裝置可以包括執行模塊及操作語句路由模塊(sql路由模塊),其中,該執行模塊可以包括上述實施 例中的模板獲取模塊01和模板處理模塊02的功能,操作語句路由模塊可以包括上述實施例中的參數信息轉發模塊03和結果返回模塊04。
具體地,作為一種功能模塊設置方式,可以參照圖5所示,所述執行模塊可以包括線程池單元、線程調度單元、數據操作語句解析單元(sql解析單元)、數據操縱語言單元(dml單元)、數據定義語言單元(ddl單元)、中介數據緩存單元,以及與sql路由接口,具體的執行模塊的組成部分,在此不作限定。
具體地,所述線程池單元負責管理所述分布式數據庫操作語句預處理的裝置的所有線程的使用與回收。當所述分布式數據庫操作語句預處理的裝置獲取由客戶端處發送的分布式數據庫操作語句模板時,所述線程調度單元從所述線程池單元調度一個線程用于處理所述分布式數據庫操作語句模板。
所述數據定義語言單元負責將數據定義語句轉化為可在分布式數據庫服務器中執行的數據定義語句,并將所述數據定義語句的分發策略信息存儲于數據字典文件中,再將所述分發策略信息加載至緩存中,以供所述數據操縱語言單元使用。
當所述分布式數據庫操作語句預處理的裝置啟動時,所述分布式數據庫操作語句預處理的裝置將全部分發策略信息加載至緩存中,所述中介數據緩存單元負責管理所述分發策略信息,并向所述數據操縱語言單元提供查詢服務。
進一步地,在其他實施例中,上述模板處理模塊02可以用于:
解析生成所述分布式數據庫操作語句模板的語法樹;根據所述語法樹,計算生成所述分布式數據庫操作語句模板的執行計劃樹;根據所述執行計劃樹,獲取與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群。
基于圖4所示的執行模塊,在該實施例中,通過解析由客戶端處獲取的分布式數據庫操作語句模板,生成所述分布式數據庫操作語句模板的語法樹,由數據操縱語言單元對所述語法樹進行計算,生成所述分布式數據庫操作語句模板的計劃執行樹,根據所述計劃執行樹,所述數據操縱語言單元確定與所述分布式數據庫操作語句模板對應的分布式數據庫服務器集群,并將所有位于所述分布式數據庫服務器集群中的分布式數據庫服務器的網絡地址信息 存儲于所述執行計劃樹的節點中,由分布式數據庫操作語句預處理的裝置將所述分布式數據庫操作語句模板發送至所述分布式數據庫服務器集群。
具體地,所述數據操作語句解析單元負責解析由客戶端處獲取的分布式數據庫操作語句模板,生成所述分布式數據庫操作語句模板的語法樹,再將所述語法樹發送至所述數據操縱語言單元與所述數據定義語言單元用于生成與所述分布式數據庫操作語句模板對應的執行計劃樹。
在一種實施方式中,客戶端將分布式數據庫操作語句模板發送至分布式數據庫操作語句預處理的裝置,當所述分布式數據庫操作語句預處理的裝置獲取所述分布式數據庫操作語句模板時,對所述分布式數據庫操作語句模板中的操作語句語法框架進行解析,得到語法樹,所述數據操縱語言單元通過分析所述語法樹,獲取所述分布式數據庫操作語句模板中的數據庫表頭信息,并通過中介數據緩存單元獲取存儲以所述數據庫表頭信息作為標識的數據庫表的所有分布式數據庫服務器的網絡地址信息,根據所述網絡地址信息,生成執行計劃樹,并將所述網絡地址信息存儲于所述執行計劃樹中。
通過存儲于所述執行計劃樹中的所述網絡地址信息,確定與所述分布式數據庫操作語句模板對應的所有分布式數據庫服務器,并與所述所有分布式數據庫服務器集群建立邏輯鏈路通道,其中,所述分布式數據庫服務器組成一個分布式數據庫服務器集群。通過操作語句路由器即操作語句路由模塊通過所述邏輯鏈路通道向所述分布式數據庫服務器集群發送所述分布式數據庫操作語句模板。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
進一步地,在其他實施例中,操作語句參數信息包括操作語句參數值及用于將所述操作語句參數值匹配給所述分布式數據庫操作語句模板的標識信息。
該實施例中,參數信息可以包括中間變量。位于所述分布式數據庫服務器集群中的所有分布式數據庫服務器將之前獲取的分布式數據庫操作語句模板中的問號(?)與所述中間變量進行組合,獲取包括所述中間變量的分布式數據庫操作語句模板,如insertintostudents(firstname,lastname,email)values(x,y,z),其中,中間變量x、中間變量y及中間變量z可以與在客 戶端中設定的參數x、參數y及參數z形成邏輯關系,具體地,所述中間變量的數量,在此不作限定。在所述客戶端中,當對所述參數x、所述參數y及所述參數z執行賦值運算操作如循環賦值運算時,用于執行賦值操作的參數值可以對所述中間變量x、所述中間變量y及所述中間變量z進行賦值,其中,所述參數值是所述參數信息的組成部分。中間變量的引入,解決了當需多次要執行發送參數信息的操作時,需要在客戶端處多次輸入參數值的問題,提升了用戶體驗。
進一步地,在其他實施例中,上述結果返回模塊04可以用于:
獲取由所述分布式數據庫服務器集群返回的結果數據,其中,所述結果數據是位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器結合所述分布式數據庫操作語句模板及所述操作語句參數信息對存儲于對應的分布式數據庫服務器中的數據進行處理而得到的結果;對所述結果數據進行匯總計算,獲取經過匯總計算的結果集。
在該實施例中,分布式數據庫服務器通過結合分布式數據庫操作語句模板與操作語句參數信息,對存儲于所述分布式數據庫服務器中的數據進行處理,處理方式可以包括增添數據、刪除數據、更改數據、查詢數據等,具體地,所述處理方式的處理內容,在此不作限定。在完成相關的操作后,所述分布式數據庫服務器得到處理結果,所述處理結果可以包括操作成功信息、操作失敗信息、操作用時信息等。具體地,所述操作成功信息的具體內容,如通過查詢操作得到的數據,在此不作限定。
在一種實施方式中,操作語句路由器監聽所述分布式數據庫服務器的處理過程,當處理結束時,所述分布式數據庫服務器將結果數據發送至執行計劃樹的節點中,由分布式數據庫操作語句預處理的裝置對存儲于所述節點中的所述結果數據進行匯總計算,得到經過匯總計算的結果集。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題。
參照圖6,圖6為本發明分布式數據庫預處理的裝置二實施例的功能模塊示意圖,在上述實施例的基礎上,該分布式數據庫預處理的裝置還包括:
關閉模塊05,將所述處理結果發送至客戶端;從客戶端處獲取關閉預處 理操作的請求信息,并發送所述請求信息至執行預處理操作的分布式數據庫服務器集群;關閉位于所述分布式數據庫服務器集群中的多個分布式數據庫服務器的預處理服務。
本實施例中,將所述處理結果發送至客戶端,并從客戶端處獲取關閉預處理操作的請求信息,當分布式數據庫操作語句預處理的裝置獲取關閉預處理操作的請求信息時,所述分布式數據庫操作語句預處理的裝置銷毀相關的數據,具體地,所述數據可以包括語法樹、執行計劃樹及相關的緩存信息,在此不作限定。同時,向執行預處理操作的分布式數據庫服務器發送所述請求信息,關閉所述數據庫服務器的預處理服務。解決了數據庫預處理技術不能在分布式數據庫服務器上使用的技術問題,并在釋放硬件資源的基礎上,節省了硬件資源的內存與存儲空間。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機。服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。