人大學(xué)科數(shù)據(jù)倉(cāng)庫(kù)全2query processing_第1頁(yè)
人大學(xué)科數(shù)據(jù)倉(cāng)庫(kù)全2query processing_第2頁(yè)
人大學(xué)科數(shù)據(jù)倉(cāng)庫(kù)全2query processing_第3頁(yè)
人大學(xué)科數(shù)據(jù)倉(cāng)庫(kù)全2query processing_第4頁(yè)
人大學(xué)科數(shù)據(jù)倉(cāng)庫(kù)全2query processing_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

多維查詢處理及優(yōu)化MDX多維查詢語(yǔ)言

OLEDBforOLAPOLEDBforOLAP是一種標(biāo)準(zhǔn),它由微軟發(fā)布,提供了對(duì)多維數(shù)據(jù)存取的接口和方法。它的特點(diǎn)是獨(dú)立于多維數(shù)據(jù)的具體存儲(chǔ)結(jié)構(gòu)。其中用于訪問(wèn)多維數(shù)據(jù)源的多維表達(dá)式(Multi-DimensioneXpression--MDX),提供了語(yǔ)義豐富的查詢多維數(shù)據(jù)的語(yǔ)句,自發(fā)布以來(lái)逐漸成為工業(yè)界的事實(shí)標(biāo)準(zhǔn)。

MDX類似于關(guān)系數(shù)據(jù)庫(kù)中的標(biāo)準(zhǔn)SQL語(yǔ)句。創(chuàng)建MDX的主要目的是為了方便用戶對(duì)多維數(shù)據(jù)進(jìn)行訪問(wèn)。MDX是一種表達(dá)式語(yǔ)言,它的函數(shù)可以用來(lái)定義新的計(jì)算成員,創(chuàng)建局部的數(shù)據(jù)方體,或者通過(guò)OLEDB或者ADO對(duì)數(shù)據(jù)方體中的數(shù)據(jù)進(jìn)行訪問(wèn)。在MDX中,用戶還可以自己定義函數(shù),來(lái)滿足某些特殊要求。MDX與SQL在關(guān)系數(shù)據(jù)庫(kù)中,用戶查詢的對(duì)象是關(guān)系,其結(jié)果集也是一個(gè)關(guān)系,對(duì)多維數(shù)據(jù),查詢的對(duì)象是方體,查詢的結(jié)果集也是方體。對(duì)于關(guān)系數(shù)據(jù)庫(kù)的查詢我們采用標(biāo)準(zhǔn)的SQL語(yǔ)句,對(duì)于多維數(shù)據(jù)的訪問(wèn),可以采用專用于訪問(wèn)多維數(shù)據(jù)的MDX,當(dāng)然也可以采用擴(kuò)展的SQL語(yǔ)句。由于大家對(duì)SQL都比較熟悉,所以MDX的語(yǔ)法在很多方面力求和SQL保持一致。很多用MDX實(shí)現(xiàn)的功能用SQL也能實(shí)現(xiàn),盡管實(shí)現(xiàn)的手段各異。不過(guò),MDX查詢語(yǔ)言使得很多功能的實(shí)現(xiàn)更加有效、更為直觀,尤其MDX更適合多維數(shù)據(jù)的操作MDX語(yǔ)言和SQL語(yǔ)言一樣,語(yǔ)句具有SELECT、FROM和WHERE結(jié)構(gòu)。但MDX語(yǔ)言采用其他的關(guān)鍵字來(lái)查詢數(shù)據(jù)方體,返回可以進(jìn)一步加以分析的數(shù)據(jù),并提供了可以對(duì)返回的數(shù)據(jù)進(jìn)行操作的相應(yīng)的函數(shù)。而且,MDX語(yǔ)言增強(qiáng)了用戶自定義函數(shù)的功能,可以擴(kuò)展或者定制用戶某些特殊的商業(yè)需求。MDX語(yǔ)言所提供的數(shù)據(jù)定義語(yǔ)言(DDL)也和SQL類似。例如,提供了對(duì)數(shù)據(jù)方體、維、度量等OLAP環(huán)境下的對(duì)象進(jìn)行創(chuàng)建(creating)、修改(modifying)、刪除(deleting)的命令SQL的數(shù)據(jù)定義語(yǔ)言/操縱語(yǔ)言都是返回或操縱兩維的數(shù)據(jù),而MDX用來(lái)返回或操縱多維的數(shù)據(jù)為了定義和抽取數(shù)據(jù),不管是針對(duì)單個(gè)數(shù)據(jù)單元(cell)還是多個(gè)數(shù)據(jù)單元(統(tǒng)稱為一個(gè)數(shù)據(jù)集合),MDX都采用一套坐標(biāo)系統(tǒng)來(lái)對(duì)它們進(jìn)行定義該坐標(biāo)系統(tǒng)中的每一個(gè)坐標(biāo)軸上可以有多個(gè)維。各個(gè)維上成員的不同組合就構(gòu)成了該坐標(biāo)軸上的不同的坐標(biāo)點(diǎn)。多維模式

