數(shù)據(jù)庫查詢語句生成方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)庫查詢語句生成方法及裝置。該數(shù)據(jù)庫查詢語句生成方法包括:獲取多個多維表達式語句;按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組;分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板;按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,解決了將多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句時復(fù)雜度較高的問題,進而通過根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,并按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,達到了降低多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句的復(fù)雜度的效果。
【專利說明】數(shù)據(jù)庫查詢語句生成方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,具體而言,涉及一種數(shù)據(jù)庫查詢語句生成方法及裝置。
【背景技術(shù)】
[0002]微軟結(jié)構(gòu)化查詢語言系統(tǒng)(Microsoft SQL Sever)在數(shù)據(jù)立方體(CUBE)為實時聯(lián)機分析處理(R0LAP)模式下,每次通過多維表達式(MDX)語句對CUBE進行查詢時,R0LAP查詢引擎都會依照默認的轉(zhuǎn)化規(guī)則,把MDX語句翻譯轉(zhuǎn)化成數(shù)據(jù)庫能理解的數(shù)據(jù)庫查詢語句,例如SQL語句,數(shù)據(jù)庫并由此返回相應(yīng)的數(shù)據(jù)查詢。
[0003]在MDX語句轉(zhuǎn)化成SQL語句的過程中,按照固定的規(guī)則模板進行轉(zhuǎn)化。由于該模板需要適用到各種情況,提高了復(fù)雜度,影響了可讀性,執(zhí)行效率也比較低下。
[0004]針對相關(guān)技術(shù)中將多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句時復(fù)雜度較高的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種數(shù)據(jù)庫查詢語句生成方法及裝置,以解決將多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句時復(fù)雜度較高的問題。
[0006]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)庫查詢語句生成方法。
[0007]根據(jù)本發(fā)明的數(shù)據(jù)庫查詢語句生成方法包括:獲取多個多維表達式語句;按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組;分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0008]進一步地,通過以下方法確定查詢操作的類型:獲取默認轉(zhuǎn)化模板文件,其中,默認轉(zhuǎn)化模板文件中包含對應(yīng)不同查詢操作類型的默認轉(zhuǎn)化模板;根據(jù)默認轉(zhuǎn)化模板文件將查詢操作劃分為不同類型的查詢操作。
[0009]進一步地,根據(jù)以下方法確定目標轉(zhuǎn)化模板:確定待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型;根據(jù)待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型在多個預(yù)設(shè)轉(zhuǎn)化模板中查找目標轉(zhuǎn)化模板。
[0010]進一步地,分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板包括:根據(jù)多個目標組對默認轉(zhuǎn)化模板進行模板修改,得到修改后的多個模板;將修改后的多個模板作為多個預(yù)設(shè)轉(zhuǎn)化模板。
[0011 ] 進一步地,在按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句之前,該方法還包括:確定服務(wù)器的內(nèi)核的數(shù)量,其中,服務(wù)器是用于執(zhí)行將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句的服務(wù)器;根據(jù)服務(wù)器的內(nèi)核的數(shù)量確定目標轉(zhuǎn)化模板查詢時的目標并發(fā)數(shù)。
[0012]進一步地,在按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句之前,該方法還包括:確定多個數(shù)據(jù)庫表的數(shù)據(jù)量對比值;根據(jù)多個數(shù)據(jù)庫表的數(shù)據(jù)量對比值確定目標轉(zhuǎn)化模板中數(shù)據(jù)庫表的連接方式。
[0013]進一步地,按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句包括:獲取默認轉(zhuǎn)化模板;將默認轉(zhuǎn)化模板替換為目標轉(zhuǎn)化模板;按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0014]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)庫查詢語句生成裝置。
[0015]根據(jù)本發(fā)明的數(shù)據(jù)庫查詢語句生成裝置包括:獲取單元,用于獲取多個多維表達式語句;分組單元,用于按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組;生成單元,用于分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;轉(zhuǎn)化單元,用于按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0016]進一步地,通過以下模塊確定查詢操作的類型:獲取模塊,用于獲取默認轉(zhuǎn)化模板文件,其中,默認轉(zhuǎn)化模板文件中包含對應(yīng)不同查詢操作類型的默認轉(zhuǎn)化模板;劃分模塊,用于根據(jù)默認轉(zhuǎn)化模板文件將查詢操作劃分為不同類型的查詢操作。
[0017]進一步地,根據(jù)以下模塊確定目標轉(zhuǎn)化模板:確定模塊,用于確定待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型;查找模塊,用于根據(jù)待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型在多個預(yù)設(shè)轉(zhuǎn)化模板中查找目標轉(zhuǎn)化模板。
[0018]通過本發(fā)明,采用包括以下步驟的方法:獲取多個多維表達式語句;按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組;分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,解決了將多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句時復(fù)雜度較高的問題,進而通過根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,并按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,達到了降低多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句的復(fù)雜度的效果。
【專利附圖】
【附圖說明】
[0019]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0020]圖1是根據(jù)本發(fā)明的數(shù)據(jù)庫查詢語句生成方法的實施例的流程圖;以及
[0021]圖2是根據(jù)本發(fā)明的數(shù)據(jù)庫查詢語句生成裝置的實施例的示意圖。
【具體實施方式】
[0022]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0023]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本申請保護的范圍。
[0024]需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本申請的實施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0025]下面根據(jù)本發(fā)明的實施例,提供了一種數(shù)據(jù)庫查詢語句生成方法。
[0026]圖1是根據(jù)本發(fā)明的數(shù)據(jù)庫查詢語句生成方法的實施例的流程圖。如圖1所示,該方法包括步驟S102至步驟S108:
[0027]步驟S102,獲取多個多維表達式語句。
[0028]通常情況下,在提供數(shù)據(jù)多維度剖析的系統(tǒng)中,底層實現(xiàn)方法是在實時聯(lián)機分析處理模式的數(shù)據(jù)立方體上進行查詢接口的封裝,從而提供查詢功能。在這種應(yīng)用場景下,生成的多維表達式語句類型相對比較固定。因此,可以收集多個多維表達式語句,例如,提供數(shù)據(jù)多維度剖析的系統(tǒng)中包含的所有可能的多維表達式語句。
[0029]需要說明的是,對于隨機對實時聯(lián)機分析處理模式的數(shù)據(jù)立方體進行查詢時,也同樣適用本方法,只是每次都需要從獲取多個多維表達式語句開始進行整個查詢過程。
[0030]步驟S104,按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同。
[0031]可選地,可以通過以下方法確定查詢操作的類型:獲取默認轉(zhuǎn)化模板文件,其中,默認轉(zhuǎn)化模板文件中包含對應(yīng)不同查詢操作類型的默認轉(zhuǎn)化模板;根據(jù)默認轉(zhuǎn)化模板文件將查詢操作劃分為不同類型的查詢操作。
[0032]對收集到的多維表達式語句進行分析后,可以按照參與查詢的操作的類型進行分組。這可以參照系統(tǒng)中存儲的默認轉(zhuǎn)化模板展開相應(yīng)的操作。默認轉(zhuǎn)化模板是系統(tǒng)中在實時聯(lián)機分析處理模式的數(shù)據(jù)立方體上進行查詢接口的封裝場景下形成的轉(zhuǎn)化模板,對應(yīng)的多維表達式語句類型相對比較固定。例如,通過參考存儲在{SQLServer安裝目錄}\OLAP\bin\Cartridges\下的sql2000默認模板文件,可以把查詢操作分為INSERT,SELECT,UPDATE,DROP等多種類型。
[0033]步驟S106,分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板。
[0034]可選地,可以根據(jù)以下方法確定目標轉(zhuǎn)化模板:確定待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型;根據(jù)待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型在多個預(yù)設(shè)轉(zhuǎn)化模板中查找目標轉(zhuǎn)化模板。
[0035]例如,待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型為UPDATE。由上述提及的方法可知,已根據(jù)默認轉(zhuǎn)化模板文件將查詢操作劃分為不同類型的查詢操作,其中,包括查詢操作的類型為UPDATE。因此,當確定待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型為UPDATE之后,可以直接在多個預(yù)設(shè)轉(zhuǎn)化模板中查找目標轉(zhuǎn)化模板,即在多個預(yù)設(shè)轉(zhuǎn)化模板中查找對應(yīng)的查詢操作的類型為UPDATE的預(yù)設(shè)轉(zhuǎn)化模板,通過該模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0036]可選地,可以分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板包括:根據(jù)多個目標組對默認轉(zhuǎn)化模板進行模板修改,得到修改后的多個模板;將修改后的多個模板作為多個預(yù)設(shè)轉(zhuǎn)化模板。
[0037]為了適用所有的應(yīng)用場景,默認的多維表達式語句轉(zhuǎn)化模板枚舉了所有的操作,例如:聚合運算(如求和運算、均值運算等);遠程和本地的數(shù)據(jù)讀取;以及其他算術(shù)運算等。因此,即使只是一個簡單的求和操作,也需要進行整個邏輯判斷的流程。通過根據(jù)多個目標組對默認轉(zhuǎn)化模板進行模板修改,可以簡化生成數(shù)據(jù)庫查詢語句的過程。
[0038]例如,根據(jù)查詢操作的類型,例如INSERT,SELECT,UPDATE,DROP等,可以將系統(tǒng)中的默認轉(zhuǎn)化模板進行分組。將分組后的默認轉(zhuǎn)化模板進行修改,生成對應(yīng)的預(yù)設(shè)轉(zhuǎn)化模板。假設(shè)待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型為INSERT,則可以直接在多個預(yù)設(shè)轉(zhuǎn)化模板中查找查詢操作類型為INSERT的預(yù)設(shè)轉(zhuǎn)化模板,從而利用該模板進行多維表達式語句到數(shù)據(jù)庫查詢語句的轉(zhuǎn)化。
[0039]步驟S108,按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0040]通過對默認轉(zhuǎn)化模板的改寫,可以簡化生成數(shù)據(jù)庫查詢語句的過程,同時也可以對該轉(zhuǎn)化過程進行干預(yù),實現(xiàn)對多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句過程的優(yōu)化。轉(zhuǎn)化模板的生成依賴系統(tǒng)的具體情況,例如服務(wù)器的資源、數(shù)據(jù)庫表的元數(shù)據(jù)等。通過自動改寫或者替換多維表達式語句轉(zhuǎn)化數(shù)據(jù)庫查詢語句的模板,可以提高生成的數(shù)據(jù)庫查詢語句的可讀性,同時也可以利用數(shù)據(jù)庫查詢語句中的調(diào)優(yōu)方法(比如查詢提示),來優(yōu)化多維表達式語句的轉(zhuǎn)化執(zhí)行效率。
[0041]可選地,在按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句之前,還可以進行如下步驟:確定服務(wù)器的內(nèi)核的數(shù)量,其中,服務(wù)器是用于執(zhí)行將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句的服務(wù)器;根據(jù)服務(wù)器的內(nèi)核的數(shù)量確定目標轉(zhuǎn)化模板查詢時的目標并發(fā)數(shù)。
[0042]優(yōu)選地,在多個CPU內(nèi)核的環(huán)境中,并發(fā)數(shù)一般建議設(shè)置成核數(shù)的2N分之一,例如,在CPU內(nèi)核為16核的機器上,并發(fā)數(shù)可以設(shè)置為8或者4。這種設(shè)置方法可以增加并行度,同時,也可以防止過多的并發(fā)之間的同步等待。
[0043]可選地,在按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句之前,還可以進行如下步驟:確定多個數(shù)據(jù)庫表的數(shù)據(jù)量對比值;根據(jù)多個數(shù)據(jù)庫表的數(shù)據(jù)量對比值確定目標轉(zhuǎn)化模板中數(shù)據(jù)庫表的連接方式。
[0044]例如,在數(shù)據(jù)庫中,有專門的分析優(yōu)化器用來衡量數(shù)據(jù)庫為完成用戶的一次特定請求其所有可選方案所需要的開銷,并從中選出最優(yōu)方案。在最簡單的兩個數(shù)據(jù)庫表的連接中,數(shù)據(jù)庫表的數(shù)據(jù)量是一個重要的影響因素,如果兩個表數(shù)據(jù)量相當,即兩數(shù)據(jù)庫的數(shù)據(jù)量對比值接近1,則通常情況下數(shù)據(jù)庫首先會作哈希運算,然后再進行兩個數(shù)據(jù)庫表的連接。如果兩個數(shù)據(jù)庫表的數(shù)據(jù)量級別差距比較大,即兩個數(shù)據(jù)庫的數(shù)據(jù)量對比值遠遠大于1,則數(shù)據(jù)庫往往比較傾向于使用嵌套循環(huán)方式來實現(xiàn)兩個數(shù)據(jù)庫表的連接。
[0045]按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句可以按照如下步驟進行:獲取默認轉(zhuǎn)化模板;將默認轉(zhuǎn)化模板替換為目標轉(zhuǎn)化模板;按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0046]在對待轉(zhuǎn)化多維表達式語句進行轉(zhuǎn)化時,應(yīng)首先替換成該查詢操作類型對應(yīng)的模板。需要說明的是,對于單個多維表達式語句查詢的情況,本發(fā)明的數(shù)據(jù)庫查詢語句生成方法依然適用,因為該方法是介入多維表達式語句至數(shù)據(jù)庫查詢語句轉(zhuǎn)化的唯一渠道。本方法簡化了多維表達式語句到數(shù)據(jù)庫查詢語句轉(zhuǎn)化過程中的模板,同時根據(jù)多維表達式語句的類型,結(jié)合實際軟硬件條件進行語句的調(diào)優(yōu),達到了提高了生成的數(shù)據(jù)庫查詢語句的可讀性的效果,并且提高了執(zhí)行的效率。
[0047]該實施例由于采用包含如下步驟的方法:獲取多個多維表達式語句;按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組;分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,解決了將多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句時復(fù)雜度較高的問題,進而通過根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,并按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,達到了降低多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句的復(fù)雜度的效果。
[0048]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0049]根據(jù)本發(fā)明的實施例,提供了一種數(shù)據(jù)庫查詢語句生成裝置。需要說明的是,本發(fā)明實施例的數(shù)據(jù)庫查詢語句生成裝置可以用于執(zhí)行本發(fā)明實施例所提供的數(shù)據(jù)庫查詢語句生成方法,本發(fā)明實施例的數(shù)據(jù)庫查詢語句生成方法也可以通過本發(fā)明實施例所提供的數(shù)據(jù)庫查詢語句生成裝置來執(zhí)行。
[0050]圖2是根據(jù)本發(fā)明的數(shù)據(jù)庫查詢語句生成裝置的實施例的示意圖。如圖2所示,該裝置包括:獲取單元10、分組單元20、生成單元30和轉(zhuǎn)化單元40。
[0051]獲取單元10,用于獲取多個多維表達式語句。
[0052]分組單元20,用于按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組。
[0053]可選地,可以通過以下模塊確定查詢操作的類型:獲取模塊,用于獲取默認轉(zhuǎn)化模板文件,其中,默認轉(zhuǎn)化模板文件中包含對應(yīng)不同查詢操作類型的默認轉(zhuǎn)化模板;劃分模塊,用于根據(jù)默認轉(zhuǎn)化模板文件將查詢操作劃分為不同類型的查詢操作。
[0054]生成單元30,用于分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同。
[0055]可選地,可以根據(jù)以下模塊確定目標轉(zhuǎn)化模板:確定模塊,用于確定待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型;查找模塊,用于根據(jù)待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型在多個預(yù)設(shè)轉(zhuǎn)化模板中查找目標轉(zhuǎn)化模板。
[0056]轉(zhuǎn)化單元40,用于按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
[0057]該實施例提供的數(shù)據(jù)庫查詢語句生成裝置包括:獲取單元10,用于獲取多個多維表達式語句;分組單元20,用于按照查詢操作的類型對多個多維表達式語句進行分組,獲取多個目標組;生成單元30,用于分別根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;轉(zhuǎn)化單元40,用于按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。通過該裝置,解決了將多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句時復(fù)雜度較高的問題,進而通過生成單元30根據(jù)多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,并通過轉(zhuǎn)化單元40按照目標轉(zhuǎn)化模板將待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,達到了降低多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句的復(fù)雜度的效果。
[0058]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0059]在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0060]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
[0061]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0062]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0063]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0064]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)庫查詢語句生成方法,其特征在于,包括: 獲取多個多維表達式語句; 按照查詢操作的類型對所述多個多維表達式語句進行分組,獲取多個目標組; 分別根據(jù)所述多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,所述多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;以及 按照所述目標轉(zhuǎn)化模板將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過以下方法確定所述查詢操作的類型: 獲取默認轉(zhuǎn)化模板文件,其中,所述默認轉(zhuǎn)化模板文件中包含對應(yīng)不同查詢操作類型的默認轉(zhuǎn)化模板;以及 根據(jù)所述默認轉(zhuǎn)化模板文件將所述查詢操作劃分為不同類型的查詢操作。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)以下方法確定所述目標轉(zhuǎn)化模板: 確定所述待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型;以及 根據(jù)所述待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型在所述多個預(yù)設(shè)轉(zhuǎn)化模板中查找所述目標轉(zhuǎn)化模板。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,分別根據(jù)所述多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板包括: 根據(jù)所述多個目標組對默認轉(zhuǎn)化模板進行模板修改,得到修改后的多個模板;以及 將所述修改后的多個模板作為所述多個預(yù)設(shè)轉(zhuǎn)化模板。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在按照所述目標轉(zhuǎn)化模板將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句之前,所述方法還包括: 確定服務(wù)器的內(nèi)核的數(shù)量,其中,所述服務(wù)器是用于執(zhí)行將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為所述數(shù)據(jù)庫查詢語句的服務(wù)器;以及 根據(jù)所述服務(wù)器的內(nèi)核的數(shù)量確定所述目標轉(zhuǎn)化模板查詢時的目標并發(fā)數(shù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在按照所述目標轉(zhuǎn)化模板將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句之前,所述方法還包括: 確定多個數(shù)據(jù)庫表的數(shù)據(jù)量對比值;以及 根據(jù)所述多個數(shù)據(jù)庫表的數(shù)據(jù)量對比值確定所述目標轉(zhuǎn)化模板中數(shù)據(jù)庫表的連接方式。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,按照所述目標轉(zhuǎn)化模板將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句包括: 獲取默認轉(zhuǎn)化模板; 將所述默認轉(zhuǎn)化模板替換為所述目標轉(zhuǎn)化模板;以及 按照所述目標轉(zhuǎn)化模板將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
8.一種數(shù)據(jù)庫查詢語句生成裝置,其特征在于,包括: 獲取單元,用于獲取多個多維表達式語句; 分組單元,用于按照查詢操作的類型對所述多個多維表達式語句進行分組,獲取多個目標組; 生成單元,用于分別根據(jù)所述多個目標組生成多個預(yù)設(shè)轉(zhuǎn)化模板,其中,所述多個預(yù)設(shè)轉(zhuǎn)化模板包括目標轉(zhuǎn)化模板,所述目標轉(zhuǎn)化模板對應(yīng)的查詢操作的類型和待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型相同;以及 轉(zhuǎn)化單元,用于按照所述目標轉(zhuǎn)化模板將所述待轉(zhuǎn)化多維表達式語句轉(zhuǎn)化為數(shù)據(jù)庫查詢語句。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,通過以下模塊確定所述查詢操作的類型: 獲取模塊,用于獲取默認轉(zhuǎn)化模板文件,其中,所述默認轉(zhuǎn)化模板文件中包含對應(yīng)不同查詢操作類型的默認轉(zhuǎn)化模板;以及劃分模塊,用于根據(jù)所述默認轉(zhuǎn)化模板文件將所述查詢操作劃分為不同類型的查詢操作。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,根據(jù)以下模塊確定所述目標轉(zhuǎn)化模板: 確定模塊,用于確定所述待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型;以及 查找模塊,用于根據(jù)所述待轉(zhuǎn)化多維表達式語句對應(yīng)的查詢操作的類型在所述多個預(yù)設(shè)轉(zhuǎn)化模板中查找所述目標轉(zhuǎn)化模板。
【文檔編號】G06F17/30GK104484392SQ201410770798
【公開日】2015年4月1日 申請日期:2014年12月11日 優(yōu)先權(quán)日:2014年12月11日
【發(fā)明者】黃健 申請人:北京國雙科技有限公司