本發(fā)明涉及計算機技術(shù)領域,尤其涉及一種數(shù)據(jù)處理方法及裝置。
背景技術(shù):聯(lián)機分析處理(On-LineAnalyticalProcessing,OLAP)是一種可以為管理、分析人員提供多維度信息的快速、一致交互式存取,從而獲得對數(shù)據(jù)更深入分析的軟件工具,主要應用于各種商業(yè)智能分析領域。聯(lián)機分析處理邏輯系統(tǒng)包括源數(shù)據(jù)的讀取、立方體建模分析處理和用戶展現(xiàn)三部分。聯(lián)機分析處理的數(shù)據(jù)源可以來自多種不同的物理存儲介質(zhì):如集群的數(shù)據(jù)倉庫、本地硬盤,閃存或者固態(tài)硬盤。聯(lián)機分析處理系統(tǒng)處理用戶查詢請求的流程:(1)首先從存儲介質(zhì)中加載原始數(shù)據(jù);(2)將加載的數(shù)據(jù)通過多維度立方體的建模;(3)再根據(jù)用戶的查詢請求對數(shù)據(jù)進行掃描、維度聚合、過濾等處理后將結(jié)果以報表、儀表盤、圖例等方式展現(xiàn)給用戶?;趦?nèi)存的聯(lián)機分析處理(InMemoryOLAP)是現(xiàn)有聯(lián)機分析處理方法中普遍采用的一種方法,其利用內(nèi)存讀寫速度快的優(yōu)點,通過將部分的數(shù)據(jù)緩存在內(nèi)存中,可以有效提高用戶查詢的處理性能,縮短響應時間,充分發(fā)揮了緩存的優(yōu)勢,并通過周期的刷新緩存數(shù)據(jù)內(nèi)容,提高緩存的命中率?,F(xiàn)有InMemoryOLAP的實現(xiàn)方式主要包括:固定緩存和基于LRU(LeastRecentlyUsed)最近最少使用原則的緩存兩種實現(xiàn)方式。固定緩存的InMemoryOLAP方法,是系統(tǒng)開發(fā)人員根據(jù)以往相關經(jīng)驗固化一些數(shù)據(jù)信息緩存在內(nèi)存中。這種方法存在兩個缺點:(1)緩存數(shù)據(jù)僅憑開發(fā)人員的經(jīng)驗選擇,并未考慮數(shù)據(jù)被查詢頻度和層次化的數(shù)據(jù)查詢復雜度等因素,緩存數(shù)據(jù)的有效性和緩存命中率低;(2)緩存數(shù)據(jù)被固化在內(nèi)存中,緩存數(shù)據(jù)不能靈活更新,系統(tǒng)的靈活性和可擴展性差?;贚RU緩存的InMemoryOLAP方法,其思想是將最近一段時間查詢較少的數(shù)據(jù)從緩存中搬出來,而將最近被頻繁查詢的數(shù)據(jù)保留在內(nèi)存中。然而,基于LRU緩存的InMemoryOLAP方法并沒有針對OLAP多維分析的特性,考慮數(shù)據(jù)聚合統(tǒng)計的計算規(guī)模、響應時間和數(shù)據(jù)存儲的物理介質(zhì)等更多的因素。在查詢頻度較平均的場景中,緩存數(shù)據(jù)的有效性較低,查詢性能也并不理想。隨著移動互聯(lián)網(wǎng)和個人消費領域的不斷發(fā)展擴大,一方面每天都有海量的TB,PB級新數(shù)據(jù)被灌入數(shù)據(jù)倉庫,而另一方面運營商渴望通過對生成的數(shù)據(jù)進行深入分析以支持精細化的管理決策。當前已有的InMemoryOLAP技術(shù)在海量數(shù)據(jù)面前效果并不理想,主要問題在于系統(tǒng)響應慢、實時性不理想。因此如何進一步提高InMemoryOLAP數(shù)據(jù)查詢的實時性是當前業(yè)務發(fā)展,市場拓展面臨的主要技術(shù)問題。
技術(shù)實現(xiàn)要素:本發(fā)明的目的是提供一種數(shù)據(jù)處理方法及裝置,能夠充分利用緩存存儲數(shù)據(jù),可以提高緩存數(shù)據(jù)的有效性和命中率,從而提高InMemoryOLAP的查詢響應速度及查詢性能。為實現(xiàn)上述目的,本發(fā)明第一方面提供了一種數(shù)據(jù)處理方法,所述方法包括:獲取數(shù)據(jù)查詢請求,根據(jù)所述數(shù)據(jù)查詢請求生成查詢計劃;將所述查詢計劃分解成多個子查詢計劃;根據(jù)子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息,確定所述多個子查詢計劃的查詢代價;將所述多個子查詢計劃中查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中。結(jié)合第一方面,在第一方面的第一種可能的實施方式中,所述根據(jù)子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息,確定所述多個子查詢計劃的代價成本,包括:根據(jù)代價模型計算得到所述多個子查詢計劃的查詢代價,所述代價模型為所述子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息中的代價因素的計算表達式。結(jié)合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述代價因素包括以下所列中的一種或任意結(jié)合:數(shù)據(jù)規(guī)模、查詢頻度、計算規(guī)模、存儲介質(zhì)和算法執(zhí)行時間。結(jié)合第一方面的第二種可能的實施方式,在第一方面的第三種可能的實施方式中,所述根據(jù)代價模型計算得到所述多個子查詢計劃的查詢代價,包括:根據(jù)以下計算公式分別計算得到每一個所述子查詢計劃的查詢代價:Query_Cost=a*查詢頻度+(1-a)*計算規(guī)模,其中,Query_Cost表示查詢代價,a表示預設的加權(quán)因子。結(jié)合第一方面的第二種可能的實施方式,在第一方面的第四種可能的實施方式中,所述根據(jù)代價模型計算得到所述多個子查詢計劃的查詢代價,包括:根據(jù)以下計算公式分別計算得到每一個所述子查詢計劃的查詢代價:Query_Cost=數(shù)據(jù)規(guī)模+(存儲介質(zhì)+計算規(guī)模)*查詢頻度,其中,Query_Cost表示查詢代價。結(jié)合第一方面,在第一方面的第五種可能的實施方式中,所述查詢代價滿足預設條件包括:所述查詢代價排在前N個,N為預設正整數(shù);或者,所述查詢代價超過預設代價閾值。結(jié)合第一方面,在第一方面的第六種可能的實施方式中,在將所述多個子查詢計劃中查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中之后,還包括:將所述多個子查詢計劃的信息更新或存儲到所述子計劃數(shù)據(jù)庫中;所述多個子查詢計劃的信息包括以下所列中的一種或任意結(jié)合:所述子查詢計劃、所述子查詢計劃對應數(shù)據(jù)的鍵key索引、所述子查詢計劃的查詢代價、所述子查詢計劃的代價因素、所述子查詢計劃對應的數(shù)據(jù)的存儲位置,以及所述子查詢計劃與其他子查詢計劃的依賴關系。結(jié)合第一方面的第六種可能的實施方式,在第一方面的第七種可能的實施方式中,所述子計劃數(shù)據(jù)庫以樹形結(jié)構(gòu)或列表形式存儲所述子查詢計劃的信息。結(jié)合第一方面,在第一方面的第八種可能的實施方式中,在將所述查詢計劃分解成多個子查詢計劃之后,還包括:確定所述多個子查詢計劃對應數(shù)據(jù)的存儲位置,從所述存儲位置中獲取對應數(shù)據(jù),生成數(shù)據(jù)處理結(jié)果。第二方面,本發(fā)明還提供了一種數(shù)據(jù)處理裝置,所述裝置包括:查詢計劃處理器、查詢計劃解析器、子計劃管理器、代價管理器和數(shù)據(jù)管理器;所述查詢計劃處理器,用于獲取數(shù)據(jù)查詢請求,根據(jù)所述數(shù)據(jù)查詢請求生成查詢計劃;所述查詢計劃解析器,用于將所述查詢計劃處理器生成的所述查詢計劃分解成多個子查詢計劃;所述子計劃管理器,用于將子查詢計劃的信息存儲于子計劃數(shù)據(jù)庫中;所述代價管理器,用于根據(jù)所述子計劃管理器的子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息,確定所述查詢計劃解析器得到的所述多個子查詢計劃的查詢代價,并將所述多個子查詢計劃的查詢代價存儲于所述子計劃數(shù)據(jù)庫中;所述數(shù)據(jù)管理器,用于將所述代價管理器得到的所述多個子查詢計劃中查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中。結(jié)合第二方面,在第二方面的第一種可能的實施方式中,所述代價管理器具體用于根據(jù)代價模型計算得到所述子查詢計劃的查詢代價,所述代價模型為所述子計劃管理器的子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息中的代價因素的計算表達式。結(jié)合第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述代價因素包括以下所列中的一種或任意結(jié)合:數(shù)據(jù)規(guī)模、查詢頻度、計算規(guī)模、存儲介質(zhì)和算法執(zhí)行時間。結(jié)合第二方面的第二種可能的實施方式,在第二方面的第三種可能的實施方式中,所述代價管理器具體用于根據(jù)以下計算公式分別計算得到每一個所述子查詢計劃的查詢代價:Query_Cost=a*查詢頻度+(1-a)*計算規(guī)模,其中,Query_Cost表示查詢代價,a表示預設的加權(quán)因子。結(jié)合第二方面的第二種可能的實施方式,在第二方面的第四種可能的實施方式中,所述代價管理器具體用于根據(jù)以下計算公式分別計算得到每一個所述子查詢計劃的查詢代價:Query_Cost=數(shù)據(jù)規(guī)模+(存儲介質(zhì)+計算規(guī)模)*查詢頻度,其中,Query_Cost表示查詢代價。結(jié)合第二方面,在第二方面的第五種可能的實施方式中,所述查詢代價滿足預設條件包括:所述查詢代價排在前N個,N為預設正整數(shù);或者,所述查詢代價超過預設代價閾值。結(jié)合第二方面,在第二方面的第六種可能的實施方式中,所述子計劃管理器還用于更新或存儲所述多個子查詢計劃的信息到所述子計劃數(shù)據(jù)庫中;所述多個子查詢計劃的信息包括以下所列中的一種或任意結(jié)合:所述子查詢計劃、所述子查詢計劃對應數(shù)據(jù)的鍵key索引、所述子查詢計劃的查詢代價、所述子查詢計劃的代價因素、所述子查詢計劃對應的數(shù)據(jù)的存儲位置,以及所述子查詢計劃與其他子查詢計劃的依賴關系。結(jié)合第二方面的第六種可能的實施方式,在第二方面的第七種可能的實施方式中,所述子計劃管理器將所述子查詢計劃的信息以樹形結(jié)構(gòu)或列表形式存儲到所述子計劃數(shù)據(jù)庫。結(jié)合第二方面,在第二方面的第八種可能的實施方式中,所述數(shù)據(jù)管理器還用于確定所述多個查詢計劃解析器得到的所述子查詢計劃對應數(shù)據(jù)的存儲位置,從所述存儲位置中獲取對應數(shù)據(jù),生成數(shù)據(jù)處理結(jié)果。本發(fā)明提供的數(shù)據(jù)處理方法及裝置,通過引入代價模型評估子查詢計劃的查詢代價,根據(jù)查詢代價選擇合理的數(shù)據(jù)存儲于緩存中,能夠充分利用緩存存儲數(shù)據(jù),讓緩存帶來最大的價值,提高了緩存數(shù)據(jù)的有效性和命中率,從而提高OLAP的查詢響應速度及查詢性能。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的帶有聯(lián)機分析處理設備的組網(wǎng)圖;圖2為本發(fā)明實施例一提供的數(shù)據(jù)處理方法流程圖;圖3為本發(fā)明實施例一采用樹形結(jié)構(gòu)的子計劃數(shù)據(jù)庫的示意圖;圖4為本發(fā)明實施例二提供的數(shù)據(jù)處理裝置示意圖;圖5為本發(fā)明實施例三提供的聯(lián)機分析處理設備的結(jié)構(gòu)示意圖。具體實施方式下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。圖1是本發(fā)明實施例提供的帶有聯(lián)機分析處理(On-LineAnalyticalProcessing,OLAP)設備的OLAP系統(tǒng)組網(wǎng)圖,如圖1所示,該OLAP系統(tǒng)包括:聯(lián)機分析處理設備1、數(shù)據(jù)倉庫2和客戶端3,客戶端3通過網(wǎng)絡4與聯(lián)機分析處理設備1連接,聯(lián)機分析處理設備1與數(shù)據(jù)倉庫2相連接,數(shù)據(jù)倉庫2中存儲大量數(shù)據(jù),聯(lián)機分析處理設備1利用數(shù)據(jù)倉庫2中的數(shù)據(jù)進行處理用戶的處理請求。例如,數(shù)據(jù)倉庫2中記錄XX公司各年各月的銷售額數(shù)據(jù),用戶可以在客戶端3上通過聯(lián)機分析處理設備1查詢具體年、月、子公司、部門的銷售額,也可以查詢年度、季度、子公司的累積結(jié)果等等。具體聯(lián)機分析處理的過程包括:(1)客戶端3接收聯(lián)機分析處理請求;(2)客戶端3將處理請求通過網(wǎng)絡4傳遞給聯(lián)機分析處理設備1;(3)聯(lián)機分析處理設備1處理客戶端3的處理請求,得到分析處理結(jié)果;(4)聯(lián)機分析處理設備1將分析處理結(jié)果通過網(wǎng)絡4回傳到客戶端3;(5)客戶端3將處理結(jié)果展現(xiàn)給用戶。本發(fā)明實施例提供的數(shù)據(jù)處理方法和裝置,適用于帶有聯(lián)機分析處理設備的系統(tǒng),例如上述OLAP系統(tǒng),使得基于內(nèi)存的聯(lián)機分析處理設備的緩存在空間有限的條件下得到充分合理的利用,具有較好的查詢性能。實施例一圖2是本實施例提供的基于上述OLAP系統(tǒng)的數(shù)據(jù)處理方法流程圖,如圖2所示,本發(fā)明的數(shù)據(jù)處理方法包括:S101、獲取數(shù)據(jù)查詢請求,根據(jù)所述數(shù)據(jù)查詢請求生成查詢計劃。每一個數(shù)據(jù)查詢請求對應為一個查詢計劃。例如,用戶請求查詢的數(shù)據(jù)為子公司Axx年的銷售額,則聯(lián)機分析處理設備接收到該數(shù)據(jù)查詢請求,生成對應的查詢計劃為:子公司Axx年的銷售額。對于數(shù)據(jù)倉庫中已有的用戶查詢數(shù)據(jù),通過本實施例的方法逐一對已有的用戶查詢數(shù)據(jù)進行處理,每一個數(shù)據(jù)查詢請求對應為一個查詢計劃。S102、將所述查詢計劃分解成多個子查詢計劃。將查詢計劃的中間結(jié)果數(shù)據(jù)對應為子查詢計劃,將查詢計劃分解為若干子查詢計劃。例如,查詢計劃為子公司A二、三季度銷售額比,可以分解為:子公司A每個月的銷售額、子公司A二季度銷售額以及子公司A三季度銷售額。S103、根據(jù)子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息,確定所述多個子查詢計劃的查詢代價。子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息可以但不限于包括:所述子查詢計劃、所述子查詢計劃對應數(shù)據(jù)的鍵key索引、所述子查詢計劃的查詢代價、所述子查詢計劃的代價因素、所述子查詢計劃對應的數(shù)據(jù)的存儲位置,以及所述子查詢計劃與其他子查詢計劃的依賴關系。確定所述多個子查詢計劃的查詢代價,具體包括:根據(jù)代價模型計算得到所述子查詢計劃的查詢代價。所述代價模型為代價因素的計算表達式,所述代價因素可以但不限于包括:數(shù)據(jù)規(guī)模、查詢頻度、計算規(guī)模、存儲介質(zhì)和算法執(zhí)行時間等。其中,數(shù)據(jù)規(guī)模是子查詢計劃對應的數(shù)據(jù)量,查詢頻度是子查詢計劃累計的被查詢次數(shù),計算規(guī)模是得到子查詢計劃對應的數(shù)據(jù)所需的下一層數(shù)據(jù)的數(shù)量,存儲介質(zhì)是子查詢計劃對應的數(shù)據(jù)的存儲位置,算法執(zhí)行時間是得到子查詢計劃對應的數(shù)據(jù)所需的時間。利用這些代價因素確定代價模型,通常還需要對非數(shù)值型的代價因素進行權(quán)值的量化設定。以存儲介質(zhì)這一代價因素為例,一般來說,不同存儲設備的數(shù)據(jù)讀寫速度的關系通常是Memory>FLASH>SSD>Disk>數(shù)據(jù)倉庫,在Memory中的讀寫速度最快,在數(shù)據(jù)倉庫的最慢,因而,設定量化的權(quán)值如下表1所示:表1存儲介質(zhì)代價數(shù)據(jù)倉庫10本地磁盤Disk6固態(tài)硬盤SSD4閃存FLASH3緩存Memory0相類似的,也可以對其他非數(shù)值型的代價因素進行權(quán)值的量化設定,用以通過代價模型的計算表達式計算得到查詢代價的數(shù)值。可選的,根據(jù)實際應用場景選擇需要考慮的代價因素,以構(gòu)成的查詢代價的計算表達式,用來衡量子查詢計劃的查詢代價成本。另外,還可以提供開放的代價模型配置接口,以供用戶靈活調(diào)整代價模型的計算表達式和代價因數(shù)。例如,可以選擇所要考慮的代價因素或調(diào)整代價因素的權(quán)重,以修改代價評估標準形成合理的代價模型,從而調(diào)整緩存數(shù)據(jù)刷新結(jié)果。S104、將所述多個子查詢計劃中查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中。將子查詢計劃的查詢代價與緩存中已存儲的子查詢計劃的查詢代價進行排序,將查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中,將剩余的所述查詢代價不滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲到外部數(shù)據(jù)倉庫中。所述查詢代價滿足預設條件包括:所述查詢代價排在前N個,N為預設正整數(shù);或者,所述查詢代價超過預設代價閾值。將高代價的子查詢計劃對應的數(shù)據(jù)緩存在內(nèi)存中,而將低代價的子查詢計劃對應的數(shù)據(jù)從緩存中移除??蛇x的,在S104之后,還包括:將所述多個子查詢計劃的信息更新或存儲到子計劃數(shù)據(jù)庫中。其中,子查詢計劃的信息可以但不限于包括:所述子查詢計劃、所述子查詢計劃對應數(shù)據(jù)的鍵key索引、所述子查詢計劃的查詢代價、所述子查詢計劃的代價因素、所述子查詢計劃對應的數(shù)據(jù)的存儲位置,以及所述子查詢計劃與其他子查詢計劃的依賴關系等等。子計劃數(shù)據(jù)庫可以但不限于以樹形結(jié)構(gòu)或列表形式等存儲子查詢計劃的信息。利用子計劃數(shù)據(jù)庫來管理和記錄每個子查詢計劃對應數(shù)據(jù)的key索引、查詢代價、代價因素和數(shù)據(jù)是否緩存,并維護子計劃之間的依賴關系,用以根據(jù)保存的子查詢計劃的查詢代價等信息,決定對應的數(shù)據(jù)是否存儲于緩存中,在進行聯(lián)機分析處理時,能夠減少在查詢代價高的子查詢計劃對應的數(shù)據(jù)上所花的數(shù)據(jù)讀寫時間,提高查詢性能。舉個例子,利用查詢頻度和計算規(guī)模這兩個代價因素建立代價模型,可以通過以下計算公式分別計算得到每一個所述子查詢計劃的查詢代價:Query_Cost=a*查詢頻度+(1-a)*計算規(guī)模,其中,Query_Cost表示查詢代價,a表示預設的加權(quán)因子。例如,a=0.4。即,查詢代價=0.4*查詢頻度+0.6*計算規(guī)模。在數(shù)據(jù)倉庫中記錄XX公司各年各月的銷售額數(shù)據(jù),記錄的數(shù)據(jù)如表2-表4所示:表2時間編號年度季度月份2012010620122012.12012.12012010720122012.12012.1…………2012122620122012.42012.12表3產(chǎn)品編號子公司部門9-002Co.ADep.A9-003Co.BDep.B………9-012Co.HDep.J表4時間編號產(chǎn)品編號銷售額201201069-002100.00201201079-003120.00………201212269-012122.00用戶可以查詢具體年、月、子公司、部門的銷售額,也可以查詢年度、季度、子公司的累積結(jié)果等等。圖3是采用樹形結(jié)構(gòu)的子計劃數(shù)據(jù)庫的示意圖,如圖3所示,用樹形結(jié)構(gòu)的每個節(jié)點代表一個子計劃,樹形結(jié)構(gòu)中上層節(jié)點所代表的查詢計劃的計算規(guī)模依賴于其下層節(jié)點的數(shù)目。圖中最上層節(jié)點Y表示年度統(tǒng)計的總銷售額,第二層節(jié)點表示按季度統(tǒng)計的總銷售額,第三層節(jié)點表示按月統(tǒng)計的銷售額。以Q1節(jié)點為例,其結(jié)果需要從M1、M2、M3的月度銷售結(jié)果聚合得到因此Q1的計算規(guī)模等于3,同理Y節(jié)點和Q、M等其他節(jié)點。子查詢計劃可以采用如圖3所示的樹形結(jié)構(gòu)來管理子計劃數(shù)據(jù)庫,對于子查詢計劃Y為按年度統(tǒng)計總銷售額,計算規(guī)模為4,子查詢計劃Q為按季度統(tǒng)計總銷售額,計算規(guī)模為3,子查詢計劃M為按月統(tǒng)計總銷售額,計算規(guī)模為30。假設子計劃數(shù)據(jù)庫中記錄的子查詢計劃Y、Q、M的查詢頻度分別為10、3和1。根據(jù)公式:查詢代價=0.4*查詢頻度+0.6*計算規(guī)模,可以計算得到子查詢計劃Y的查詢代價是6.4,子查詢計劃Q的查詢代價是3,子查詢計劃M的查詢代價是18.4。根據(jù)計算得到的查詢代價,選擇較高的子查詢計劃M和Q對應的數(shù)據(jù)存儲于緩存中,即將下表5和表6的數(shù)據(jù)存儲于緩存中。表5年度銷售額20122300.00表6月度銷售額2012.1450.002012.2550.002012.3550.00……2012.12350.00再舉個例子,利用數(shù)據(jù)規(guī)模、存儲介質(zhì)、計算規(guī)模和查詢頻度這幾個代價因素建立代價模型,可以通過以下計算公式分別計算得到每一個所述子查詢計劃的查詢代價:Query_Cost=數(shù)據(jù)規(guī)模+(存儲介質(zhì)+計算規(guī)模)*查詢頻度,其中,Query_Cost表示查詢代價。在數(shù)據(jù)倉庫中記錄XX公司各年各月的銷售額數(shù)據(jù)如表7所示,在閃存Flash中記錄的數(shù)據(jù)如表8所示:表7月度子公司A銷售額2012.1450.002012.2550.00……2012.12850.00表8時間編號子公司銷售額1B982B108………12G230用戶輸入的查詢計劃如下表9所示:表9用戶查詢計劃1、子公司A銷售額超過100的月份2、子公司A二、三季度銷售額比3、4月份各子公司的銷售額將查詢計劃分成若干個子查詢計劃,例如,對于查詢計劃1:子公司A銷售額超過100的月份,可以分解為子查詢計劃(a)子公司A每個月的銷售額。查詢計劃2:子公司A二、三季度銷售額比,可以分解為:子查詢計劃(a)子公司A每個月的銷售額、(b)子公司A二季度銷售額和(c)子公司A三季度銷售額。查詢計劃3:4月份各子公司的銷售額,分解為:子查詢計劃(a)子公司A每個月的銷售額和(d)其他子公司各月份的銷售額。進而確定各子查詢計劃的查詢代價。根據(jù)已保存的子計劃數(shù)據(jù)庫中子查詢計劃的信息以及代價模型計算得到各子查詢計劃的查詢代價。子計劃數(shù)據(jù)庫可以采用列表形式存儲子查詢計劃的信息。采用列表形式的子計劃數(shù)據(jù)庫如下表10所示:表10通過計算可以得到,子查詢計劃a的查詢代價是42、子查詢計劃b的查詢代價是13、子查詢計劃c的查詢代價是13、子查詢計劃d的查詢代價是39。將查詢代價較高的子查詢計劃a和d對應的數(shù)據(jù)存儲在緩存中,如下表11和表12所示:表11季度子公司A銷售額2890.003950.00表12月度子公司A銷售額2012.1450.002012.2550.00……2012.12850.00另外,在進行聯(lián)機分析處理過程時,在S104之后,本發(fā)明數(shù)據(jù)處理方法還包括返回查詢數(shù)據(jù)的步驟,具體包括:確定所述多個子查詢計劃對應數(shù)據(jù)的存儲位置,從所述存儲位置中獲取對應數(shù)據(jù),生成數(shù)據(jù)處理結(jié)果。從所述存儲位置中獲取對應數(shù)據(jù),包括:從外部數(shù)據(jù)倉庫或者緩存或其他存儲介質(zhì)中獲取對應數(shù)據(jù)。本發(fā)明實施例提供的數(shù)據(jù)處理方法,通過引入代價模型評估子查詢計劃的代價成本,根據(jù)代價成本選擇可以帶來最大收益的緩存數(shù)據(jù),可以提高了緩存數(shù)據(jù)的有效性和命中率,從而提高了InMemoryOLAP的查詢性能。以上是對本發(fā)明所提供的數(shù)據(jù)處理方法進行的詳細描述,下面對本發(fā)明提供的數(shù)據(jù)處理裝置進行詳細描述。實施例二圖4是本實施例提供的數(shù)據(jù)處理裝置示意圖,如圖4所示,本發(fā)明的數(shù)據(jù)處理裝置包括:查詢計劃處理器101、查詢計劃解析器102、子計劃管理器103、代價管理器104和數(shù)據(jù)管理器105。查詢計劃處理器101用于獲取數(shù)據(jù)查詢請求,根據(jù)所述數(shù)據(jù)查詢請求生成查詢計劃。查詢計劃處理器101為數(shù)據(jù)處理裝置的輸入端,接收用戶通過用戶數(shù)據(jù)查詢接口輸入的數(shù)據(jù)查詢請求。每一個數(shù)據(jù)查詢請求對應為一個查詢計劃。例如,用戶請求查詢的數(shù)據(jù)為子公司Axx年的銷售額,則聯(lián)機分析處理設備接收到該數(shù)據(jù)查詢請求,生成對應的查詢計劃為:子公司Axx年的銷售額。查詢計劃處理器101對于數(shù)據(jù)倉庫中已有的用戶查詢數(shù)據(jù),也可以利用本實施例的裝置逐一對已有的用戶查詢數(shù)據(jù)進行處理,每一個數(shù)據(jù)查詢請求對應為一個查詢計劃。查詢計劃解析器102用于將查詢計劃處理器101生成的所述查詢計劃分解成多個子查詢計劃。查詢計劃解析器102將查詢計劃的中間結(jié)果數(shù)據(jù)對應為子查詢計劃,將查詢計劃分解為若干子查詢計劃。例如,查詢計劃為子公司A二、三季度銷售額比,可以分解為:子公司A每個月的銷售額、子公司A二季度銷售額以及子公司A三季度銷售額。子計劃管理器103用于將子查詢計劃的信息存儲于子計劃數(shù)據(jù)庫中。子計劃數(shù)據(jù)庫中保存的子查詢計劃的信息可以但不限于包括:所述子查詢計劃、所述子查詢計劃對應數(shù)據(jù)的鍵key索引、所述子查詢計劃的查詢代價、所述子查詢計劃的代價因素、所述子查詢計劃對應的數(shù)據(jù)的存儲位置,以及所述子查詢計劃與其他子查詢計劃的依賴關系。代價管理器104用于根據(jù)子計劃管理器的子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息,確定查詢計劃解析器102得到的所述多個子查詢計劃的查詢代價,并將所述子查詢計劃的查詢代價存儲于所述子計劃數(shù)據(jù)庫中。代價管理器104根據(jù)代價模型計算得到所述多個子查詢計劃的查詢代價。所述代價模型為代價因素的計算表達式,所述代價因素可以但不限于包括:數(shù)據(jù)規(guī)模、查詢頻度、計算規(guī)模、存儲介質(zhì)和算法執(zhí)行時間等。其中,數(shù)據(jù)規(guī)模是子查詢計劃對應的數(shù)據(jù)量,查詢頻度是子查詢計劃累計的被查詢次數(shù),計算規(guī)模是得到子查詢計劃對應的數(shù)據(jù)所需的下一層數(shù)據(jù)的數(shù)量,存儲介質(zhì)是子查詢計劃對應的數(shù)據(jù)的存儲位置,算法執(zhí)行時間是得到子查詢計劃對應的數(shù)據(jù)所需的時間。利用這些代價因素確定代價模型,通常還需要對非數(shù)值型的代價因素進行權(quán)值的量化設定。以存儲介質(zhì)這一代價因素為例,一般來說,不同存儲設備的數(shù)據(jù)讀寫速度的關系通常是Memory>FLASH>SSD>Disk>數(shù)據(jù)倉庫,在Memory中的讀寫速度最快,在數(shù)據(jù)倉庫的最慢,因而,設定量化的權(quán)值如下表1所示。相類似的,也可以對其他非數(shù)值型的代價因素進行權(quán)值的量化設定,用以通過代價模型的計算表達式計算得到查詢代價的數(shù)值。可選的,代價管理器104根據(jù)實際應用場景選擇需要考慮的代價因素,以構(gòu)成的查詢代價的計算表達式,用來衡量子查詢計劃的查詢代價成本。另外,代價管理器104還可以通過代價模型配置接口接收用戶配置的信息,以供用戶靈活調(diào)整代價模型的計算表達式和代價因數(shù)。例如,可以選擇所要考慮的代價因素或調(diào)整代價因素的權(quán)重,以修改代價評估標準形成合理的代價模型,從而調(diào)整緩存數(shù)據(jù)刷新結(jié)果。子計劃管理器103將代價管理器104子得到的查詢計劃的信息更新或存儲到子計劃數(shù)據(jù)庫中。其中,子查詢計劃的信息可以但不限于包括:所述子查詢計劃、所述子查詢計劃對應數(shù)據(jù)的鍵key索引、所述子查詢計劃的查詢代價、所述子查詢計劃的代價因素、所述子查詢計劃對應的數(shù)據(jù)的存儲位置,以及所述子查詢計劃與其他子查詢計劃的依賴關系等等。子計劃管理器103中的子計劃數(shù)據(jù)庫可以但不限于以樹形結(jié)構(gòu)或列表形式等存儲子查詢計劃的信息。子計劃管理器103利用子計劃數(shù)據(jù)庫來管理和記錄每個子查詢計劃對應數(shù)據(jù)的key索引、查詢代價、代價因素和數(shù)據(jù)是否緩存,并維護子計劃之間的依賴關系,用以根據(jù)保存的子查詢計劃的查詢代價等信息,決定對應的數(shù)據(jù)是否存儲于緩存中,在進行聯(lián)機分析處理時,能夠減少在查詢代價高的子查詢計劃對應的數(shù)據(jù)上所花的數(shù)據(jù)讀寫時間,提高查詢性能。數(shù)據(jù)管理器105用于將所述多個子查詢計劃中查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中。數(shù)據(jù)管理器105將子計劃管理器103中子查詢計劃的查詢代價與緩存中已存儲的子查詢計劃的查詢代價進行排序,將查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于緩存中,將剩余的所述查詢代價不滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲到外部數(shù)據(jù)倉庫中。所述查詢代價滿足預設條件包括:所述查詢代價排在前N個,N為預設正整數(shù);或者,所述查詢代價超過預設代價閾值。數(shù)據(jù)管理器105將高代價的子查詢計劃對應的數(shù)據(jù)緩存在內(nèi)存中,而將低代價的子查詢計劃對應的數(shù)據(jù)從緩存中移除。數(shù)據(jù)管理器105還用于確定查詢計劃解析器102得到的所述子查詢計劃對應數(shù)據(jù)的存儲位置,從所述存儲位置中獲取對應數(shù)據(jù),生成數(shù)據(jù)處理結(jié)果。從所述存儲位置中獲取對應數(shù)據(jù),包括:從外部數(shù)據(jù)倉庫或者緩存或其他存儲介質(zhì)中獲取對應數(shù)據(jù)。利用子計劃數(shù)據(jù)庫來管理和記錄每個子查詢計劃對應數(shù)據(jù)的key索引、查詢代價、代價因素和數(shù)據(jù)是否緩存,并維護子計劃之間的依賴關系,用以根據(jù)保存的子查詢計劃的查詢代價等信息,決定對應的數(shù)據(jù)是否存儲于緩存中,在進行聯(lián)機分析處理時,能夠減少在查詢代價高的子查詢計劃對應的數(shù)據(jù)上所花的數(shù)據(jù)讀寫時間,提高查詢性能。本發(fā)明實施例提供的數(shù)據(jù)處理裝置,通過引入代價模型評估子查詢計劃的代價成本,根據(jù)代價成本選擇可以帶來最大收益的緩存數(shù)據(jù),可以提高了緩存數(shù)據(jù)的有效性和命中率,從而提高了InMemoryOLAP的查詢性能。實施例三圖5是本實施例提供的聯(lián)機分析處理設備的結(jié)構(gòu)示意圖,如圖5所示,本發(fā)明聯(lián)機分析處理設備包括:處理器501、網(wǎng)絡接口502、內(nèi)存503、其他存儲設備504以及用于連接和通信的數(shù)據(jù)總線505。處理器501可能為單核或多核中央處理單元(CentralProcessingUnit,CPU),或者為特定集成電路(ApplicationSpecificIntegratedCircuit,ASIC),或者為被配置成實施本發(fā)明實施例的一個或多個集成電路。網(wǎng)絡接口502用于與數(shù)據(jù)倉庫或網(wǎng)絡進行交互。其他存儲設備504可以但不限于包括:閃存FLASH、硬盤Disk、固態(tài)硬盤SSD等。其他存儲設備504或內(nèi)存503中具有軟件模塊和設備驅(qū)動程序。軟件模塊能夠執(zhí)行本發(fā)明上述方法的各種功能模塊;設備驅(qū)動程序可以是網(wǎng)絡和接口驅(qū)動程序。在啟動時,這些軟件組件被加載到其他存儲設備504或內(nèi)存503中,然后被處理器501訪問并執(zhí)行如下指令:獲取數(shù)據(jù)查詢請求,根據(jù)所述數(shù)據(jù)查詢請求生成查詢計劃;將所述查詢計劃分解成多個子查詢計劃;根據(jù)子計劃數(shù)據(jù)庫中已保存的子查詢計劃的信息,確定所述多個子查詢計劃的查詢代價;將所述多個子查詢計劃中查詢代價滿足預設條件的子查詢計劃對應的數(shù)據(jù)存儲于內(nèi)存503中。具體地,本發(fā)明的聯(lián)機分析處理設備還根據(jù)所述指令執(zhí)行實施例一中所述的數(shù)據(jù)處理方法,具體在此不再贅述。本發(fā)明提供的數(shù)據(jù)處理方法及裝置,通過考慮子查詢計劃數(shù)據(jù)的存儲介質(zhì)、查詢頻度和計算規(guī)模等因素,評估子查詢計劃的代價成本,在緩存空間有限的情況下,選擇高代價查詢計劃對應的數(shù)據(jù)緩存在內(nèi)存中,可以帶來最大收益的緩存數(shù)據(jù),可以提高了緩存數(shù)據(jù)的有效性和命中率,從而提高了InMemoryOLAP的查詢性能。專業(yè)人員應該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應用和設計約束條件。專業(yè)技術(shù)人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。