本申請涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
,尤其涉及一種基于海量數(shù)據(jù)多維分析的查詢方法及裝置。
背景技術(shù):
:隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,為了給企業(yè)決策者提供多角度的數(shù)據(jù)支持,越來越多的企業(yè)開始使用聯(lián)機(jī)分析處理(On-lineAnalyticalProcessing,OLAP)以此從不同維度來查詢各維度對應(yīng)的數(shù)據(jù),并對查詢到的數(shù)據(jù)進(jìn)行分析處理來制定相應(yīng)的決策。目前,企業(yè)用戶可通過聯(lián)機(jī)分析處理將采集到的多維數(shù)據(jù)按照固定的存儲格式存儲到數(shù)據(jù)倉庫中,后續(xù),可以根據(jù)企業(yè)用戶的維度要求,通過聯(lián)機(jī)分析處理快速靈活地進(jìn)行大數(shù)據(jù)量的復(fù)雜查詢,并且以一種直觀而易懂的形式將查詢結(jié)果提供給企業(yè)用戶。在現(xiàn)有技術(shù)中,聯(lián)機(jī)分析處理主要是基于關(guān)系型數(shù)據(jù)庫的形式來進(jìn)行多維數(shù)據(jù)的存儲與查詢的,因此,數(shù)據(jù)庫中存儲的多維數(shù)據(jù)主要是采用cube表(cube表為二維表)的形式進(jìn)行存儲的,并且,在cube表中每一個(gè)維度作為一個(gè)列,如,假設(shè)只有維度A和維度B,表1:維度A維度B事實(shí)值A(chǔ)1B11A1B21A2B11A2B21表1另外,聯(lián)機(jī)分析處理也存在基于多維數(shù)據(jù)組織的形式來進(jìn)行多維數(shù)據(jù)的存儲與查詢的,因此,數(shù)據(jù)庫在存儲多維數(shù)據(jù)的過程中,需要對各維度進(jìn)行組合,將組合后的數(shù)據(jù)使用Key-Value的形式進(jìn)行存儲的,如,假設(shè)各個(gè)維度的取值如表2:維度A維度BA1B1A2B2表2數(shù)據(jù)庫對各維度進(jìn)行組合(即,AB,A,B),使用Key-Value的存儲方式,在K-V中的存儲如表3:A1,B2A1,B1A2,B1A2,B2A1A2B1B2表3但是,當(dāng)聯(lián)機(jī)分析處理是基于關(guān)系型數(shù)據(jù)庫的形式來進(jìn)行多維數(shù)據(jù)的存儲與查詢時(shí),如果維度比較多,數(shù)據(jù)量比較大,數(shù)據(jù)存儲在cube表中數(shù)據(jù)會有很多行數(shù)據(jù),而查詢的過程中,需要根據(jù)維度查詢信息,對cube表中的數(shù)據(jù)逐行進(jìn)行過濾,再將過濾后的數(shù)據(jù)聚合,這樣會導(dǎo)致查詢的效率較低,與此同時(shí),當(dāng)聯(lián)機(jī)分析處理是基于多維數(shù)據(jù)組織的形式來進(jìn)行多維數(shù)據(jù)的存儲與查詢時(shí),需要預(yù)先窮舉出所有的維度,并根據(jù)所有的維度,存儲相關(guān)的維度的組合,這樣會帶來巨大的計(jì)算量。技術(shù)實(shí)現(xiàn)要素:本申請實(shí)施例提供一種海量數(shù)據(jù)多維分析的查詢方法及裝置,用以解決現(xiàn)有技術(shù)中當(dāng)聯(lián)機(jī)分析處理是基于關(guān)系型數(shù)據(jù)庫的形式來進(jìn)行多維數(shù)據(jù)的存儲與查詢時(shí),查詢效率較低,且當(dāng)聯(lián)機(jī)分析處理是基于多維數(shù)據(jù)組織的形式來進(jìn)行多維數(shù)據(jù)的存儲與查詢時(shí),預(yù)先窮舉出所有的維度而導(dǎo)致的計(jì)算量巨大的問題。本申請實(shí)施例提供一種海量數(shù)據(jù)多維分析的查詢方法,包括:接收用戶發(fā)送的攜帶有待查詢的維度信息的查詢請求,其中,所述維度信息包括:維度名與維度值;根據(jù)所述維度信息,在預(yù)先建立的subcube表中查詢所述維度信息對應(yīng)的數(shù)據(jù);當(dāng)查詢到所述維度信息對應(yīng)的數(shù)據(jù),則將數(shù)據(jù)返回給用戶;當(dāng)未查詢到所述維度信息對應(yīng)的數(shù)據(jù),則在預(yù)先建立的cube表中查詢所述維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶,并將所述維度信息包含的維度名作為整體進(jìn)行采集,其中,所述subcube表是由cube表中的部分列合成的。優(yōu)選地,預(yù)先獲取用戶的攜帶有待查詢的維度名的查詢信息,根據(jù)所述維度名,查詢該維度名對應(yīng)的數(shù)據(jù),根據(jù)該維度名以及該維度名對應(yīng)的數(shù)據(jù),建立subcube表。優(yōu)選地,當(dāng)預(yù)先建立的cube表中的數(shù)據(jù)發(fā)生更新時(shí),所述方法還包括:在預(yù)先建立的cube表中獲取發(fā)生更新的數(shù)據(jù),對獲取到的數(shù)據(jù)進(jìn)行降維處理,將降維處理后的數(shù)據(jù)更新到預(yù)先建立的subcube表。優(yōu)選地,針對任一獲取到的數(shù)據(jù),確定包含至少一個(gè)該數(shù)據(jù)所對應(yīng)的維度名的subcube表,并針對任一確定出subcube表,將該數(shù)據(jù)所對應(yīng)的維度降到與該subcube表所對應(yīng)的維度一致,并在subcube表中查找與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù);當(dāng)查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則將數(shù)據(jù)進(jìn)行合并,當(dāng)未查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則直接添加到subcube表。優(yōu)選地,所述方法還包括:在特定時(shí)間內(nèi),在特定時(shí)間內(nèi),將所采集的包含維度名的維度組合中相同的歸為一組,統(tǒng)計(jì)各組內(nèi)所采集的包含維度名的維度組合的次數(shù),在所采集的包含維度名的維度組合的次數(shù)超過預(yù)設(shè)的閾值的情況下,新建subcube表,并在預(yù)先建立的cube表中查詢該維度組合所包含的維度名對應(yīng)的數(shù)據(jù),將該維度組合所包含的維度名對應(yīng)的維度值相同的數(shù)據(jù)進(jìn)行合并,并添加到新建的subcube表。本申請實(shí)施例提供一種海量數(shù)據(jù)多維分析的查詢裝置,包括:接收模塊,用于接收用戶發(fā)送的攜帶有待查詢的維度信息的查詢請求,其中,所述維度信息包括:維度名與維度值;查詢模塊,用于根據(jù)所述維度信息,在預(yù)先建立的subcube表中查詢所述維度信息對應(yīng)的數(shù)據(jù);數(shù)據(jù)返回模塊,用于當(dāng)查詢到所述維度信息對應(yīng)的數(shù)據(jù),則將數(shù)據(jù)返回給用戶;當(dāng)未查詢到所述維度信息對應(yīng)的數(shù)據(jù),則在預(yù)先建立的cube表中查詢所述維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶,并將所述維度信息包含的維度名作為整體進(jìn)行采集,其中,所述subcube表是由cube表中的部分列合成的。優(yōu)選地,所述裝置還包括:預(yù)先建立模塊,用于預(yù)先獲取用戶的攜帶有待查詢的維度名的查詢信息,根據(jù)所述維度名,查詢該維度名對應(yīng)的數(shù)據(jù),根據(jù)該維度名以及該維度名對應(yīng)的數(shù)據(jù),建立subcube表。優(yōu)選地,所述裝置還包括:第一更新模塊,用于當(dāng)預(yù)先建立的cube表中的數(shù)據(jù)發(fā)生更新時(shí),在預(yù)先建立的cube表中獲取發(fā)生更新的數(shù)據(jù),對獲取到的數(shù)據(jù)進(jìn)行降維處理,將降維處理后的數(shù)據(jù)更新到預(yù)先建立的subcube表。優(yōu)選地,所述第一更新模塊具體用于,針對任一獲取到的數(shù)據(jù),確定包含至少一個(gè)該數(shù)據(jù)所對應(yīng)的維度名的subcube表,并針對任一確定出subcube表,將該數(shù)據(jù)所對應(yīng)的維度降到與該subcube表所對應(yīng)的維度一致,并在subcube表中查找與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù);當(dāng)查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則將數(shù)據(jù)進(jìn)行合并,當(dāng)未查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則直接添加到subcube表。優(yōu)選地,所述裝置還包括:第二更新模塊,在特定時(shí)間內(nèi),將所采集的包含維度名的維度組合中相同的歸為一組,統(tǒng)計(jì)各組內(nèi)所采集的包含維度名的維度組合的次數(shù),在所采集的包含維度名的維度組合的次數(shù)超過預(yù)設(shè)的閾值的情況下,新建subcube表,并在預(yù)先建立的cube表中查詢該維度組合所包含的維度名對應(yīng)的數(shù)據(jù),將該維度組合所包含的維度名對應(yīng)的維度值相同的數(shù)據(jù)進(jìn)行合并,并添加到新建的subcube表。本申請實(shí)施例提供一種海量數(shù)據(jù)多維分析的查詢方法及裝置,該方法首先接收用戶發(fā)送的攜帶有待查詢的維度信息的查詢請求,其中,該維度信息包括:維度名與維度值,根據(jù)該維度信息,在預(yù)先建立的subcube表中查詢該維度信息對應(yīng)的數(shù)據(jù),當(dāng)查詢到該維度信息對應(yīng)的數(shù)據(jù),則將數(shù)據(jù)返回給用戶,當(dāng)未查詢到該維度信息對應(yīng)的數(shù)據(jù),則在預(yù)先建立的cube表中查詢該維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶,并將該維度信息包含的維度名作為維度組合進(jìn)行采集,其中,該subcube表是由cube表中的部分列合成的。通過上述方法,由于該subcube表是由cube表中的部分列合成的,也就是說,subcube表中的行數(shù)是少于cube表中的行數(shù)的,后續(xù),用戶在查詢的過程中,先在預(yù)先建立的subcube表中進(jìn)行查詢,這樣可以有效的提高查詢的效率,并且,subcube表只是列舉出部分維度的維度組合,而無需窮舉出所有的維度組合,這樣有效的降低計(jì)算量。附圖說明此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:圖1為本申請實(shí)施例提供的一種海量數(shù)據(jù)多維分析的查詢的過程示意圖;圖2為本申請實(shí)施例提供的一種海量數(shù)據(jù)多維分析的查詢的結(jié)構(gòu)示意圖。具體實(shí)施方式為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。圖1為本申請實(shí)施例提供的海量數(shù)據(jù)多維分析的查詢過程,具體包括以下步驟:S101:接收用戶發(fā)送的攜帶有待查詢的維度信息的查詢請求。在實(shí)際應(yīng)用中,企業(yè)用戶可通過聯(lián)機(jī)分析處理將采集到的多維數(shù)據(jù)按照固定的存儲格式存儲到數(shù)據(jù)倉庫中,后續(xù),可以根據(jù)企業(yè)用戶的維度要求,通過聯(lián)機(jī)分析處理快速靈活地進(jìn)行大數(shù)據(jù)量的復(fù)雜查詢,并且以一種直觀而易懂的形式將查詢結(jié)果提供給企業(yè)用戶。而企業(yè)用戶在查詢所需要維度的之前,需要將采集到的多維數(shù)據(jù)存儲到數(shù)據(jù)倉庫中。進(jìn)一步的,由于本申請旨在通過將根據(jù)用戶實(shí)際需求將cube中的某些列單提出來,將單提出來的這些列單獨(dú)建立一張表,以此通過減少整個(gè)表列數(shù)的方式,從而達(dá)到減少整個(gè)表的行數(shù),也就是說,將單提出來的這些列單獨(dú)建立的這張表的列數(shù)相對于原先的cube表相比減少了,整個(gè)表的行數(shù)也相對于預(yù)先的cube表相比減少了,而整個(gè)表的行數(shù)減少了,則在這張表上的查詢速度就會變快,因此,在本申請中,可在預(yù)先存儲的cube表中,根據(jù)實(shí)際需求相應(yīng)的提取某些列,并根據(jù)這些提取出的列,建立一張表。在此需要說明的是,為了能夠很好的區(qū)分原先的cube表以及根據(jù)實(shí)際需求相應(yīng)的提取某些列,并根據(jù)這些提取出的列建立的一張表,在本申請中,將根據(jù)實(shí)際需求相應(yīng)的提取某些列,并根據(jù)這些提取出的列建立的一張表定義為subcube表,也就是說,該subcube表是由cube表中的部分列合成的,并且,針對同一張cube表,用戶的實(shí)際需求通常是包含多種互不相同的維度組合,可以根據(jù)用戶的實(shí)際需求所包含的每個(gè)不同的維度組合,分別根據(jù)cube表中包含的數(shù)據(jù)建立一張subcube表,也就是說,同一張cube表可以根據(jù)用戶的實(shí)際需求所包含的多種不相同的維度組合,建立多張維度組合不相同的subcube表。進(jìn)一步的,本申請?zhí)峁┝艘粋€(gè)預(yù)先建立subcube表的方法,具體如下:預(yù)先獲取用戶的攜帶有待查詢的維度名的查詢信息,根據(jù)該維度名,查詢該維度名對應(yīng)的數(shù)據(jù),根據(jù)該維度名以及該維度名對應(yīng)的數(shù)據(jù),建立subcube表。在此需要說明的是,維度名對應(yīng)的數(shù)據(jù)包括:維度值以及維度值對應(yīng)的事實(shí)值,并且,待查詢的維度名可以是只有一個(gè)維度名,也可以是多個(gè)維度名的組合,待查詢的維度名具體包括幾個(gè)維度名則根據(jù)用戶的實(shí)際需求而確定。另外,在根據(jù)該維度名以及該維度名對應(yīng)的數(shù)據(jù),建立subcube表的過程中,先建立一個(gè)包含有事實(shí)值名以及維度名的subcube表,每一列均對應(yīng)一個(gè)維度名,將維度(即,包含維度名以及維度值)相同的事實(shí)值進(jìn)行合并,并將合并后的事實(shí)值及其對應(yīng)的維度值填入到subcube表中,如,如果事實(shí)值1對應(yīng)的維度為:?。奖本┮约凹径龋降谝患径龋聦?shí)值2也對應(yīng)維度為:?。奖本┮约凹径龋降谝患径?,那么這兩個(gè)事實(shí)值可以合并,合并后的事實(shí)值為3,即,1+2,并且事實(shí)值3填入到維度:?。奖本┮约凹径龋降谝患径葘?yīng)的事實(shí)值列中,如果事實(shí)值2對應(yīng)維度A(即,?。奖本?以及維度C(季度=第二季度),則事實(shí)值不能進(jìn)行合并。例如,為了簡單明了的闡述本申請,假設(shè)數(shù)據(jù)倉庫中cube表如表4:維度A維度B維度C事實(shí)值A(chǔ)1B1C11A1B2C21A2B1C11A2B2C21表4假設(shè)用戶甲根據(jù)實(shí)際需求需要建立subcube表,因此,數(shù)據(jù)倉庫獲取用戶甲的攜帶有待查詢的維度A(即,維度名)的查詢信息,根據(jù)維度A,查詢該維度A對應(yīng)的數(shù)據(jù),即,表5。維度A事實(shí)值A(chǔ)11A11A21A21表5建立一個(gè)包含有事實(shí)值名以及維度A(即,維度名)的subcube表,每一列均對應(yīng)一個(gè)維度名,將維度(即,包含維度名以及維度值)相同的事實(shí)值進(jìn)行合并,并將合并后的事實(shí)值及其對應(yīng)的維度值填入到subcube表中,如表6所示:維度A事實(shí)值A(chǔ)12A22表6進(jìn)一步的,在建立subcube表完成后,用戶可通過終端將待查詢的維度信息的查詢請求發(fā)送給數(shù)據(jù)倉庫,并查詢所需的維度對應(yīng)的數(shù)據(jù)。在此需要說明的是,由于在查詢的過程中,需要知道查詢的數(shù)據(jù)在第幾行第幾列,因此,待查詢的維度信息包括:維度名與維度值。另外,待查詢的維度信息中所包含的維度名可以是一個(gè),如,維度A,也可以是多個(gè)維度名的組合,如,維度A和維度B,待查詢的維度信息中具體包括幾個(gè)維度名則根據(jù)用戶的實(shí)際需求而確定。沿用上例,用戶甲根據(jù)實(shí)際需求查詢維度A=A1對應(yīng)的數(shù)據(jù),因此,用戶甲通過終端將待查詢的維度A=A1(即,維度信息)的查詢請求發(fā)送給數(shù)據(jù)倉庫,并查詢所需的維度對應(yīng)的數(shù)據(jù)。S102:根據(jù)所述維度信息,在預(yù)先建立的subcube表中查詢所述維度信息對應(yīng)的數(shù)據(jù)。數(shù)據(jù)倉庫在接收到用戶發(fā)送的攜帶有待查詢的維度信息的查詢請求后,直接根據(jù)維度信息中包含的維度名和維度值,在預(yù)先建立的subcube表中進(jìn)行查詢,查詢該維度信息對應(yīng)的數(shù)據(jù)。在此需要說明的是,該維度信息對應(yīng)的數(shù)據(jù)可以包括:事實(shí)值。延續(xù)上例,數(shù)據(jù)倉庫在接收到用戶甲發(fā)送的攜帶有待查詢的維度信息的查詢請求后,直接根據(jù)維度信息中包含的維度A=A1,在預(yù)先建立的subcube表6中進(jìn)行查詢,查詢到該維度信息對應(yīng)的數(shù)據(jù)為:事實(shí)值=2。S103:當(dāng)查詢到所述維度信息對應(yīng)的數(shù)據(jù),則將數(shù)據(jù)返回給用戶;當(dāng)未查詢到所述維度信息對應(yīng)的數(shù)據(jù),則在預(yù)先建立的cube表中查詢所述維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶,并將所述維度信息包含的維度名作為整體進(jìn)行采集。當(dāng)在預(yù)先建立的subcube表中查詢到該維度信息對應(yīng)的數(shù)據(jù),則將數(shù)據(jù)返回給用戶。繼續(xù)沿用上例,將查詢到該維度信息對應(yīng)的數(shù)據(jù)為:事實(shí)值=2返回給用戶甲。但是,由于在預(yù)先建立的subcube的過程中,是根據(jù)用戶的實(shí)際需求而確定來確定待查詢的維度名的,而用戶在確定實(shí)際需求時(shí)只是根據(jù)經(jīng)驗(yàn)或歷史數(shù)據(jù)來確定的,因此,由于經(jīng)驗(yàn)或歷史數(shù)據(jù)的局限性,在實(shí)際應(yīng)用中,有可能存在用戶在查詢所需維度并不在預(yù)先建立的subcube表中,因此,當(dāng)未查詢到該維度信息對應(yīng)的數(shù)據(jù),則只能在預(yù)先建立的cube表中查詢該維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶。進(jìn)一步的,在實(shí)際應(yīng)用中,雖然數(shù)據(jù)倉庫根據(jù)用戶發(fā)送的待查詢的維度信息,沒有在預(yù)先建立的subcube表中查詢到該維度信息對應(yīng)的數(shù)據(jù),但是也能夠說明以后的用戶有可能也會存在查詢該待查詢的維度信息的傾向,并且,當(dāng)前用戶查詢維度信息時(shí),雖然只是查詢了維度名下的某個(gè)維度值,但是也說明該用戶有可能在以后存在查詢該維度名下的其他維度值的傾向,因此,在預(yù)先建立的cube表中查詢該維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶的同時(shí),將所述維度信息包含的維度名作為維度組合進(jìn)行采集。例如,假設(shè)上例中的用戶甲根據(jù)實(shí)際需求查詢維度B=B1對應(yīng)的數(shù)據(jù),則數(shù)據(jù)倉庫在預(yù)先建立的subcube6表中未查詢到該維度信息對應(yīng)的數(shù)據(jù),在預(yù)先建立的cube表4中查詢該維度信息對應(yīng)的數(shù)據(jù),即,事實(shí)值為:2,將數(shù)據(jù)返回給用戶甲,同時(shí)將維度B作為維度組合進(jìn)行采集。進(jìn)一步的,由于在每一次進(jìn)行采集后,都對采集的維度組合中包含的維度名進(jìn)行判斷是否要根據(jù)該維度組合中包含的維度名建立subcube表,會浪費(fèi)更多的計(jì)算機(jī)資源,因此,在本申請中,可在采集一定時(shí)間內(nèi),對所采集的維度組合中包含的維度名進(jìn)行判斷是否要根據(jù)采集的維度組合中包含的維度名建立subcube表,其中,一定時(shí)間可根據(jù)具體的實(shí)際需要來確定。進(jìn)一步的,對采集的維度組合中包含的維度名進(jìn)行判斷是否要根據(jù)該采集的維度組合中包含的維度名建立subcube表的過程中具體如下:在特定時(shí)間內(nèi),將所采集的包含維度名的維度組合中相同的歸為一組,統(tǒng)計(jì)各組內(nèi)所采集的包含維度名的維度組合的次數(shù),在所采集的包含維度名的維度組合的次數(shù)超過預(yù)設(shè)的閾值的情況下,新建subcube表,并在預(yù)先建立的cube表中查詢該維度組合所包含的維度名對應(yīng)的數(shù)據(jù),將該維度組合所包含的維度名對應(yīng)的維度值相同的數(shù)據(jù)進(jìn)行合并,并添加到新建的subcube表,其中,特定時(shí)間與上述提到的一定時(shí)間一致。例如,假設(shè)特定時(shí)間為一天,在一天內(nèi),采集到的包含維度名的維度組合如表7所示:維度B維度B維度A和維度B維度C維度B維度B和維度C表7將所采集的包含維度名的維度組合中相同的歸為一組,統(tǒng)計(jì)各組內(nèi)所采集的包含維度名的維度組合的次數(shù),如表8:維度名次數(shù)維度B4維度A和維度B1維度C1維度B和維度C1表8假設(shè)預(yù)設(shè)的閾值為3次,數(shù)據(jù)倉庫確定出所采集的包含維度B的維度組合的次數(shù)超過預(yù)設(shè)的閾值,即3次,新建subcube表,在預(yù)先建立的cube表4中查詢該維度組合所包含的維度B對應(yīng)的數(shù)據(jù),將該維度組合所包含的維度B對應(yīng)的維度值相同的數(shù)據(jù)進(jìn)行合并,并添加到新建的subcube表,如表9所示:維度B事實(shí)值B12B22表9通過上述方法,由于該subcube表是由cube表中的部分列合成的,也就是說,subcube表中的行數(shù)是少于cube表中的行數(shù)的,后續(xù),用戶在查詢的過程中,先在預(yù)先建立的subcube表中進(jìn)行查詢,這樣可以有效的提高查詢的效率,并且,subcube表只是列舉出部分維度的維度組合,而無需窮舉出所有的維度組合,這樣有效的降低計(jì)算量。在實(shí)際應(yīng)用中,預(yù)先存儲在數(shù)據(jù)倉庫的cube表中的數(shù)據(jù)存在更新的情況,而subcube表是根據(jù)cube表中的數(shù)據(jù)而建立的,也就是說,當(dāng)cube表中的數(shù)據(jù)發(fā)生更新,那么subcube表中的數(shù)據(jù)也勢必會發(fā)生變化,因此,在本申請中,當(dāng)預(yù)先建立的cube表中的數(shù)據(jù)發(fā)生更新時(shí),需要對預(yù)先建立的subcube表中的數(shù)據(jù)進(jìn)行更新。本申請?zhí)峁┝司唧w的更新預(yù)先建立的subcube表中的數(shù)據(jù)的方式,具體如下:在預(yù)先建立的cube表中獲取發(fā)生更新的數(shù)據(jù),對獲取到的數(shù)據(jù)進(jìn)行降維處理,將降維處理后的數(shù)據(jù)更新到預(yù)先建立的subcube表。另外,本申請?jiān)趯Λ@取到的數(shù)據(jù)進(jìn)行降維處理的過程中,可針對任一獲取到的數(shù)據(jù),確定包含至少一個(gè)該數(shù)據(jù)所對應(yīng)的維度名的subcube表,并針對任一確定出subcube表,將該數(shù)據(jù)所對應(yīng)的維度降到與該subcube表所對應(yīng)的維度一致,并在subcube表中查找與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù);當(dāng)查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則將數(shù)據(jù)進(jìn)行合并,當(dāng)未查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則直接添加到subcube表。例如,假設(shè)數(shù)據(jù)倉庫中存儲的表包含:表4,表6,表9,假設(shè)用戶甲在表4中增加了一行數(shù)據(jù),具體如表10所示:維度A維度B維度C事實(shí)值A(chǔ)1B1C11A1B2C21A2B1C11A2B2C21A1B3C11表10數(shù)據(jù)倉庫則在表10中獲取發(fā)生更新的數(shù)據(jù),針對獲取的數(shù)據(jù),確定包含至少一個(gè)該數(shù)據(jù)所對應(yīng)的維度名的subcube表,即,subcube表6和subcube表9。針對subcube表6,將該數(shù)據(jù)所對應(yīng)的維度降到與該subcube表6所對應(yīng)的維度一致,即,降維后的數(shù)據(jù)所對應(yīng)的維度只包含維度A,在subcube表6中查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),進(jìn)行合并,具體如表11:維度A事實(shí)值A(chǔ)13A22表11針對subcube表9,將該數(shù)據(jù)所對應(yīng)的維度降到與該subcube表9所對應(yīng)的維度一致,即,降維后的數(shù)據(jù)所對應(yīng)的維度只包含維度B,在subcube表9中未查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),因此,直接在subcube表9中添加該數(shù)據(jù),具體如表12:維度B事實(shí)值B12B22B31表12以上為本申請實(shí)施例提供的海量數(shù)據(jù)多維分析的查詢方法,基于同樣的思路,本申請實(shí)施例還提供一種海量數(shù)據(jù)多維分析的查詢裝置。如圖2所示,本申請實(shí)施例提供的一種海量數(shù)據(jù)多維分析的查詢裝置,包括:接收模塊201,用于接收用戶發(fā)送的攜帶有待查詢的維度信息的查詢請求,其中,所述維度信息包括:維度名與維度值;查詢模塊202,用于根據(jù)所述維度信息,在預(yù)先建立的subcube表中查詢所述維度信息對應(yīng)的數(shù)據(jù);數(shù)據(jù)返回模塊203,用于當(dāng)查詢到所述維度信息對應(yīng)的數(shù)據(jù),則將數(shù)據(jù)返回給用戶;當(dāng)未查詢到所述維度信息對應(yīng)的數(shù)據(jù),則在預(yù)先建立的cube表中查詢所述維度信息對應(yīng)的數(shù)據(jù),將數(shù)據(jù)返回給用戶,并將所述維度信息包含的維度名作為維度組合進(jìn)行采集,其中,所述subcube表是由cube表中的部分列合成的。所述裝置還包括:預(yù)先建立模塊204,用于預(yù)先獲取用戶的攜帶有待查詢的維度名的查詢信息,根據(jù)所述維度名,查詢該維度名對應(yīng)的數(shù)據(jù),根據(jù)該維度名以及該維度名對應(yīng)的數(shù)據(jù),建立subcube表。所述裝置還包括:第一更新模塊205,用于當(dāng)預(yù)先建立的cube表中的數(shù)據(jù)發(fā)生更新時(shí),在預(yù)先建立的cube表中獲取發(fā)生更新的數(shù)據(jù),對獲取到的數(shù)據(jù)進(jìn)行降維處理,將降維處理后的數(shù)據(jù)更新到預(yù)先建立的subcube表。所述第一更新模塊205具體用于,針對任一獲取到的數(shù)據(jù),確定包含至少一個(gè)該數(shù)據(jù)所對應(yīng)的維度名的subcube表,并針對任一確定出subcube表,將該數(shù)據(jù)所對應(yīng)的維度降到與該subcube表所對應(yīng)的維度一致,并在subcube表中查找與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù);當(dāng)查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則將數(shù)據(jù)進(jìn)行合并,當(dāng)未查找出與該數(shù)據(jù)對應(yīng)的維度值相同的數(shù)據(jù),則直接添加到subcube表。所述裝置還包括:第二更新模塊206,用于在特定時(shí)間內(nèi),將所采集的包含維度名的維度組合中相同的歸為一組,統(tǒng)計(jì)各組內(nèi)所采集的包含維度名的維度組合的次數(shù),在所采集的包含維度名的維度組合的次數(shù)超過預(yù)設(shè)的閾值的情況下,新建subcube表,并在預(yù)先建立的cube表中查詢該維度組合所包含的維度名對應(yīng)的數(shù)據(jù),將該維度組合所包含的維度名對應(yīng)的維度值相同的數(shù)據(jù)進(jìn)行合并,并添加到新建的subcube表。在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。當(dāng)前第1頁1 2 3