多維數(shù)據(jù)最基本的結(jié)構(gòu)模式是方體(cube),每個(gè)方體由多個(gè)維組成,每個(gè)維上可以有多個(gè)層次,并且每個(gè)維上有多個(gè)成員。例如,一個(gè)關(guān)于產(chǎn)品銷售數(shù)據(jù)的數(shù)據(jù)方體由以下6個(gè)維組成:

SalesRepGeography,它其中的一個(gè)層次(hierarchy)有以下層(level):Continents,Countries和States.QuartersYearsMeasures,包括Sales,PercentChange和BudgetedSalesProducts多維數(shù)據(jù)集合

在多維數(shù)據(jù)存儲(chǔ)中,數(shù)據(jù)是以n維方體中的數(shù)值點(diǎn)存在的,用戶可以指定一個(gè)查詢來(lái)訪問(wèn)多維數(shù)據(jù),用戶查詢對(duì)象可以是一個(gè)或多個(gè)方體,其結(jié)果集是一個(gè)p維的方體(p<=n),我們稱之為數(shù)據(jù)集合。數(shù)據(jù)集合封裝了多維查詢的結(jié)果集,它是執(zhí)行一個(gè)MDX語(yǔ)句的結(jié)果集。數(shù)據(jù)集合是由一組軸(axis)組成,軸上的點(diǎn)稱為坐標(biāo)點(diǎn)(coordinate)。每個(gè)軸上可以包含多個(gè)維。ForExample

例如,要對(duì)一個(gè)具有4個(gè)維的數(shù)據(jù)方體查詢:Geography,Products,Measures和Quarters,其中有兩個(gè)度量值:Sales和Cost?,F(xiàn)在用戶需要了解USA在每個(gè)季度每種產(chǎn)品的銷售情況,則應(yīng)該產(chǎn)生如下的結(jié)果數(shù)據(jù)集合:

SalesforUSAComputersExpansionCardsFloppyDriversQtr1462212452356Qtr23406925235847Qtr3394290585920Qtr45398443242908MDX的基本概念MDX語(yǔ)句必須包含下面的信息:1.查詢所涉及的數(shù)據(jù)方體2.產(chǎn)生的結(jié)果數(shù)據(jù)集合的軸的個(gè)數(shù)3.數(shù)據(jù)方體的維與結(jié)果數(shù)據(jù)集合中軸的對(duì)應(yīng)關(guān)系4.在每個(gè)維上的成員MDX的基本概念(續(xù))

一個(gè)典型的MDX語(yǔ)句具有下面的格式:

SELECT<axis_specification>[,<axis_specification>...] FROM<cube_specification> WHERE<slicer_specification>

在編寫MDX語(yǔ)句時(shí),通常把所查詢的數(shù)據(jù)方體的維集合劃分為兩個(gè)子集合:w

軸維(Axisdimensions),在該維上通常取多個(gè)成員;w切片維(Slicerdimensions),在該維上通常取一個(gè)成員;MDX的基本概念(續(xù))

軸維:

一個(gè)軸上可以對(duì)應(yīng)多個(gè)維,每個(gè)軸是由一組元組的集合構(gòu)成的,如果軸只對(duì)應(yīng)一個(gè)維,則其中的每個(gè)元組就是一個(gè)成員,如果軸對(duì)應(yīng)n個(gè)維,則每個(gè)元組由n個(gè)來(lái)自不同維的成員組成。

JackTomComputersFloppyDriversComputersFloppyDriversQtr14622235646222356Qtr23406923584734069235847Qtr3395920395920Qtr453984429085398442908MDX的基本概念(續(xù))

切片維:在該維上通常取一個(gè)成員;相當(dāng)于SQL中的where條件,如用戶需要了解USA在每個(gè)季度每種產(chǎn)品的銷售情況,則應(yīng)該產(chǎn)生如下的結(jié)果數(shù)據(jù)集合,在該例中,Quarter和Product維是軸維,Measure和Geography是切片維。

SalesforUSAComputersExpansionCardsFloppyDriversQtr1462212452356Qtr23406925235847Qtr3394290585920Qtr45398443242908MDX的基本概念(續(xù))指定一個(gè)軸的內(nèi)容可以按照以下的步驟:1.創(chuàng)建一個(gè)表達(dá)式來(lái)生成成員;2.獲得在每個(gè)軸的每個(gè)維的成員;3.對(duì)這些成員做笛卡氏集,生成每個(gè)軸的元組集合。

