一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法
【專利摘要】本發(fā)明提供的基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法包括:用戶節(jié)點(diǎn)接收用戶提交的查詢請求;解析所述查詢請求并對所述查詢請求進(jìn)行校驗(yàn);將所述查詢請求分解為多個子查詢;基于所述多個子查詢所要訪問的多個數(shù)據(jù)源,將所述多個子查詢分別轉(zhuǎn)換成針對所述多個數(shù)據(jù)源的多個查詢語言;分別執(zhí)行所述多個查詢語言并獲得多個中間結(jié)果;將所述多個中間結(jié)果組成查詢結(jié)果。本發(fā)明使得在云計(jì)算網(wǎng)絡(luò)中獲得更全面的查詢結(jié)果,避免進(jìn)行不必要的查詢操作,更合理地利用計(jì)算資源,并且降低了數(shù)據(jù)傳輸成本。
【專利說明】一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計(jì)算技術(shù),尤其涉及一種基于云計(jì)算的查詢方法,特別涉及一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法。
【背景技術(shù)】
[0002]自云計(jì)算出現(xiàn)以來,經(jīng)過科學(xué)技術(shù)的不斷發(fā)展,經(jīng)過學(xué)術(shù)界與產(chǎn)業(yè)界的不斷推進(jìn),云計(jì)算的應(yīng)用正不斷發(fā)展和深入,云計(jì)算也正在從理論走向?qū)嵺`。隨著云計(jì)算技術(shù)的不斷成熟,數(shù)據(jù)中心也隨之發(fā)展。今天的數(shù)據(jù)中心已經(jīng)不只是一個簡單的服務(wù)器統(tǒng)一托管、維護(hù)的場所,它已經(jīng)衍變成一個集大數(shù)據(jù)量運(yùn)算和存儲為一體的高性能計(jì)算機(jī)的集中地。云計(jì)算數(shù)據(jù)中心涉及十萬百萬規(guī)模的服務(wù)器或PC機(jī)等,資源數(shù)量大,異構(gòu)性強(qiáng)。其中,數(shù)據(jù)中心的網(wǎng)絡(luò)結(jié)構(gòu)是設(shè)計(jì)云計(jì)算數(shù)據(jù)中心必須考慮的重要因素,它為云計(jì)算數(shù)據(jù)中心的高擴(kuò)展性和資源的高利用率提供充分保障。此外,數(shù)據(jù)中心引入的副本技術(shù)(Replica)雖然是一種提高可用性和性能的重要方法。它彌補(bǔ)了存儲對象單點(diǎn)失效、容錯性差、接入性能不高等問題。
[0003]然而現(xiàn)有的基于云計(jì)算的應(yīng)用技術(shù)中存在諸多缺陷。例如,對大數(shù)據(jù)的處理往往耗時長、響應(yīng)慢,無法滿足用戶需求。舉例來說,某一企業(yè)需要對其近年來的財務(wù)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,但是企業(yè)所在的私有云網(wǎng)絡(luò)中存在多個數(shù)據(jù)源,并且所述多個數(shù)據(jù)源分散在不同的計(jì)算設(shè)備中。一方面,如果僅僅在某一計(jì)算節(jié)點(diǎn)上進(jìn)行數(shù)據(jù)查詢必然無法得到預(yù)期的目標(biāo)。第二方面,很多用戶的實(shí)際操作中由于對業(yè)務(wù)不熟悉不了解很容易做出錯誤的請求,如此在沒有校驗(yàn)的情況下無法獲得預(yù)期的結(jié)果。第三方面,即時對數(shù)據(jù)查詢請求進(jìn)行了分解,如果分解粒度過小則浪費(fèi)資源,如果分解粒度過大則無法充分利用資源。第四方面,資源的利用,例如計(jì)算節(jié)點(diǎn)的選擇往往是隨機(jī)選擇,如此可能占用遠(yuǎn)端資源,而恰恰在用戶節(jié)點(diǎn)附近本身即存在相應(yīng)的資源,舍近求遠(yuǎn)增加了數(shù)據(jù)傳輸成本。
[0004]針對相關(guān)技術(shù)中所存在的上述問題,目前尚未提出有效的解決方案。因此,本發(fā)明提出了一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法,毋庸置疑,本發(fā)明的基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法經(jīng)過適當(dāng)?shù)男薷耐瑯舆m于查詢其他數(shù)據(jù),例如通信數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)等等。
【發(fā)明內(nèi)容】
[0005]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法。通過本發(fā)明的方法解決現(xiàn)有技術(shù)中存在的上述缺陷。一方面,通過在多個計(jì)算節(jié)點(diǎn)上分別執(zhí)行不同的子查詢,使得可以在云計(jì)算網(wǎng)絡(luò)中獲得查詢請求的全部結(jié)果。第二方面,通過對用戶的查詢請求進(jìn)行解析和校驗(yàn),使得避免進(jìn)行不必要的查詢操作。第三方面,通過將查詢請求進(jìn)行粗分解并且根據(jù)計(jì)算節(jié)點(diǎn)的余下運(yùn)行時間進(jìn)行細(xì)分解,使得合理利用計(jì)算資源,尤其是通過采集已運(yùn)行進(jìn)度、進(jìn)一步計(jì)算余下時間、并按照時間判斷運(yùn)行落后的計(jì)算節(jié)點(diǎn)、特別是針對落后的一半計(jì)算節(jié)點(diǎn)進(jìn)行再細(xì)分,使得細(xì)分策略更精細(xì),資源利用更合理。第四方面,通過優(yōu)先選擇離用戶節(jié)點(diǎn)最近的可用計(jì)算節(jié)點(diǎn)進(jìn)行查詢,使得降低了數(shù)據(jù)傳輸成本。
[0006]所述方法包括:用戶節(jié)點(diǎn)接收用戶提交的查詢請求;解析所述查詢請求并對所述查詢請求進(jìn)行校驗(yàn);將所述查詢請求分解為多個子查詢;基于所述多個子查詢所要訪問的多個數(shù)據(jù)源,將所述多個子查詢分別轉(zhuǎn)換成針對所述多個數(shù)據(jù)源的多個查詢語言;分別執(zhí)行所述多個查詢語言并獲得多個中間結(jié)果;將所述多個中間結(jié)果組成查詢結(jié)果。
[0007]優(yōu)選地,所述對所述查詢請求進(jìn)行校驗(yàn)包括對所述查詢請求進(jìn)行語法校驗(yàn)和語義校驗(yàn)。
[0008]優(yōu)選地,所述對所述查詢請求進(jìn)行校驗(yàn)包括:如果對所述查詢請求進(jìn)行校驗(yàn)后發(fā)現(xiàn)校驗(yàn)失敗,則不進(jìn)行后續(xù)處理并向用戶節(jié)點(diǎn)返回校驗(yàn)失敗信息。
[0009]優(yōu)選地,所述將所述查詢請求分解為多個子查詢包括:根據(jù)所述查詢請求所要訪問的多個數(shù)據(jù)源,將所述查詢請求分解為多個子查詢,其中,每個子查詢僅需要訪問所述多個數(shù)據(jù)源中的一個;建立對應(yīng)于所述查詢請求的子查詢列表,并將所述多個子查詢記錄于所述子查詢列表中;查找與所述用戶節(jié)點(diǎn)最近的具有所述多個數(shù)據(jù)源的多個計(jì)算節(jié)點(diǎn),并根據(jù)所述多個子查詢所要訪問的數(shù)據(jù)源將所述多個子查詢分配給所述多個計(jì)算節(jié)點(diǎn);建立對應(yīng)于所述查詢請求的計(jì)算節(jié)點(diǎn)列表,并將所述多個計(jì)算節(jié)點(diǎn)記錄于所述計(jì)算節(jié)點(diǎn)列表中。
[0010]優(yōu)選地,在所述分別執(zhí)行所述多個查詢語言期間,計(jì)算每個子查詢的處理數(shù)據(jù),所述處理數(shù)據(jù)包括每個子查詢已經(jīng)運(yùn)行的時間T1、每個子查詢已經(jīng)運(yùn)行的進(jìn)度P1、每個子查詢的運(yùn)行速度R1、每個子查詢的余下時間Ei,其中,Ri=PZTi, Ei= (1-Pi) /Ri, l〈=i〈=n,其中,i是所述多個子查詢的個數(shù),η是大于I的整數(shù)。
[0011]優(yōu)選地,對所述多個計(jì)算節(jié)點(diǎn)按照計(jì)算節(jié)點(diǎn)余下時間進(jìn)行升序排序,所述計(jì)算節(jié)點(diǎn)余下時間為計(jì)算節(jié)點(diǎn)上所分配的所有子查詢的余下時間之和。
[0012]優(yōu)選地,如果某一計(jì)算節(jié)點(diǎn)的排序在所述升序排序的后半部分,并且所述某一計(jì)算節(jié)點(diǎn)上被分配了多個子查詢,則:查找具有所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢所要訪問的數(shù)據(jù)源的備份計(jì)算節(jié)點(diǎn);將所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢重新分配給所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn),以使得所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn)中的每一個僅被分配一個子查詢;其中,滿足SB=SA-\-l,Sb為所述備份計(jì)算節(jié)點(diǎn)的數(shù)量,SaS所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量,Sc為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢中余下時間為零的子查詢的數(shù)量。
[0013]優(yōu)選地,上述重新分配處理后,更新所述計(jì)算節(jié)點(diǎn)列表。
【專利附圖】
【附圖說明】
[0014]圖1是根據(jù)本發(fā)明實(shí)施例的人臉圖像檢測方法的流程圖。
【具體實(shí)施方式】
[0015]多種方式可以用于實(shí)施本發(fā)明,包括實(shí)施為方法,過程,裝置,系統(tǒng)及其結(jié)合。在本說明書中,這些實(shí)施或者本發(fā)明可以采用的任何其他形式可以稱為技術(shù)。一般而言,可以在本發(fā)明的范圍內(nèi)變更公開的方法的步驟順序。
[0016]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
[0017]本發(fā)明的目的在于提供一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法。首先,本發(fā)明中涉及到用戶節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,所述的用戶節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)都是云計(jì)算網(wǎng)絡(luò)中的節(jié)點(diǎn),當(dāng)某一節(jié)點(diǎn)的用戶提交查詢請求時其就被稱為用戶節(jié)點(diǎn),此時云計(jì)算網(wǎng)絡(luò)中的其他所有節(jié)點(diǎn)都被稱為計(jì)算節(jié)點(diǎn)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明涉及私有云網(wǎng)絡(luò),所述私有云網(wǎng)絡(luò)內(nèi)的所有計(jì)算機(jī)、終端、客戶機(jī)均可以是用戶節(jié)點(diǎn)或計(jì)算節(jié)點(diǎn)。本領(lǐng)域技術(shù)人員同樣應(yīng)當(dāng)理解,所述私有云網(wǎng)絡(luò)中的所有節(jié)點(diǎn)均可以相互連接并進(jìn)行數(shù)據(jù)傳輸。
[0018]在本發(fā)明中,當(dāng)私有云網(wǎng)絡(luò)中的某一節(jié)點(diǎn)上收到用戶提交的查詢請求后,在該節(jié)點(diǎn)側(cè)(用戶節(jié)點(diǎn)側(cè)),根據(jù)該節(jié)點(diǎn)上的應(yīng)用規(guī)則解析用戶提交的查詢請求,并對所述查詢請求進(jìn)行校驗(yàn),包括語法校驗(yàn)和語義校驗(yàn),即除了檢查查詢請求所涉及的查詢語言的正確性夕卜,還要對其進(jìn)行語義上的檢查,確定所述查詢請求是否存在邏輯上的錯誤。如果校驗(yàn)正確則繼續(xù)進(jìn)行后續(xù)的查詢步驟,否則不進(jìn)行后續(xù)處理并向用戶節(jié)點(diǎn)返回校驗(yàn)失敗信息。
[0019]在本發(fā)明中,在用戶節(jié)點(diǎn)側(cè),對于通過校驗(yàn)的查詢請求進(jìn)行分解處理,即將所述查詢請求分解為多個子查詢。其中,需要進(jìn)一步解析所述查詢請求,以獲得所述查詢請求所要訪問的數(shù)據(jù)源,在本發(fā)明中所述數(shù)據(jù)源為多個,所述數(shù)據(jù)源例如是數(shù)據(jù)庫資源、網(wǎng)頁資源、文本資源等等,所述的多個數(shù)據(jù)源例如是多個數(shù)據(jù)庫資源(包括多個不同的數(shù)據(jù)庫資源)、多個網(wǎng)頁資源、多個文本資源等等。其中,經(jīng)分解后得到的多個子查詢中的每一個均需要且僅需要訪問所述多個數(shù)據(jù)源中的一個。即所述多個子查詢與所述多個數(shù)據(jù)源存在多對一的關(guān)系或一對一的關(guān)系。在本發(fā)明中,當(dāng)將所述查詢請求分解為多個子查詢后,建立對應(yīng)于所述查詢請求的子查詢列表,并將所述多個子查詢記錄于所述子查詢列表中。在本發(fā)明中,針對分解所述查詢請求后得到的每一個子查詢,在所述云計(jì)算網(wǎng)絡(luò)中查找其上具有該子查詢所需要訪問的數(shù)據(jù)源的計(jì)算節(jié)點(diǎn),并將該子查詢分配給所查找到的計(jì)算節(jié)點(diǎn),其中,由于備份的目的,云計(jì)算網(wǎng)絡(luò)中存在具有同一數(shù)據(jù)源的多個節(jié)點(diǎn),因此,需要選擇哪一個計(jì)算節(jié)點(diǎn),在本發(fā)明中,優(yōu)選與用戶節(jié)點(diǎn)具有最近的網(wǎng)絡(luò)距離的計(jì)算節(jié)點(diǎn)。本發(fā)明中,當(dāng)所有的子節(jié)點(diǎn)均被分配后,在用戶節(jié)點(diǎn)側(cè)建立對應(yīng)于所述查詢請求的計(jì)算節(jié)點(diǎn)列表,并將所述多個子節(jié)點(diǎn)被分配到的多個計(jì)算節(jié)點(diǎn)記錄于所述計(jì)算節(jié)點(diǎn)列表中。
[0020]在本發(fā)明中,在每一計(jì)算節(jié)點(diǎn)側(cè),收到用戶節(jié)點(diǎn)發(fā)送的一個或多個子查詢,首先基于所述查詢請求建立子查詢列表,并將所述一個或多個子查詢記錄于所述子查詢列表中。接著,對于子查詢列表中的每一子查詢,基于其所要訪問的數(shù)據(jù)源,將每一子查詢分別轉(zhuǎn)換成針對所述數(shù)據(jù)源的查詢語言。此處的轉(zhuǎn)換可以是提取或翻譯,例如當(dāng)所述查詢請求中本身包括有查詢語言時可以直接進(jìn)行提取,又例如當(dāng)所述查詢請求中僅包括高級表示或關(guān)于查詢目的的文字表示則需要對其進(jìn)行翻譯以得到適于針對多個數(shù)據(jù)源的查詢語言。將所述子查詢列表中的所有子查詢均進(jìn)行成功轉(zhuǎn)換后,分別執(zhí)行所述多個查詢語言并獲得多個中間結(jié)果;將所述多個中間結(jié)果組成查詢結(jié)果;最后,由用戶節(jié)點(diǎn)呈現(xiàn)給提交查詢請求的用戶。[0021]本發(fā)明中,在執(zhí)行多個查詢語言期間,在計(jì)算節(jié)點(diǎn)側(cè),周期性地計(jì)算每個子查詢的處理數(shù)據(jù),并發(fā)送給所述用戶節(jié)點(diǎn),本發(fā)明中的處理數(shù)據(jù)包括每個子查詢已經(jīng)運(yùn)行的時間T1、每個子查詢已經(jīng)運(yùn)行的進(jìn)度P1、每個子查詢的運(yùn)行速度R1、每個子查詢的余下時間Ei,其中,Ri=PiAi, Ei= (1卞)/%,1〈=1〈=11,其中,i是所述多個子查詢的個數(shù),η是大于I的整數(shù)。在用戶節(jié)點(diǎn)側(cè),根據(jù)采集到的處理數(shù)據(jù),計(jì)算每個計(jì)算節(jié)點(diǎn)上執(zhí)行完余下的所有查詢?nèi)蝿?wù)所需要的時間,即計(jì)算每個計(jì)算節(jié)點(diǎn)上所分配的所有子查詢的余下時間之和,即本發(fā)明中的計(jì)算節(jié)點(diǎn)余下時間。接著對所述多個計(jì)算節(jié)點(diǎn)按照計(jì)算節(jié)點(diǎn)余下時間進(jìn)行升序排序。對在排序序列后半部分的所有計(jì)算節(jié)點(diǎn)進(jìn)行以下判斷,判斷這些計(jì)算節(jié)點(diǎn)是否被分配了多于一個的子查詢。如果這些計(jì)算節(jié)點(diǎn)上被分配了多個子查詢,則對這些計(jì)算節(jié)點(diǎn)中的每一個進(jìn)行以下處理,即進(jìn)一步查找計(jì)算節(jié)點(diǎn)上被分配的多個子查詢所要訪問的數(shù)據(jù)源的備份計(jì)算節(jié)點(diǎn),此處同樣基于就近原則,例如,如果這些計(jì)算節(jié)點(diǎn)中的某一個被分配了三個子查詢,由前述可知這三個子查詢需要訪問同樣的數(shù)據(jù)源。由于在前述步驟中已經(jīng)找到該某一個計(jì)算節(jié)點(diǎn)上具有該數(shù)據(jù)源,并且該某一計(jì)算節(jié)點(diǎn)與用戶節(jié)點(diǎn)的網(wǎng)絡(luò)距離最近,因此,此時需要繼續(xù)查找與用戶節(jié)點(diǎn)的網(wǎng)絡(luò)距離第二近的具有該數(shù)據(jù)源的第二計(jì)算節(jié)點(diǎn),以及查找與用戶節(jié)點(diǎn)的網(wǎng)絡(luò)距離第三近的具有該數(shù)據(jù)源的第三計(jì)算節(jié)點(diǎn)。進(jìn)而將三個子查詢重新分配給所述該某一計(jì)算節(jié)點(diǎn)、第二計(jì)算節(jié)點(diǎn)和第三計(jì)算節(jié)點(diǎn)。由于在重新分配之前,三個子查詢是順序執(zhí)行的,因此,可以將未執(zhí)行的第二個子查詢和第三個子查詢分別重新分配給所述第二個計(jì)算節(jié)點(diǎn)和第三個計(jì)算節(jié)點(diǎn)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,如果此時第一個子查詢已經(jīng)完成,則無需重新分配所述第二子查詢,僅需重新分配第三子查詢給第二計(jì)算節(jié)點(diǎn),如果第一子查詢和第二子查詢均已完成,則無需進(jìn)行以上的重新分配。也就是說,所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢重新分配給所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn)(例如上述的第二計(jì)算節(jié)點(diǎn)和第三計(jì)算節(jié)點(diǎn)),以使得所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn)中的每一個僅被分配一個子查詢。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述事例性指出的三個子查詢的例子僅僅是示例,也可以是兩個、四個或更多。并且應(yīng)當(dāng)理解在與計(jì)算網(wǎng)絡(luò)中備份計(jì)算節(jié)點(diǎn)的數(shù)量可以滿足上述子查詢數(shù)量的要求,本發(fā)明也是在這樣的基礎(chǔ)上進(jìn)行的。對于數(shù)量不足的情形可以進(jìn)行判斷和其他處理,在此不再贅述。本發(fā)明中,用戶節(jié)點(diǎn)進(jìn)行上述重新分配處理后,更新所述計(jì)算節(jié)點(diǎn)列表。即將新增加的分配了子查詢的計(jì)算節(jié)點(diǎn)記錄到計(jì)算節(jié)點(diǎn)列表中。
[0022]圖1是根據(jù)本發(fā)明實(shí)施例的基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法的流程圖。如圖1所示,實(shí)施本發(fā)明的具體步驟如下:步驟一,用戶節(jié)點(diǎn)接收用戶提交的查詢請求,根據(jù)所述查詢請求可以得到查詢內(nèi)容、查詢目的、查詢語言中的一個或多個。步驟二,用戶節(jié)點(diǎn)解析所述查詢請求并對所述查詢請求進(jìn)行校驗(yàn),經(jīng)校驗(yàn)沒有語法錯誤和語義錯誤的情況下繼續(xù)后續(xù)步驟。步驟三,用戶節(jié)點(diǎn)將所述查詢請求分解為多個子查詢,分解后的每一子查詢僅需要訪問一個數(shù)據(jù)源。步驟四,所述多個計(jì)算節(jié)點(diǎn)基于所述多個子查詢所要訪問的多個數(shù)據(jù)源,將所述多個子查詢分別轉(zhuǎn)換成針對所述多個數(shù)據(jù)源的多個查詢語言,例如從子查詢中提取的查詢語言與所要請求的數(shù)據(jù)源的查詢語言不兼容,則需要將所述查詢語言轉(zhuǎn)換成與所請求的數(shù)據(jù)源相兼容的查詢語言。步驟五,所述多個計(jì)算節(jié)點(diǎn)分別執(zhí)行所述多個查詢語言并獲得多個中間結(jié)果,并將所述多個中間結(jié)果發(fā)送至所述用戶節(jié)點(diǎn)。步驟六,所述用戶節(jié)點(diǎn)根據(jù)所述查詢請求將所述多個中間結(jié)果組成查詢結(jié)果。[0023]在本發(fā)明優(yōu)選實(shí)施例中,所述對所述查詢請求進(jìn)行校驗(yàn)包括對所述查詢請求進(jìn)行語法校驗(yàn)和語義校驗(yàn),即除了檢查語法結(jié)構(gòu)的正確性外,還要檢查語義邏輯的正確性。并且如果對所述查詢請求進(jìn)行校驗(yàn)后發(fā)現(xiàn)校驗(yàn)失敗,則不進(jìn)行后續(xù)處理并向用戶節(jié)點(diǎn)返回校驗(yàn)失敗息。
[0024]在本發(fā)明優(yōu)選實(shí)施例中,所述將所述查詢請求分解為多個子查詢包括:根據(jù)所述查詢請求所要訪問的多個數(shù)據(jù)源,將所述查詢請求分解為多個子查詢,其中,每個子查詢僅需要訪問所述多個數(shù)據(jù)源中的一個,即所述多個子查詢與所述多個數(shù)據(jù)源具有一對一的關(guān)系或者多對一的關(guān)系。建立對應(yīng)于所述查詢請求的子查詢列表,并將所述多個子查詢記錄于所述子查詢列表中。查找與所述用戶節(jié)點(diǎn)最近的具有所述多個數(shù)據(jù)源的多個計(jì)算節(jié)點(diǎn),并根據(jù)所述多個子查詢所要訪問的數(shù)據(jù)源將所述多個子查詢分配給所述多個計(jì)算節(jié)點(diǎn),即針對每個子查詢,以用戶節(jié)點(diǎn)為中心,由近至遠(yuǎn)進(jìn)行查找,直至查找到與用戶節(jié)點(diǎn)具有最短網(wǎng)絡(luò)距離的同時具有要訪問的數(shù)據(jù)源的計(jì)算節(jié)點(diǎn)。建立對應(yīng)于所述查詢請求的計(jì)算節(jié)點(diǎn)列表,并將所述多個計(jì)算節(jié)點(diǎn)記錄于所述計(jì)算節(jié)點(diǎn)列表中。
[0025]在本發(fā)明優(yōu)選實(shí)施例中,在所述分別執(zhí)行所述多個查詢語言期間,周期性地計(jì)算每個子查詢的處理數(shù)據(jù),所述處理數(shù)據(jù)包括每個子查詢已經(jīng)運(yùn)行的時間1\、每個子查詢已經(jīng)運(yùn)行的進(jìn)度P1、每個子查詢的運(yùn)行速度R1、每個子查詢的余下時間Ei,其中,Ri=PiZti, Ei=(1-PiVRi, l〈=i〈=n,其中,i是所述多個子查詢的個數(shù),η是大于I的整數(shù)。其中每個子查詢已經(jīng)運(yùn)行的進(jìn)度Pi即每個子查詢已經(jīng)運(yùn)行的任務(wù)占每個子查詢總?cè)蝿?wù)的比例(例如可以表示為百分比),因此0〈=Pi〈=l,接著,對所述多個計(jì)算節(jié)點(diǎn)按照計(jì)算節(jié)點(diǎn)余下時間進(jìn)行升序排序,所述計(jì)算節(jié)點(diǎn)余下時間為計(jì)算節(jié)點(diǎn)上所分配的所有子查詢的余下時間之和,即每個計(jì)算節(jié)點(diǎn)執(zhí)行完余下的所有子查詢?nèi)蝿?wù)所需要的時間。如果某一計(jì)算節(jié)點(diǎn)的排序在所述升序排序的后半部分,并 且所述某一計(jì)算節(jié)點(diǎn)上被分配了多個子查詢,則執(zhí)行以下步驟。即查找具有所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢所要訪問的數(shù)據(jù)源的備份計(jì)算節(jié)點(diǎn),其中所述備份計(jì)算節(jié)點(diǎn)的數(shù)量根據(jù)所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量進(jìn)行確定,即在沒有子查詢完成的情況下為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量減I個,只要有I個子查詢已經(jīng)完成則在上述基礎(chǔ)上減1,依次類推。即滿足所述備份計(jì)算節(jié)點(diǎn)的數(shù)量為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量減I。在考慮有子查詢已經(jīng)完成的情況下,滿足所述備份計(jì)算節(jié)點(diǎn)的數(shù)量為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量減I再減去已完成子查詢的數(shù)量。將所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢重新分配給所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn),以使得所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn)中的每一個僅被分配一個子查詢。即滿足Sb=Sa-S^i, Sb為所述備份計(jì)算節(jié)點(diǎn)的數(shù)量,Sa為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量,Sc為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢中余下時間為零的子查詢的數(shù)量(即所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢中已經(jīng)運(yùn)行完成的子查詢的數(shù)量)。上述重新分配處理后,更新所述計(jì)算節(jié)點(diǎn)列表。
[0026]在另一優(yōu)選實(shí)施例中,在所述分別執(zhí)行所述多個查詢語言期間,周期性地計(jì)算每個子查詢的處理數(shù)據(jù),所述處理數(shù)據(jù)包括每個子查詢已經(jīng)運(yùn)行的時間1\、每個子查詢已經(jīng)運(yùn)行的進(jìn)度P1、每個子查詢的運(yùn)行速度R1、每個子查詢的余下時間Ei,其中,Ri=PiAi, Ei=(1-Pi)ZiRpK=K=Ii,其中,i是所述多個子查詢的個數(shù),η是大于I的整數(shù)。其中每個子查詢已經(jīng)運(yùn)行的進(jìn)度Pi即每個子查詢已經(jīng)運(yùn)行的任務(wù)占每個子查詢總?cè)蝿?wù)的比例(例如可以表示為百分比),因此(K=P^=1接著,計(jì)算計(jì)算節(jié)點(diǎn)平均余下時間,即計(jì)算節(jié)點(diǎn)平均余下時間等于所有子查詢余下時間之和除以計(jì)算節(jié)點(diǎn)列表中計(jì)算節(jié)點(diǎn)的數(shù)量。同時計(jì)算所有計(jì)算節(jié)點(diǎn)余下時間,所述計(jì)算節(jié)點(diǎn)余下時間為計(jì)算節(jié)點(diǎn)上所分配的所有子查詢的余下時間之和,即每個計(jì)算節(jié)點(diǎn)執(zhí)行完余下的所有子查詢?nèi)蝿?wù)所需要的時間。如果某一計(jì)算節(jié)點(diǎn)的計(jì)算節(jié)點(diǎn)余下時間小于計(jì)算節(jié)點(diǎn)平均余下時間,并且所述某一計(jì)算節(jié)點(diǎn)上被分配了多個子查詢,則執(zhí)行以下步驟。即查找具有所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢所要訪問的數(shù)據(jù)源的備份計(jì)算節(jié)點(diǎn),其中所述備份計(jì)算節(jié)點(diǎn)的數(shù)量根據(jù)所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量進(jìn)行確定,即在沒有子查詢完成的情況下為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量減I個,只要有I個子查詢已經(jīng)完成則在上述基礎(chǔ)上減1,依次類推。即滿足所述備份計(jì)算節(jié)點(diǎn)的數(shù)量為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量減I。在考慮有子查詢已經(jīng)完成的情況下,滿足所述備份計(jì)算節(jié)點(diǎn)的數(shù)量為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量減I再減去已完成子查詢的數(shù)量。將所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢重新分配給所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn),以使得所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn)中的每一個僅被分配一個子查詢。即滿足SB=SA-Sfl,Sb為所述備份計(jì)算節(jié)點(diǎn)的數(shù)量,Sa為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量,S。為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢中余下時間為零的子查詢的數(shù)量(即所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢中已經(jīng)運(yùn)行完成的子查詢的數(shù)量)。上述重新分配處理后,更新所述計(jì)算節(jié)點(diǎn)列表。
[0027]綜上所述,根據(jù)本發(fā)明的基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法,使得在云計(jì)算網(wǎng)絡(luò)中獲得更全面的查詢結(jié)果,避免進(jìn)行不必要的查詢操作,更合理地利用計(jì)算資源,并且降低了數(shù)據(jù)傳輸成本。
[0028]顯然,本領(lǐng) 域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各步驟可以用通用的計(jì)算系統(tǒng)來實(shí)現(xiàn),它們可以集中在單個的計(jì)算系統(tǒng)上,或者分布在多個計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計(jì)算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0029]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實(shí)施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
【權(quán)利要求】
1.一種基于云計(jì)算的財務(wù)數(shù)據(jù)查詢方法,所述方法包括: 用戶節(jié)點(diǎn)接收用戶提交的查詢請求; 解析所述查詢請求并對所述查詢請求進(jìn)行校驗(yàn); 將所述查詢請求分解為多個子查詢; 基于所述多個子查詢所要訪問的多個數(shù)據(jù)源,將所述多個子查詢分別轉(zhuǎn)換成針對所述多個數(shù)據(jù)源的多個查詢語言; 分別執(zhí)行所述多個查詢語言并獲得多個中間結(jié)果; 將所述多個中間結(jié)果組成查詢結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述查詢請求進(jìn)行校驗(yàn)包括對所述查詢請求進(jìn)行語法校驗(yàn)和語義校驗(yàn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述查詢請求進(jìn)行校驗(yàn)包括: 如果對所述查詢請求進(jìn)行校驗(yàn)后發(fā)現(xiàn)校驗(yàn)失敗,則不進(jìn)行后續(xù)處理并向用戶節(jié)點(diǎn)返回校驗(yàn)失敗信息。
4.根據(jù)權(quán)利要求1 所述的方法,其特征在于,所述將所述查詢請求分解為多個子查詢包括: 根據(jù)所述查詢請求所要訪問的多個數(shù)據(jù)源,將所述查詢請求分解為多個子查詢,其中,每個子查詢僅需要訪問所述多個數(shù)據(jù)源中的一個; 建立對應(yīng)于所述查詢請求的子查詢列表,并將所述多個子查詢記錄于所述子查詢列表中; 查找與所述用戶節(jié)點(diǎn)最近的具有所述多個數(shù)據(jù)源的多個計(jì)算節(jié)點(diǎn),并根據(jù)所述多個子查詢所要訪問的數(shù)據(jù)源將所述多個子查詢分配給所述多個計(jì)算節(jié)點(diǎn); 建立對應(yīng)于所述查詢請求的計(jì)算節(jié)點(diǎn)列表,并將所述多個計(jì)算節(jié)點(diǎn)記錄于所述計(jì)算節(jié)點(diǎn)列表中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述分別執(zhí)行所述多個查詢語言期間,周期性地計(jì)算每個子查詢的處理數(shù)據(jù),所述處理數(shù)據(jù)包括每個子查詢已經(jīng)運(yùn)行的時間!\、每個子查詢已經(jīng)運(yùn)行的進(jìn)度P1、每個子查詢的運(yùn)行速度R1、每個子查詢的余下時間Ei,其中,Ri=PiA1i,Ei= (1-PiVRi, l〈=i〈=n,其中,i是所述多個子查詢的個數(shù),η是大于I的整數(shù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,對所述多個計(jì)算節(jié)點(diǎn)按照計(jì)算節(jié)點(diǎn)余下時間進(jìn)行升序排序,所述計(jì)算節(jié)點(diǎn)余下時間為計(jì)算節(jié)點(diǎn)上所分配的所有子查詢的余下時間之和。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,如果某一計(jì)算節(jié)點(diǎn)的排序在所述升序排序的后半部分,并且所述某一計(jì)算節(jié)點(diǎn)上被分配了多個子查詢,則: 查找具有所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢所要訪問的數(shù)據(jù)源的備份計(jì)算節(jié)占.將所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢重新分配給所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn),以使得所述某一計(jì)算節(jié)點(diǎn)和所述備份計(jì)算節(jié)點(diǎn)中的每一個僅被分配一個子查詢; 其中,滿足SB=SA-\-l,Sb為所述備份計(jì)算節(jié)點(diǎn)的數(shù)量,Sa為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢的數(shù)量,Sc為所述某一計(jì)算節(jié)點(diǎn)上被分配的多個子查詢中余下時間為零的子查詢的數(shù)量。
8.根據(jù)權(quán)利要 求7所述的方法,其特征在于,上述重新分配處理后,更新所述計(jì)算節(jié)點(diǎn)列表。
【文檔編號】G06F17/30GK103984713SQ201410188923
【公開日】2014年8月13日 申請日期:2014年5月7日 優(yōu)先權(quán)日:2014年5月7日
【發(fā)明者】李海鷹 申請人:麗水桉陽生物科技有限公司