多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)查詢技術(shù)領(lǐng)域,特別是涉及一種多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法和系統(tǒng)。
【背景技術(shù)】
[0002]目前大數(shù)據(jù)應(yīng)用最成熟的是在數(shù)據(jù)分析領(lǐng)域,在數(shù)據(jù)分析領(lǐng)域中維度建模被廣泛用于指導(dǎo)構(gòu)建以分析為目地的數(shù)據(jù)模型設(shè)計(jì),而按照維度建模產(chǎn)生的立方體(Cube),隨著數(shù)據(jù)量的增大,其查詢速度越來(lái)越慢。
【發(fā)明內(nèi)容】
[0003]基于上述情況,本發(fā)明提出了一種多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法和系統(tǒng),提高Cube的查詢速度,實(shí)現(xiàn)多維模型的查詢優(yōu)化。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明技術(shù)方案的實(shí)施例為:
[0005]—種多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法,包括以下步驟:
[0006]接收多維數(shù)據(jù)庫(kù)立方體查詢請(qǐng)求;
[0007]根據(jù)預(yù)設(shè)轉(zhuǎn)換規(guī)則將所述查詢請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)能力,所述數(shù)據(jù)能力為數(shù)據(jù)空間提供數(shù)據(jù)的能力,所述數(shù)據(jù)空間為根據(jù)預(yù)設(shè)匯聚規(guī)則對(duì)多維數(shù)據(jù)庫(kù)中的立方體進(jìn)行數(shù)據(jù)匯總后得到的匯總數(shù)據(jù)的存儲(chǔ)空間;
[0008]分別將所述查詢請(qǐng)求轉(zhuǎn)換的數(shù)據(jù)能力與所述多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的數(shù)據(jù)能力進(jìn)行比較,根據(jù)比較結(jié)果得到所述多維數(shù)據(jù)庫(kù)中的滿足預(yù)設(shè)要求的數(shù)據(jù)空間集;
[0009]根據(jù)預(yù)設(shè)性能最優(yōu)條件在所述數(shù)據(jù)空間集中查詢滿足預(yù)設(shè)性能最優(yōu)條件的數(shù)據(jù)空間。
[0010]—種多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)系統(tǒng),包括:
[0011]請(qǐng)求接收模塊,用于接收多維數(shù)據(jù)庫(kù)立方體查詢請(qǐng)求;
[0012]請(qǐng)求轉(zhuǎn)換模塊,用于根據(jù)預(yù)設(shè)轉(zhuǎn)換規(guī)則將所述查詢請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)能力,所述數(shù)據(jù)能力為數(shù)據(jù)空間提供數(shù)據(jù)的能力,所述數(shù)據(jù)空間為根據(jù)預(yù)設(shè)匯聚規(guī)則對(duì)多維數(shù)據(jù)庫(kù)中的立方體進(jìn)行數(shù)據(jù)匯總后得到的匯總數(shù)據(jù)的存儲(chǔ)空間;
[0013]能力比較模塊,用于分別將所述查詢請(qǐng)求轉(zhuǎn)換的數(shù)據(jù)能力與所述多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的數(shù)據(jù)能力進(jìn)行比較,根據(jù)比較結(jié)果得到所述多維數(shù)據(jù)庫(kù)中的滿足預(yù)設(shè)要求的數(shù)據(jù)空間集;
[0014]空間查詢模塊,用于根據(jù)預(yù)設(shè)性能最優(yōu)條件在所述數(shù)據(jù)空間集中查詢滿足預(yù)設(shè)性能最優(yōu)條件的數(shù)據(jù)空間。
[0015]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:本發(fā)明多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法和系統(tǒng),首先將用戶的查詢請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)能力,然后將多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的數(shù)據(jù)能力與查詢請(qǐng)求轉(zhuǎn)換的數(shù)據(jù)能力進(jìn)行比較,得到滿足預(yù)設(shè)要求的數(shù)據(jù)空間集,在該數(shù)據(jù)集中查詢得到滿足預(yù)設(shè)性能最優(yōu)條件的數(shù)據(jù)空間,從性能最優(yōu)的數(shù)據(jù)空間中查詢數(shù)據(jù),提高了 Cube的查詢速度,實(shí)現(xiàn)多維模型的查詢優(yōu)化。
【附圖說(shuō)明】
[0016]圖1為一個(gè)實(shí)施例中多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法流程圖;
[0017]圖2為基于圖1所示方法一個(gè)具體示例中多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法流程圖;
[0018]圖3為一個(gè)實(shí)施例中多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0019]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的【具體實(shí)施方式】?jī)H僅用以解釋本發(fā)明,并不限定本發(fā)明的保護(hù)范圍。
[0020]—個(gè)實(shí)施例中多維數(shù)據(jù)庫(kù)自動(dòng)路由實(shí)現(xiàn)方法,如圖1所示,包括以下步驟:
[0021]步驟S101:接收多維數(shù)據(jù)庫(kù)立方體查詢請(qǐng)求;
[0022]步驟S102:根據(jù)預(yù)設(shè)轉(zhuǎn)換規(guī)則將所述查詢請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)能力,所述數(shù)據(jù)能力為數(shù)據(jù)空間提供數(shù)據(jù)的能力,所述數(shù)據(jù)空間為根據(jù)預(yù)設(shè)匯聚規(guī)則對(duì)多維數(shù)據(jù)庫(kù)中的立方體進(jìn)行數(shù)據(jù)匯總后得到的匯總數(shù)據(jù)的存儲(chǔ)空間;
[0023]步驟S103:分別將所述查詢請(qǐng)求轉(zhuǎn)換的數(shù)據(jù)能力與所述多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的數(shù)據(jù)能力進(jìn)行比較,根據(jù)比較結(jié)果得到所述多維數(shù)據(jù)庫(kù)中的滿足預(yù)設(shè)要求的數(shù)據(jù)空間集;
[0024]步驟S104:根據(jù)預(yù)設(shè)性能最優(yōu)條件在所述數(shù)據(jù)空間集中查詢滿足預(yù)設(shè)性能最優(yōu)條件的數(shù)據(jù)空間。
[0025]從以上描述可知,本發(fā)明將用戶的查詢請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)能力,然后將多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的數(shù)據(jù)能力與該數(shù)據(jù)能力進(jìn)行比較,得到滿足預(yù)設(shè)要求的數(shù)據(jù)空間集,在該數(shù)據(jù)集中查詢得到滿足預(yù)設(shè)性能最優(yōu)條件的數(shù)據(jù)空間,從性能最優(yōu)的數(shù)據(jù)空間中查詢數(shù)據(jù),可以提高Cube的查詢速度,實(shí)現(xiàn)多維模型的查詢優(yōu)化,適合應(yīng)用。
[0026]此外,在一個(gè)具體示例中,所述查詢請(qǐng)求包括過(guò)濾條件、匯總粒度和輸出度量,所述數(shù)據(jù)能力包括空間范圍,空間粒度,空間內(nèi)容;所述空間范圍為數(shù)據(jù)空間存儲(chǔ)的每個(gè)維度的維度成員組合;所述空間粒度為數(shù)據(jù)空間存儲(chǔ)的所有維度的層次組合;所述空間內(nèi)容為數(shù)據(jù)空間存儲(chǔ)的度量的集合。
[0027]用戶的查詢請(qǐng)求中,分為三類信息:過(guò)濾條件(如取日期維度上取1997年的數(shù)據(jù)),匯總粒度(如按照每年每省份顯示),輸出度量(如輸出銷售額)。
[0028]數(shù)據(jù)空間(Space):根據(jù)預(yù)設(shè)匯聚規(guī)則對(duì)所述多維數(shù)據(jù)庫(kù)中的立方體(cube)進(jìn)行數(shù)據(jù)匯總后得到的匯總數(shù)據(jù)的存儲(chǔ)空間,將立方體(cube)按照預(yù)設(shè)匯聚規(guī)則匯總計(jì)算好若干份數(shù)據(jù),每一份數(shù)據(jù)的存儲(chǔ),定義為一個(gè)數(shù)據(jù)空間。所以一個(gè)cube的數(shù)據(jù)被分布在若干個(gè)數(shù)據(jù)空間中存儲(chǔ)。
[0029]數(shù)據(jù)能力(Capacity):某個(gè)數(shù)據(jù)空間提供數(shù)據(jù)的能力,如果該空間具備了支持本次查詢的能力,則本次查詢能夠被路由到從該空間取數(shù)。如何來(lái)評(píng)估該能力,通過(guò)下面所講述的空間范圍,空間粒度和空間內(nèi)容來(lái)衡量,即對(duì)數(shù)據(jù)能力的描述是一個(gè)三元的元組:(空間范圍,空間粒度,空間內(nèi)容)
[0030]空間范圍(Range):該空間內(nèi)存儲(chǔ)數(shù)據(jù)的范圍,由數(shù)據(jù)空間存儲(chǔ)的每個(gè)維度(Dimens1n)的維度成員組合而成,如某個(gè)數(shù)據(jù)空間存儲(chǔ)了為“ 1997-1998年,華南地區(qū)所有商品的數(shù)據(jù)”,則空間范圍可以被描述為:{TimeDimens1n: [1997, 1998], AreaDimens1n:[華南],ProductDimens1n: [All]}。
[0031]空間粒度(Granularity):該空間所存儲(chǔ)的數(shù)據(jù)的粒度,由數(shù)據(jù)空間存儲(chǔ)的所有維度的層次(Level)組合而成,如某個(gè)空間粒度為“每年,每個(gè)城市,匯總所有產(chǎn)品的數(shù)據(jù)”,則空間粒度可以描述為:{TimeDimens1n: Year, AreaDimens1n:City, ProductDimens1n:All}o
[0032]空間內(nèi)容(Measure):該空間存儲(chǔ)的度量的集合,如某個(gè)空間的內(nèi)容為“銷售量”,可以被描述為{SalesCount (銷售統(tǒng)計(jì)),SalesAmount (銷售金額)}。
[0033]此外,在一個(gè)具體示例中,所述根據(jù)預(yù)設(shè)轉(zhuǎn)換規(guī)則將所述查詢請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)能力的步驟包括:
[0034]將所述過(guò)濾條件中的維度的層次轉(zhuǎn)換為第一空間粒度,且將所述過(guò)濾條件中的常量轉(zhuǎn)換為空間范圍;
[0035]將所述匯總粒度轉(zhuǎn)換為第二空間粒度,并根據(jù)所述第一空間粒度和所述第二空間粒度確定空間粒度;
[0036]將所述輸出度量轉(zhuǎn)換為空間內(nèi)容。
[0037]用戶的查詢請(qǐng)求中,分為三類信息:過(guò)濾條件(如取日期維度上取1997年的數(shù)據(jù)),匯總粒度(如按照每年每省份顯示),輸出度量(如輸出銷售額)。分別將該三類信息轉(zhuǎn)換為數(shù)據(jù)空間三要素(空間范圍,空間粒度,空間內(nèi)容):
[0038]過(guò)濾條件:條件中左側(cè)出現(xiàn)的維度的層次(Level)轉(zhuǎn)換為第一空間粒度,右側(cè)的常量轉(zhuǎn)換為空間范圍,如日期維度.Year = 1997,會(huì)產(chǎn)生空間粒度{TimeDimens1n: Year},空間范圍:{TimeDimens1n:
[1997]},如果同一個(gè)維度產(chǎn)生多個(gè)空間粒度,則需要做粒度合并:取更明細(xì)的粒度,如{TimeDimens1n:Year}和{TimeDimens1n:Month}合并之后取{TimeDimens1n:Month};如同一個(gè)維度產(chǎn)生多個(gè)空間范圍,則需要做空間范圍合并,取兩個(gè)空間范圍內(nèi)維度成員的合集,如{TimeDimens1n:
[1997]}和{TimeDimens1n:
[1998]}合并之后為{TimeDimens1n: [1997, 1998]}。
[0039]匯總粒度:轉(zhuǎn)換為第二空間粒度,如最后顯示每年每省份的數(shù)據(jù),產(chǎn)生粒度為{TimeDimens1n: Year, AreaDimens1n:Province}。根據(jù)所述過(guò)濾條件中的維度的層次轉(zhuǎn)換的第一空間粒度和所述匯總粒度轉(zhuǎn)換的第二空間粒度確定空間粒度。如第一空間粒度{TimeDimens1n:Month},第二空間粒度{TimeDimens1n: Year, AreaDimens1n:Province},合并之后為{TimeDimens1n:Month, AreaDimens1n:Province} 0
[0040]輸出度量:轉(zhuǎn)換為空間內(nèi)容,如需要輸出銷售額,則產(chǎn)生的空間內(nèi)容為{SalesAmount (銷售額)},如果產(chǎn)生多個(gè)空間內(nèi)容,則需要做空間內(nèi)容的合并,取空間內(nèi)容中度量集合的合集,如{SalesCount}和{SalesAmount}合并之后為{SalesCount, SalesAmount}。
[0041]此外,在一個(gè)具體示例中,分別將所述查詢請(qǐng)求轉(zhuǎn)換的數(shù)據(jù)能力與所述多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的數(shù)據(jù)能力進(jìn)行比較,根據(jù)比較結(jié)果得到所述多維數(shù)據(jù)庫(kù)中的滿足預(yù)設(shè)要求的數(shù)據(jù)空間集的步驟包括:
[0042]分別將所述查詢請(qǐng)求轉(zhuǎn)換的空間范圍與所述多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的空間范圍進(jìn)行比較,將所述查詢請(qǐng)求轉(zhuǎn)換的空間粒度與所述多維數(shù)據(jù)庫(kù)中所有數(shù)據(jù)空間的空間粒度進(jìn)行比較,將所述查詢請(qǐng)求轉(zhuǎn)換的空間內(nèi)容與所述多