MDX的基本概念(續(xù))選擇一組成員有多種方法,例如:w

枚舉法,例如:{Venkatrao,Netz}w

集合表達(dá)式(setexpresion) 例如:表達(dá)式{USA.CHILDREN}生成下面的集合:{USA_North,USA_South},表達(dá)式{USA_North.CHILDREN,USA_South,Japan}生成集合:{Seattle,Boston,USA_South,Japan}MDX的基本概念(續(xù))

在一個(gè)數(shù)據(jù)集合中可以有多個(gè)軸,用戶為每個(gè)軸指定了元組集合后,還需要把這些元組集合投影到指定的軸上。這在MDX語(yǔ)句中<axis_specification>部分進(jìn)行說(shuō)明:

<axis_specification>::=<set>ON<axis_name><axis_name>::=COLUMNS|ROWS|PAGES|SECTIONS|CHAPTERS|AXIS(index)

前5個(gè)軸可以用COLUMNS,ROWS,PAGES,SECTIONS和CHAPTERS表示。OLEDBforOLAP要求至少支持3個(gè)或以上個(gè)軸。MDX的基本概念(續(xù))

指定切片維的值:

查詢的數(shù)據(jù)方體的維中,沒(méi)有在軸上的維都認(rèn)為是切片維。在MDX語(yǔ)句中,可以用下面的語(yǔ)句來(lái)表示切片條件:

WHERE(Sales,[1991],Products.[All])MDX的基本概念(續(xù))

例如:一個(gè)多維數(shù)據(jù)庫(kù)Sales由季度、年、地區(qū)、產(chǎn)品、銷售代表和銷售額六個(gè)維組成。其中銷售額是度量維。時(shí)間維上的層次為日,月,季,年,,地區(qū)維上的層次為州,地區(qū),國(guó)家。 現(xiàn)在:要查詢銷售代表Venkatrao和Netz在1991年的1月、2月、3月、第二季度、第三季度、10月、11月、12月分別在美國(guó)南部的各個(gè)州、美國(guó)北部及日本的銷售業(yè)績(jī)(用銷售額表示)。MDX的基本概念(續(xù))

Venkatrao

Netz

USAJapanUSAJapanUSA_NEUSA_SEUSA_NEUSA_SESeattleBostonSeattleBostonQtr1Jan0010203040506070Feb0111213141516171Mar0212223242526272Qtr20313233343536373Qtr30414243444546474Qtr4Oct0515253545556575Nov0616263646566676Dec0717273747576777MDX的基本概念(續(xù))該數(shù)據(jù)集合具有以下的特點(diǎn):

1.軸維(Axisdimensions):Quarters,SalesRep,Geography2.切片維(Slicerdimensions):Measures,Years,Products3.具有兩個(gè)軸:COLUMN,x-axis,oraxis0;ROW,y-axis,oraxis14.x-axis:SalesRep和Geographydimensions(后者嵌套在前者之中)5.y-axis:Quartersdimension6.切片條件:WHERE(Sales,[1991],Products.[All])MDX的基本概念(續(xù))生成數(shù)據(jù)集合的MDX語(yǔ)句表示如下:

SELECTCROSSJOIN({Venkatrao,Netz}, {USA_North.CHILDREN,USA_South,Japan})ONCOLUMNS,

{Qtr1.CHILDREN,Qtr2,Qtr3,Qtr4.CHILDREN}ONROWS FROMSalesCubeWHERE(Sales,[1991],Products.[All])MDX語(yǔ)法有關(guān)MDX語(yǔ)法格式:

請(qǐng)參照微軟MDX語(yǔ)言相關(guān)文檔:] ParaWare實(shí)現(xiàn)時(shí)對(duì)其進(jìn)行裁減,實(shí)現(xiàn)其基本功能。終端用戶的多維查詢請(qǐng)求可以直接表達(dá)成MDX語(yǔ)句的形式,也可以由OLAP系統(tǒng)的客戶端工具將用戶的鉆取、旋轉(zhuǎn)等多維操作轉(zhuǎn)換成相應(yīng)的MDX查詢語(yǔ)句。對(duì)MDX查詢語(yǔ)句的處理,有兩種方式。一種是將其轉(zhuǎn)變成SQL,然后采用RDBMS的查詢處理引擎來(lái)實(shí)現(xiàn)。另一種是直接對(duì)MDX語(yǔ)句進(jìn)行處理,對(duì)其作語(yǔ)法檢查、語(yǔ)義分析、查詢處理和優(yōu)化、執(zhí)行并最終得到查詢結(jié)果。第一種方法的好處是可以充分利用現(xiàn)有SQL的查詢處理和優(yōu)化技術(shù),但由于SQL并不是專為多維數(shù)據(jù)查詢?cè)O(shè)計(jì)的,存在一些固有的限制。因此,人們更看好第二種方法,但到目前為止,尚未有詳細(xì)的資料公開發(fā)表。在這里,介紹自行研制開發(fā)的并行數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)PARAWARE(ParallelDataWarehouse)中所采用的方法由于一個(gè)MDX查詢常常涉及一個(gè)維的多個(gè)層,例如在時(shí)間維上同時(shí)涉及月和季兩層,在地區(qū)維上同時(shí)涉及城市和國(guó)家兩層而數(shù)據(jù)是以不同維、層的組合所構(gòu)成的cuboid為單位存儲(chǔ)的。因此,在處理MDX查詢的時(shí)候,首先需要將一個(gè)MDX查詢按照查詢所涉及的維層的不同劃分成多個(gè)子查詢,每個(gè)子查詢對(duì)應(yīng)一個(gè)cuboid。并行數(shù)據(jù)倉(cāng)庫(kù)Paraware簡(jiǎn)介支持超大數(shù)據(jù)量存儲(chǔ)

支持MDX多維查詢語(yǔ)言

具有高查詢處理性能

PareWare的體系結(jié)構(gòu)Internet/IntranetMDX結(jié)果合成器緩存管理器查詢分析代價(jià)估計(jì)查詢優(yōu)化并行調(diào)度OLAP服務(wù)器CUBECHUNKCHUNKCHUNKOLAP-PBASE數(shù)據(jù)庫(kù)服務(wù)器1DWMetaDataOLAP-PBASE數(shù)據(jù)庫(kù)服務(wù)器nDWMetaData圖1。ParaWare的體系結(jié)構(gòu)MetaData...Internet/Intranet混合存儲(chǔ):將MOLAP和ROLAP兩種存儲(chǔ)方式相結(jié)合,充分利用二者的優(yōu)點(diǎn),克服其缺點(diǎn)。Paraware的多維存儲(chǔ)混合存儲(chǔ)特殊關(guān)系表及其索引機(jī)制特殊關(guān)系表與傳統(tǒng)關(guān)系表相比相同處:通過(guò)索引按數(shù)據(jù)內(nèi)容檢索數(shù)據(jù)不同處:特殊關(guān)系表只存儲(chǔ)度量值,不存維值兩極索引機(jī)制對(duì)數(shù)據(jù)塊的索引:在劃分維上建立對(duì)數(shù)據(jù)塊內(nèi)部數(shù)據(jù)的索引:在非劃分維上建立混合存儲(chǔ)的優(yōu)點(diǎn)節(jié)約存儲(chǔ)空間,根據(jù)數(shù)據(jù)稀疏程度的不同,不同的數(shù)據(jù)塊可以采用不同的數(shù)據(jù)存儲(chǔ)方式,提高了存儲(chǔ)效率;提高計(jì)算速度,經(jīng)過(guò)劃分以后數(shù)據(jù)分布在多個(gè)處理機(jī)上可以實(shí)現(xiàn)并行計(jì)算,而且可以設(shè)計(jì)高效的內(nèi)存算法,提高了計(jì)算速度;減少了數(shù)據(jù)訪問(wèn)時(shí)讀取磁盤的平均次數(shù)。Paraware查詢處理和優(yōu)化構(gòu)造MDX語(yǔ)句詞法、語(yǔ)法分析及語(yǔ)義檢查子查詢的劃分子查詢的執(zhí)行組裝查詢結(jié)果子查詢的劃分劃分原因不同的用戶所關(guān)心的維空間不同便于進(jìn)行并行存取數(shù)據(jù),提高查詢效率劃分依據(jù)不同維層的組合一個(gè)MDX查詢可以劃分成多個(gè)子查詢。每個(gè)子查詢也是由多個(gè)軸、每個(gè)軸由多個(gè)維、每個(gè)維由多個(gè)成員構(gòu)成,不同的是:在子查詢中,每個(gè)維上所取的成員必須屬于同一個(gè)維層。MDX查詢舉例Salesin1991

銷1銷1銷1銷2銷3銷3銷4北京上海北京北京上海北京

海淀朝陽(yáng)海淀朝陽(yáng)1月電器

電器洗衣機(jī)

電視

電冰箱

2月電器

電器洗衣機(jī)

電視

電冰箱

3月電器電視

一季度電器

銷1銷2銷3銷1銷3銷4上海北京上海北京北京北京

海淀朝陽(yáng)海淀朝陽(yáng)一季度電器

1月電器

2月電器

1月電器洗衣機(jī)

電視

電冰箱

2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論