維表和事實表介紹_第1頁
維表和事實表介紹_第2頁
維表和事實表介紹_第3頁
維表和事實表介紹_第4頁
維表和事實表介紹_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、事實表是數(shù)據(jù)庫中最大的表,是星形模型結(jié)構(gòu)的核心。事實表包含了基本商業(yè)事務(wù)的詳 細(xì)信息,是對商務(wù)活動進(jìn)行客戶關(guān)系、銷售趨勢和產(chǎn)品趨勢等分析的素材。事實表的設(shè)計包括對事實的選擇、量度的構(gòu)造、粒度的設(shè)計和聚合的設(shè)計等。3.5.1事實、度量和事實表事實是各個維度的交點, 是對某個特定事件的度量。 維度中的屬性描述的是維本身的屬 性,比如客戶的性別、年齡、姓名和地址,這些都是客戶的固有屬性。度量是客戶發(fā)生事件或動作的事實記錄,比如客戶打電話,可能選擇的度量有通話時長、通話次數(shù)和通話費用等;客戶購買商品,可能選擇的度量有購買的次數(shù)、購買商品的金額和購買商品的數(shù)量等。 度量變量的取值可以是離散的數(shù)值,也可以

2、是連續(xù)的數(shù)值。比如,客戶通話次數(shù)是離散的數(shù)值,而客戶購買商品的金額是連續(xù)的數(shù)值。度量變量也可以在某個元素集合內(nèi)取值。比如客戶對公司服務(wù)質(zhì)量的評定可以是很好(Excelle nt)、好(Good)、一般(Fair)和差(Poor)中的一個。事實表則是位于星形架構(gòu)或雪花形架構(gòu)中間,用來記錄商務(wù)事實和相應(yīng)統(tǒng)計指標(biāo)的表。同維表相比,事實表具有如下的特征。記錄數(shù)量很多。事實表中除了度量變量外,其他字段都是同維表或者中間表(對于雪花形模型)的關(guān)鍵字。如果事實相關(guān)的維度很多,則事實表的字段數(shù)也會比較多。從事實表記錄數(shù)多的特征中, 我們可以得到事實表設(shè)計的一個感性認(rèn)識,即事實表應(yīng)當(dāng)盡量減小一條記錄的長度, 只

3、有這樣才能避免事實表過大而難于管理。 相對維表來說,事實 表是 細(xì)長”的結(jié)構(gòu),如圖3-35所示。錯誤!圖3-35事實表的特征3.5.2事實表的設(shè)計由以上分析可知,事實表中一般要包含 2部分:一是由主鍵和外鍵所組成的鍵部分,另一部分是用戶希望在數(shù)據(jù)倉庫中所了解的數(shù)值指標(biāo),這些指標(biāo)是為每個派生出來的鍵而定義和計算的,稱為事實或指標(biāo)。由于事實是一種度量,所以事實表中的這種指標(biāo)往往需要具有 數(shù)值化和可加性的特征。但是在事實表中,只有那些具有完全可加性的事實才能根據(jù)所有的 維度進(jìn)行累加而具有意義。而事實表有一些事實表示的是某種強(qiáng)度,這類事實就不具有完全加法性,而是一種半加法性。例如,賬目余款反映的是某個

4、時間點的數(shù)據(jù),它可以按照地點和商品等大多數(shù)維度進(jìn)行累加,但是對于時間維度則例外,將一年中每個月的賬目余款進(jìn)行 累加是毫無意義的,而決策者則可能需要了解所有地區(qū)和所有商品賬目余款的累加值。在事實表中還有一些事實是非加法性的,即這些事實具有對事實的描述特性,在這種情況下一般要將這些非加法性事實轉(zhuǎn)移到維度表中。以事實表中度量的可加性情況,可以把事實表及其包含的事實分為4種樣式。1事務(wù)事實事務(wù)事實以企業(yè)事件的單一情況為基礎(chǔ),因此通常只包含事實的次數(shù)這一種度量條件,應(yīng)該盡可能以最低級別來表示。比如銀行的ATM提款機(jī)的提款次數(shù),使用某種服務(wù)的次數(shù)等。2. 快照事實快照事實以企業(yè)在某一特定時間的特殊狀態(tài)為基

5、礎(chǔ)。也就是只有在某一段時間內(nèi)才出現(xiàn)的結(jié)果。它們也許沒有包含所有維的條件,比如不是所有的產(chǎn)品每天都有銷售量。3. 線性項目事實這類事實通常用來儲存關(guān)于企業(yè)經(jīng)營項目的詳細(xì)信息。包括表現(xiàn)與企業(yè)相關(guān)的個別線性項目的所有度量條件,比如銷售數(shù)量、銷售金額、成本和運費等數(shù)值數(shù)據(jù), 也就是關(guān)鍵性能指標(biāo)。此類事實運用范圍很廣,比如采購、銷售和庫存等。4. 事件(狀態(tài)事實)這是類特殊的事實,通常只表示事件發(fā)生與否和一些非事實本身具備的細(xì)節(jié)。它所表現(xiàn)的是一個事件發(fā)生后的結(jié)果變化,并且沒有度量數(shù)值表示。 如哪些產(chǎn)品在促銷期間內(nèi)沒有賣出,有還是沒有,就是事件或狀態(tài)事實所表現(xiàn)的結(jié)果。在事實表模型的設(shè)計中還需要注意到派生事

6、實。派生事實主要有2種,一種是可以用同一事實表中的其他事實計算得到,例如銷售行為中的商品單價可以用商品的銷售總金額和銷售數(shù)量計算得到,對于這些派生事實一般不保留在事實表中;另一種是非加法性事實, 例如各種商品的利潤率等各種比率。在事實表模型的設(shè)計中必須要考慮到事實表中的這些事實特性,通過多次反復(fù)來確定。首先,通過調(diào)查確定所有可能的基本事實和派生事實;然后,對所有的事實按照功能或某種方式進(jìn)行排序,以刪除重復(fù)的事實; 接著,確認(rèn)那些基于不同準(zhǔn)則但是有相同性質(zhì)的派生事 實,例如公司門市銷售總額與地區(qū)銷售總額雖由于維度的不同而被定義為不同的事實,但實際計算方法是一樣的; 最后,再一次確定事實表模型,

7、在確認(rèn)中要檢查所有的計算派生事實 的基本事實是否已經(jīng)包含在模型中,并且與用戶取得一致。在設(shè)計事實表時,一定要注意使事實表盡可能地小,因為過于龐大的事實表在表的處理、備份和恢復(fù)及用戶的查詢等方面需要較長的時間。在實際設(shè)計時,可以利用減少列的數(shù)量、降低每一列的大小和把歷史數(shù)據(jù)歸檔到單獨的事實表中等多種方法來降低事實表的大小。另外,在事實表中還要解決好數(shù)據(jù)的精度和粒度的問題,下面將闡釋粒度的設(shè)計方法。3.5.3粒度的設(shè)計在數(shù)據(jù)倉庫中的數(shù)據(jù)分為 4個級別:早期細(xì)節(jié)級、當(dāng)前細(xì)節(jié)級、輕度綜合級和高度綜合 級。如圖3-36所示,源數(shù)據(jù)經(jīng)過綜合后,首先進(jìn)入當(dāng)前細(xì)節(jié)級,并根據(jù)具體需要進(jìn)行進(jìn)一 步綜合,從而進(jìn)入輕

8、度綜合級乃至高度綜合級,老化的數(shù)據(jù)將進(jìn)入早期細(xì)節(jié)級。從中可以看出,數(shù)據(jù)倉庫中存在著不同的綜合級別,這就是粒度”的直觀表現(xiàn)。錯誤!圖3-36數(shù)據(jù)倉庫中的數(shù)據(jù)細(xì)節(jié)級別粒度模型是數(shù)據(jù)倉庫設(shè)計中需要解決的十分重要的問題之一。所謂粒度是指數(shù)據(jù)倉庫中數(shù)據(jù)單元的詳細(xì)程度和級別。數(shù)據(jù)越詳細(xì),粒度就越小,級別也就越低;數(shù)據(jù)綜合度越高, 粒度就越大,級別也就越高。1粒度對數(shù)據(jù)分析的影響1)影響邏輯結(jié)構(gòu)的設(shè)計先舉一個粒度設(shè)計的例子,Adventure Works Cycles公司的管理者想按照國家、區(qū)域、分區(qū)域和分區(qū)域內(nèi)的銷售員這樣的層次關(guān)系來查看公司的銷售情況,按照此需求可以得到如圖3-37所示的設(shè)計結(jié)果。它是通

9、過將地理層次國家、區(qū)域和分區(qū)域嵌入到銷售員維度得到 的。圖3-37細(xì)化到銷售員層次的設(shè)計結(jié)果如果公司的決策者認(rèn)為不需要了解具體到某個銷售人員的情況,而只需要了解各個地理區(qū)域的銷售情況,則沒有必要把銷售員維作為一個維度,把地域相關(guān)的表綜合成為地理維度就可以了,設(shè)計結(jié)構(gòu)如圖 3-38所示。由以上實例可知,對事實粒度需求的不同,會直接導(dǎo)致數(shù)據(jù)倉庫邏輯設(shè)計的差異。錯誤!ProiictlDConmtiylD «/RigianlDGwID.iFroductlDKTinuelD.TiswID.*L 伽rCcfuntj-iDMonthRflicrLlD圖3-38細(xì)化到分區(qū)域?qū)哟蔚脑O(shè)計結(jié)果2)影響數(shù)據(jù)

10、的存儲粒度對數(shù)據(jù)倉庫最直接的影響就是存儲容量。如圖3-39所示的例子,按照每 月”統(tǒng)計的客戶購買數(shù)據(jù)和按照每次消費記載的客戶購買數(shù)據(jù),兩者的數(shù)據(jù)量相差極大。不妨假定每個字段為8個字節(jié),每個客戶一天有5次消費,則1個客戶1個月的消費細(xì)節(jié)數(shù)據(jù)的數(shù)據(jù)量 為86X30X5= 7200字節(jié),而1個客戶1個月的消費匯總數(shù)據(jù)的數(shù)據(jù)量為8X4= 32字節(jié)。錯誤!圖3-39不同粒度的儲存容量示例3)影響分析效果不同的粒度設(shè)計對應(yīng)不同的分析需求,若分析需求和粒度設(shè)計不匹配,則會直接影響分析效果。因為數(shù)據(jù)的綜合使得細(xì)節(jié)信息丟失,所以若分析需求的粒度小于設(shè)計的粒度,則需求不可能得到滿足;反之,若分析需求的粒度大于設(shè)計

11、的粒度,則查詢會在更小的粒度上進(jìn)行統(tǒng)計運算后才能回答,這將增加用戶的等待時間。例如在圖3-40中,要回答 張某在2007年1月29號是否在北京買了一輛山地車 ”這樣 非常細(xì)致的問題,細(xì)節(jié)數(shù)據(jù)非常合適,而綜合數(shù)據(jù)不可能回答。如果要回答王某在2006年1月到2006年12月自行車配件的總消費是多少”這樣綜合程度較高的問題時,使用綜合數(shù)據(jù)則可以迅速地回答這個問題。如圖3-40綜合數(shù)據(jù)和細(xì)節(jié)數(shù)據(jù)的用途和查詢代價所示,很好地說明了這一點。錯誤! *m-l細(xì)節(jié)敵君能翦回售的H題, 張握定血丁琳1月游兮是香崔北京 買T-輻山電出T侏合敷據(jù)維解回茜的西集血年度喪自祈車上共涓費T器少T .11 ri ixpmA

12、細(xì)節(jié)融掘回礬合日廳首輕訪H大 量的記弟*謖存尢量的計.聲會數(shù)據(jù)回瞽綜悅宦逸.貝盼諭H很專圖3-40綜合數(shù)據(jù)和細(xì)節(jié)數(shù)據(jù)的用途和查詢代價由于數(shù)據(jù)倉庫的主要作用是決策分析,因而大多數(shù)查詢都基于一定程度的綜合數(shù)據(jù)之 上,而只有少數(shù)查詢涉及到細(xì)節(jié)。因此在數(shù)據(jù)倉庫中,設(shè)計多重粒度是必不可少的。下面具 體講解粒度的設(shè)計問題。2 粒度的設(shè)計技巧由以上的分析可知,數(shù)據(jù)倉庫的性能和存儲空間是一對矛盾。如果粒度設(shè)計得很小,則事實表將不得不記錄所有的細(xì)節(jié),儲存數(shù)據(jù)所需要的空間將會急劇的膨脹;若設(shè)計的粒度很大,雖然由于事實表體積大而帶來的諸多問題能夠得到一定程度的緩解,但決策者不能觀察細(xì)節(jié)數(shù)據(jù)。粒度的設(shè)計成了事實表設(shè)計

13、中的重要一環(huán)。1)設(shè)計步驟(1)粗略估算確定合適的粒度級的起點, 可以粗略估算數(shù)據(jù)倉庫中將來的數(shù)據(jù)行數(shù)和所需的直接存取 存儲空間,粗略估算可以按照以下步驟完成。 確定數(shù)據(jù)倉庫中將要創(chuàng)建的所有表,然后估計每張表中行的大小(確切大小可能難 以知道,估計一個下界和一個上界就可以了)。 估計一年內(nèi)表中的最少行數(shù)和最多行數(shù)。這是設(shè)計者所要解決的最大問題。比方說一個顧客表,就應(yīng)該估計在一定的商業(yè)環(huán)境和該公司的商業(yè)計劃影響下的當(dāng)前的顧客數(shù);如果當(dāng)前沒有業(yè)務(wù),就估計為總的市場業(yè)務(wù)量乘以市場份額; 如果市場份額不可知的話, 就用 競爭對手的業(yè)務(wù)量來估計。 總之,要從一方或多方收集顧客的合理估算信息開始。 如果數(shù)

14、據(jù)倉庫是用來存放業(yè)務(wù)活動的話,就要估計顧客數(shù)量,以及估計每個時間單位內(nèi)業(yè)務(wù)活動量。 同樣,可用相同的方法分析當(dāng)前的業(yè)務(wù)量、競爭對手的業(yè)務(wù)量和經(jīng)濟(jì)學(xué)家的預(yù)測報告,等等。一旦估計完一年內(nèi)數(shù)據(jù)倉庫中數(shù)據(jù)單位的數(shù)量(用上下限推測的方法),就用同樣的方法對5年內(nèi)的數(shù)據(jù)進(jìn)行估計。 粗略數(shù)據(jù)估計完后,就要計算一下索引數(shù)據(jù)所占的空間。 對每 張表(對表中的每個鍵碼)確定鍵碼的長度和原始表中每條數(shù)據(jù)是否存在鍵碼。 將各表中行數(shù)可能的最大值和最小值分別乘以數(shù)據(jù)的最大長度和最小長度。另外,還要將索引項的數(shù)目與鍵碼的長度的乘積累加到總的數(shù)據(jù)量中去。(2)確定雙重或單一的粒度一旦估計完成后,下一步就要將數(shù)據(jù)倉庫環(huán)境中總

15、的行數(shù)和表3-8中所示的表格進(jìn)行比較。根據(jù)數(shù)據(jù)倉庫環(huán)境中將具有的總的行數(shù)的大小,設(shè)計和開發(fā)必須采取不同的方法。以1年期為例,如果總的行數(shù)小于10 000行,那么任何的設(shè)計和實現(xiàn)實際上都是可以的。如果1年期總行數(shù)是100 000行或更少,那么設(shè)計時就需小心謹(jǐn)慎。如果在頭一年內(nèi)總行數(shù)超過1000 000行,那么就要請求采取雙重粒度級。如果在數(shù)據(jù)倉庫環(huán)境中總行數(shù)超過10 000 000行的話,必須強(qiáng)制采取雙重粒度級,并且在設(shè)計和實現(xiàn)中應(yīng)該小心謹(jǐn)慎。對于5年期數(shù)據(jù),行的總數(shù)大致依據(jù)數(shù)量級改變,參見表3-8。表3-8存儲空間與粒度設(shè)計層次的考慮1年數(shù)據(jù)5年數(shù)據(jù)數(shù)據(jù)量(行數(shù))粒度劃分策略數(shù)據(jù)量(行數(shù))粒度

16、劃分策略10 000 000雙重粒度并仔細(xì)設(shè) 計20 000 000雙重粒度并仔細(xì)設(shè)計1 000 000雙重粒度10 000 000雙重粒度100 000仔細(xì)設(shè)計1 000 000仔細(xì)設(shè)計10 000不考慮100 000不考慮(3 )確定粒度的級別在數(shù)據(jù)倉庫中確定粒度的級別時,需要考慮這樣一些因素: 要接受的分析類型、 可接受的數(shù)據(jù)最低粒度和能存儲的數(shù)據(jù)量。計劃在數(shù)據(jù)倉庫中進(jìn)行的分析類型將直接影響到數(shù)據(jù)倉庫的粒度劃分。將粒度的層次定義得越高,就越不能在該倉庫中進(jìn)行更細(xì)致的分析。例如,將粒度的層次定義為月份時,就 不可能利用數(shù)據(jù)倉庫進(jìn)行按日匯總的信息分析。數(shù)據(jù)倉庫通常在同一模式中使用多重粒度。數(shù)

17、據(jù)倉庫中,可以有今年創(chuàng)建的數(shù)據(jù)粒度和以前創(chuàng)建的數(shù)據(jù)粒度。 這是以數(shù)據(jù)倉庫中所需的最低粒度級別為基礎(chǔ)設(shè)置的。例如,可以用低粒度數(shù)據(jù)保存近期的財務(wù)數(shù)據(jù)和匯總數(shù)據(jù),對時間較遠(yuǎn)的財務(wù)數(shù)據(jù)只保留粒度較大的匯總數(shù)據(jù)。這樣既可以對財務(wù)近況進(jìn)行細(xì)節(jié)分析,又可以利用匯總數(shù)據(jù)對財務(wù)趨勢進(jìn)行分析,這里的數(shù)據(jù)粒度劃分策略就需要采用多重數(shù)據(jù)粒度。定義數(shù)據(jù)倉庫粒度的另外一個要素是數(shù)據(jù)倉庫可以使用多種存儲介質(zhì)的空間量。如果存儲資源有一定的限制,就只能采用較高粒度的數(shù)據(jù)粒度劃分策略。這種粒度劃分策略必須依據(jù)用戶對數(shù)據(jù)需求的了解和信息占用數(shù)據(jù)倉庫空間的大小來確定。選擇一個合適的粒度是數(shù)據(jù)倉庫設(shè)計過程中所要解決的一個復(fù)雜的問題,

18、因為粒度的確定實質(zhì)上是業(yè)務(wù)決策分析、硬件、軟件和數(shù)據(jù)倉庫使用方法的一個折中。在確定數(shù)據(jù)倉庫的粒度時,可以采用多種方法來達(dá)到既能滿足用戶決策分析的需要,又能減少數(shù)據(jù)倉庫的數(shù)據(jù)量。如果主題分析的時間范圍較小,可以保持較少時間的細(xì)節(jié)數(shù)據(jù)。例如,在分析銷售趨勢的主題中,分析人員只利用一年的數(shù)據(jù)進(jìn)行比較,那么保存銷售主題的數(shù)據(jù)只需要15個月的就足夠解決問題了,不必保存大量的數(shù)據(jù)和時間過長的數(shù)據(jù)。還有一種可以大幅降低數(shù)據(jù)倉庫容量的方法.就是只采用概括數(shù)據(jù)。這樣處理后,確實可以降低數(shù)據(jù)倉庫的存儲空間,但是有可能達(dá)不到用戶管理決策分析中對數(shù)據(jù)粒度的要求。因此,數(shù)據(jù)粒度的劃分策略一定要保證數(shù)據(jù)的粒度確實能夠滿足

19、用戶的決策分析需要,這是數(shù)據(jù)粒度劃分策略中最重要的 一個準(zhǔn)則。2)設(shè)計實例下面以類似Adventure Works Cycles公司的生產(chǎn)部門數(shù)據(jù)倉庫設(shè)計為例,如圖3-41所示。由于對不同的生產(chǎn)業(yè)務(wù)查詢需求的差異,這里采用多重粒度來設(shè)計。左邊是操作型數(shù)據(jù), 記錄的是完成若干給定部件的生產(chǎn)線運轉(zhuǎn)情況,每一天都會積累許多記錄,是生產(chǎn)業(yè)務(wù)的詳細(xì)數(shù)據(jù),最近30天的活動數(shù)據(jù)都存儲在操作型的聯(lián)機(jī)環(huán)境中。操作型數(shù)據(jù)的右邊是輕度匯總級的數(shù)據(jù), 輕度匯總級包括兩個表,一個匯總某一部件在 3個月中的生產(chǎn)情況,另一個匯總部件的組裝情況,匯總周期為1年。真實檔案級的數(shù)據(jù)包括每個生產(chǎn)活動的詳細(xì)記錄。錯誤!士產(chǎn)IT草按時

20、否帝任工隹舗褂號哀曲強(qiáng) 便申總量 完威祉辰.1毎的紋馥記逢組還ID 舗禪號 目駆強(qiáng)具缶檔克壊郛件號 肋At上產(chǎn)訂龍. 擾詁塞 按時否圖3-41生產(chǎn)環(huán)境的多重粒度3)設(shè)計原則粒度在數(shù)據(jù)倉庫生命周期中是重要的考慮因素。它由業(yè)務(wù)問題所驅(qū)動,受技術(shù)的制約。 如果粒度太大,就會丟失個別細(xì)節(jié), 就要花更多的處理時間來解開聚合;而若粒度太小,就 會由于一葉障目而不見森林,許多寶貴的處理時間都浪費在建立聚合上。因此粒度設(shè)計主要是權(quán)衡粒度級別,對于業(yè)務(wù)量大,分析要求比較高的情況下,最佳解決辦法則是采用多重粒度的形式。而針對具體的某個事實的粒度而言,應(yīng)當(dāng)采用最小粒度原則”即將量度的粒度設(shè)置到最小。假設(shè)目前的數(shù)據(jù)最

21、小記錄到秒,即數(shù)據(jù)庫中記錄了每秒的交易額。那么,如果可以確認(rèn),在將來的分析需求中,時間只需要精確到天就可以的話,就可以在ETL處理過程中,按天來匯總數(shù)據(jù),此時,數(shù)據(jù)倉庫中量度的粒度就是天”;反過來,如果不能確認(rèn)將來的分析需求在時間上是否需要精確到秒,那么,就需要遵循最小粒度原則”精確到 秒”以滿足查詢的可能需求。3.5.4聚合的設(shè)計在事實表中存放的度量變量,根據(jù)其實際意義可分成可加性度量變量和非可加性度量 變??杉有远攘孔兞渴侵笇⒆兞肯嗉雍蟮玫降慕Y(jié)果仍然具有實際意義,可以把此結(jié)果計算后放在事實表中,以便在以后的查詢中直接使用,這個相加的結(jié)果就是聚合。比如每個月的銷售金額,通過將3個月的銷售金額

22、相加, 就可以得到1個季度的銷售金額; 通過將12個月 的銷售金額相加,可以得到全年的銷售總金額。確定了數(shù)據(jù)倉庫的粒度模型以后,為提高數(shù)據(jù)倉庫的使用性能,還需要根據(jù)用戶的要求設(shè)計聚合。數(shù)據(jù)倉庫中各種各樣的聚合數(shù)據(jù)主要是為了使用戶獲得更好的查詢性能,因此聚合模型的好壞將在很大程度上影響到數(shù)據(jù)倉庫的最終使用效果。在設(shè)計聚合模型時,首先需要考慮用戶的使用要求,其次要考慮數(shù)據(jù)倉庫的粒度模型和 數(shù)據(jù)的統(tǒng)計分布情況。數(shù)據(jù)倉庫的一般用戶在其日常工作中己經(jīng)有了按照地理位置、產(chǎn)品類型和時間范圍的報告。在數(shù)據(jù)倉庫的聚合設(shè)計中,應(yīng)該對每個維進(jìn)行審查,以確定哪些屬性經(jīng)常用于分組,這些屬性的組合有多少。 例如,如果考慮

23、某一主題有 4個維度,每個維度有3個可以作為聚合 的屬性,那么最多可以創(chuàng)建 256個不同的聚合。當(dāng)然.在實際工作中是沒有必要創(chuàng)建這么多 聚合的,只需考慮在數(shù)據(jù)倉庫中經(jīng)常使用的聚合。此時,可以審查數(shù)據(jù)倉庫的需求分析文檔,了解用戶的需求情況。 然后確定哪些內(nèi)容會對聚合有影響,并通過對數(shù)據(jù)的審核獲取每個維度中不同聚合的統(tǒng)計數(shù)據(jù)。數(shù)據(jù)倉庫的聚合模型的設(shè)計與數(shù)據(jù)倉庫的粒度模型緊密相關(guān),如果數(shù)據(jù)倉庫的粒度模型只考慮了細(xì)節(jié)數(shù)據(jù),那么就可能需要多設(shè)計一些聚合,如果粒度模型為多層數(shù)據(jù)則在聚合模型設(shè)計中可以少考慮一些聚合。在建立聚合模型時還需要考慮作為聚合屬性的數(shù)量因素。例如,在數(shù)據(jù)倉庫中有1 000000個值用

24、于描述商品信息的最底層信息,如果用戶在使用數(shù)據(jù)倉庫時用500 000個值描述商品最底層的上一層次的信息,此時進(jìn)行聚合處理并不能明顯提高數(shù)據(jù)倉庫的使用性能。但是如果商品上一層次的信息用75 000個值描述,那么就應(yīng)該使用聚合表提高數(shù)據(jù)倉庫的使用性能。3.5.5數(shù)據(jù)分割如果粒度和分割都做得很好的話,則數(shù)據(jù)倉庫設(shè)計和實現(xiàn)的幾乎所有其他問題都容易解 決。但是,假如粒度處理不當(dāng)并且分割也沒有認(rèn)真地設(shè)計與實現(xiàn),這將使其他方面的設(shè)計難以真正實現(xiàn)。數(shù)據(jù)分割是指把數(shù)據(jù)分散到各自的物理單元中去,使它們能獨立地處理。分割是數(shù)據(jù)倉庫中繼粒度問題之后的第2個主要的設(shè)計問題。為什么分割如此重要呢?因為小的物理單元能為操作

25、者和設(shè)計者在管理數(shù)據(jù)時提供比對大的物理單元更大的靈活性。數(shù)據(jù)倉庫的本質(zhì)之一就是靈活地訪問數(shù)據(jù)。如果是大塊的數(shù)據(jù),就達(dá)不到這一要求。因而,對所有當(dāng)前細(xì)節(jié)的數(shù)據(jù)倉庫數(shù)據(jù)都要進(jìn)行分割。分割的原理類似如圖3-42所示,由于全部銷售記錄過于龐大,可以按照不同的年度把它分為5個小的物理單元。錯誤!圖3-42數(shù)據(jù)分割處理例如,在第2章用到的foodmart 2000.mdb中,由于設(shè)計該數(shù)據(jù)庫的時候考慮到了它將要作為數(shù)據(jù)倉庫使用,因此,對于銷售事實按照年份分割成了sales_fact_1997、sales_fact_1998和 sales_fact_dec_1998 3 個表,對庫存事實則分割成了inven

26、tory_fact_1997 和inventory_fact_1998 兩個表,如圖 3-43 所示。rsales_fact_1997 sales fact dec 1998safes fact 1998productjd timejd customer Jd promotion stored store_sales stores ost unit_salesproductjd timejd customend promotion stcre_id store_sales store_cost unit_salesproductjd timed customerjd promotionU st

27、orejd store_sales sto re_cost unit_salesinventory_fact_1998 productjd timejd warehousejd store units_ordered units_shipped wa rehouse_sales warehou$e_co5t supplyjtime storejnvoiceinventory_fact_1997productjdwarehousejd store_id unrts_ardered units_shipped warehouse_sales wa rehouse_co5t supply_time

28、store invoicexoinlx圖3-43 Foodmart數(shù)據(jù)庫中的數(shù)據(jù)分割在工程實踐中,除了時間以外,還可以有多種數(shù)據(jù)分割的標(biāo)準(zhǔn)。例如商務(wù)業(yè)務(wù)、地理位 置和組織單位或者各種標(biāo)準(zhǔn)的綜合。3.6規(guī)劃分析的視角:維度對客戶、產(chǎn)品、服務(wù)、提供商、地點、渠道和事件發(fā)生的時間及對企業(yè)來說很重要的其他實體的觀察是商業(yè)智能的基本驅(qū)動力。當(dāng)它們在一個關(guān)系數(shù)據(jù)庫中表示和抽象出來的時 候,它們便叫做維。維是人們觀察客觀世界的角度,是一種高層次的類型劃分。例如如果希 望按照時間,或者按照地區(qū)或產(chǎn)品進(jìn)行分析,那么這里的時間、地區(qū)和產(chǎn)品就是相應(yīng)的維度。 基于不同的維度,可以看到各量度的匯總情況,也可以基于所有的

29、維度進(jìn)行交叉分析。3.6.1維度的構(gòu)成在圖3-10的星形架構(gòu)圖中可以看到,處于星形結(jié)構(gòu)中央的事實表不僅包含度量,而且也包含維表的外鍵和事實表的主鍵。維度表除了代表維之外,還具有字段,例如客戶維度表包含一個主鍵“ CustomerKey和用來向客戶提供信息的其他字段。維度由主鍵和維屬性構(gòu)成。維屬性是維表里的列。維元素定義維表中的層次關(guān)系,屬性則以用戶熟悉的術(shù)語描述維元素。圖3-44顯示了維元素和相關(guān)屬性的關(guān)系。圖3-44維元素和相關(guān)屬性的關(guān)系在設(shè)計過程中,來自數(shù)據(jù)源的數(shù)值數(shù)據(jù)字段到底是一個已度量的事實還是一個維度的屬 性是比較容易混淆的一個問題。一般情況下,在每次抽樣時,如果數(shù)值數(shù)據(jù)字段的度量都

30、改 變,那么它就是事實,如果它是某種東西的離散值描述,并幾乎保持為常數(shù),那么它就是維屬性。3.6.2維度的特性所有的維度都有一些共同特性,它們包括以下幾個方面。(1)維存在于關(guān)系式的表中,包含了鍵值和支持的屬性,而且屬性與所陳述的事實高度相關(guān)。對于屬性一般使用簡單易用的文字信息,不應(yīng)該有代碼或縮寫, 沒有空值或NULL ,沒有無用或過時的數(shù)值。(2)維度使用解析過的時間、名字或地址元素,這樣可以使你的查詢更靈活。比如時 間可分為年、季度、月、周和日等;個人的名字可以分為姓氏和稱謂(如先生或小姐);組 織名可以用部門來區(qū)分;地址則可以用地理區(qū)域來區(qū)分(如國家、州省和、城市)。(3) 不要使用業(yè)務(wù)

31、數(shù)據(jù)庫的鍵值,對每個維表另外增加一個額外的惟一值字段作為主鍵來識別維表實體,通常最常使用的字段類型是Identity類型或者16位格式的全局唯一標(biāo)識符(Global Unique Identity,GUID )。這樣,就不需要改變 OLTP系統(tǒng)可能會發(fā)生的重復(fù) 情形,也使得 OLTP系統(tǒng)可以重復(fù)使用鍵值。這個在維表中新設(shè)定的鍵也叫代理鍵。(4)維表至少包含一個決策因子,每個決策因子字段可以通過使用相關(guān)的主鍵,并結(jié) 合事實表的KPI數(shù)據(jù)來響應(yīng)用戶的查詢。(5) 維度表應(yīng)該包含有隨時間變化的數(shù)據(jù)記錄字段,當(dāng)數(shù)據(jù)集市或數(shù)據(jù)倉庫的數(shù)據(jù)隨 時間變化而有額外增加或改變時,維表的數(shù)據(jù)行應(yīng)該隨著維屬性的變化而

32、變化。363維度的分類維度主要有4種類型,包括結(jié)構(gòu)維、信息維、分區(qū)維和分類維。結(jié)構(gòu)維最為普通,它包含具有層次結(jié)構(gòu)的成員;信息維包含需要計算的屬性;分區(qū)維用于信息的比較,如計劃銷售 情況和實際銷售情況;分類維用于根據(jù)維的屬性來分組。此外,還有一些結(jié)構(gòu)上比較特殊的維,如退化維和垃圾維等。1結(jié)構(gòu)維結(jié)構(gòu)維表示在層次結(jié)構(gòu)組成中的信息量度。因此,年、月和日可以組成一個結(jié)構(gòu)維。一個部門將總銷售量用作一個度量,便是如何應(yīng)用結(jié)構(gòu)維的一個例子。 與這個度量相關(guān)的是包含涉及產(chǎn)品的所有屬性的產(chǎn)品信息表??梢酝ㄟ^產(chǎn)品信息表生成的維可能是“ 、"“ product_brand、“ pro

33、duct_category、 ""product_department和 ”“ product_family。”在此會發(fā)現(xiàn),這個產(chǎn)品維可以組成一個層次結(jié)構(gòu)。增加一個時間信息表,就可以通過由年、月和日組成的時間信息對象建立一個時間維。通過這個度量和2個結(jié)構(gòu)維,可以用SSAS確定一種特殊產(chǎn)品在某一特定時期的銷售總量。下面是一些普通的結(jié)構(gòu)維:客戶地理位置維這個維可提供一個根據(jù)客戶所在地進(jìn)行歸類的層次結(jié)構(gòu)??蛻艟S的典型例子是 “ customer_city、” “ customer_state和“ custmer_country。這個維通常用于查看不同的地 理位置在銷售、利潤和其他

34、客戶度量方面的不同。時間維可表明事件發(fā)生的時間。典型的時間維應(yīng)該是年、月和日。銷售人員地理位置維這個維可提供一個根據(jù)銷售人員所在地域進(jìn)行歸類的層次結(jié)構(gòu)。這個維通常用來查看工作在不同地域的銷售人員的銷售情況和利潤等。產(chǎn)品維出售的產(chǎn)品。這個層次結(jié)構(gòu)可能包括“ product_name、 “ product_bra nd、”“ product_category和""product_department。這個維用來查看不同類別的產(chǎn)品的銷售利潤和其 他指標(biāo)。所有這些結(jié)構(gòu)維都包含他們所在層次結(jié)構(gòu)的屬性。在結(jié)構(gòu)維中層次是非常重要的,所以2.信息維信息維是計算字段建立的。 用戶也許想通過銷

35、售利潤了解所有產(chǎn)品的銷售總額。也許希望通過增加銷售來獲得豐厚的利潤。 然而,如果某一款商品降價銷售,可能會發(fā)現(xiàn)銷售量雖 然很大,而利潤卻很小或幾乎沒有利潤。從另一方面看,用戶可能希望通過提高某種產(chǎn)品的價格獲得較大利潤。 這種產(chǎn)品可能具有較高的利潤空間,但銷量卻可能很低。因此,就利潤建立一個維,就銷售總量建立一個度量可以提供有用的產(chǎn)品信息。用戶可以對利潤進(jìn)行 2種計算。第1種是計算每種商品的平均利潤,這一方法很簡單, 即用銷售價格減去銷售人員的開銷。知道了每種商品的平均利潤之后,還可以用它乘以每一天的銷售量從而得到每種商品每一天的總利潤。真實世界在實際應(yīng)用中, 也許需要進(jìn)行很多項這樣的計算,因為

36、每一天的銷售價格和開銷都有很大差異。因此,需要一個包含每天的銷售價格和每天開銷情況的表。在用戶查看的時間段上,每一天的銷售價格和每天的開銷情況都是有區(qū)別的,需要進(jìn)行合計并求平均。 某一天每種商品的利潤乘以這一天的銷售量等于當(dāng)天的總利潤,選定時間段的利潤總和為各天的利潤之和。創(chuàng)建了一個包括每種商品利潤和全部利潤的維,就有了一個信息維。3.分區(qū)維生成信息表以同一結(jié)構(gòu)生成兩個或多個維時,要用到分區(qū)維。例如,用戶可能要創(chuàng)建用于預(yù)測銷售額和實際銷售額的兩個維。這兩個維的結(jié)構(gòu)相同,只是數(shù)值不同。另一個例子是時間維,每一年有相同的季度,相同的月和相同的天(除了閏年以外,而它不影響維)。在OLAP Servi

37、ces 中,將頻繁使用時間分區(qū)維來分割數(shù)據(jù)倉庫中的數(shù)據(jù)。例如:為下列結(jié)構(gòu)生成兩個同樣的維。the_daythe_ mon ththe_year一個時間維中的數(shù)據(jù)是針對1998年的,而另一個時間維中的數(shù)據(jù)針對1999年的。建立事實表時,可以把度量分割為1998年的數(shù)據(jù)和1999年的數(shù)據(jù),這將帶來許多益處。4分類維分類維是通過對一個維的屬性值分組而創(chuàng)建的。如果客戶表中有家庭收入屬性,那么, 可能希望查看客戶根據(jù)收入的購物方式。為此,可以生成一個含有家庭收入的分類維。例如:如果有以下家庭每年收入的數(shù)據(jù)分組:020 000元、2000140 000元、40 00160 000元、60 001100 0

38、00元和大于100 001元?,F(xiàn)在就可以考慮如何度量,例如,從 這些分類中的每一個所購買產(chǎn)品的數(shù)量上來看他們的收入水平怎樣和購買量怎樣。另外一個可能的分類是家庭成員的性別和數(shù)量。5.特殊維類型特殊的維主要是在結(jié)構(gòu)上區(qū)別于常見的維度,主要有退化維、垃圾維和一致維3類。(1) 當(dāng)維表中的主鍵在事實表中沒有與外鍵關(guān)聯(lián)時,這樣的維稱為退化維。退化維與事實表并無關(guān)系,但對于一般在企業(yè)事件中跨越維之間數(shù)據(jù)時,所用到的約束,也就是查詢限制條件(比如訂單號碼、出貨單編號等),這時就常用退化維。以銷售分析而言,通常是 把出貨日期作為事實的時間,而把訂單日期或需求日期等作為查詢條件,這里,訂單日期或需求日期就是退

39、化維。(2) 垃圾維。針對某企業(yè)事件,通常提供了必要的查詢值,但是卻沒有直接映射信息對象產(chǎn)生的維表,這樣的字段就是垃圾維。一般來說,如果OLAP系統(tǒng)包含雜亂的標(biāo)識和文字屬性,而且與時間維以外的維表沒有關(guān)系,就可以使用垃圾維。唯一要注意的是,垃圾維必須是對企業(yè)決策潛在限制值非常重要的屬性,通常會創(chuàng)建一個維表來存儲這些屬性。(3) 致維。當(dāng)有好幾個數(shù)據(jù)集市要合并成一個企業(yè)級的數(shù)據(jù)倉庫時,可以使用一致維來集成數(shù)據(jù)集市以便確定所有的數(shù)據(jù)集市可以使用每個數(shù)據(jù)集市的事實。所以,一致維常用于屬于企業(yè)級的綜合性數(shù)據(jù)倉庫,使得數(shù)據(jù)可以跨越不同的模式來查詢。3.6.4維度的層次和級別維”一般包含著層次關(guān)系,這種層

40、次關(guān)系有時會相當(dāng)復(fù)雜。通過把一個實體的多項重要的屬性定義為多個維(dimension ),使用戶能對不同維上的數(shù)據(jù)進(jìn)行比較。因此OLAP也可以說是多維數(shù)據(jù)分析工具的集合。這里首先要確定維度的層次和級別。如圖3-45所示,在時間維度上,按照 年季度月”形成了一個層次,其中年”、季度”和月”成為這個層次的3個級別。同理,當(dāng)建立產(chǎn)品維度時,可以將 產(chǎn)品大類一產(chǎn)品子類一產(chǎn)品”劃為一個層次,其中包含產(chǎn)品大類”、產(chǎn)品子類”和產(chǎn)品”3個級別錯誤!磁Yrz玄障一月匚圖3-45維度的層次和級別分析中所用到的這些具有層次的維度,在數(shù)據(jù)倉庫中的存在形式, 一般說來,有合并維分層結(jié)構(gòu)和雪花分層結(jié)構(gòu) 2種方式。1合并維

41、分層結(jié)構(gòu)合并維分層結(jié)構(gòu)的最顯著的特點是將不同分層結(jié)構(gòu)的信息對象完全合并到同一個維中。如產(chǎn)品維表可能就包含產(chǎn)品總類、產(chǎn)品類別、產(chǎn)品詳細(xì)類別及產(chǎn)品名稱等,如圖3-46所示。合并維分層結(jié)構(gòu)是星形模式的標(biāo)準(zhǔn)分類法,它有2個特點。(1)查詢簡單:由于所有的分層結(jié)構(gòu)都合并在同一維表中,因此不需要知道每個分層 結(jié)構(gòu)的表名稱,也不需要額外的表連接。(2)需要較多的硬盤存儲空間:因為沒有做過正規(guī)化,所以存在數(shù)據(jù)重復(fù)。圖3-46合并維分層結(jié)構(gòu)圖3-47時間維合并維分層結(jié)構(gòu)2雪花分層結(jié)構(gòu)這種分層結(jié)構(gòu)類似正規(guī)化,所有類別用獨立的表來存儲數(shù)據(jù)。也就是將產(chǎn)品詳細(xì)類別、 產(chǎn)品類別及產(chǎn)品總類這 3個分層結(jié)構(gòu)分別獨立成一個表,

42、再用主鍵與外部鍵來維持彼此的關(guān) 系。如圖3-48所示。雪花分層結(jié)構(gòu)把星形模式進(jìn)行正規(guī)化,也因此產(chǎn)生了兩種OLAP標(biāo)準(zhǔn)模型,星形模式與雪花模式,它的特點是:節(jié)省硬盤空間:因為做過正規(guī)化,所以沒有冗余數(shù)據(jù)。查詢較復(fù)雜:由于所有的分層結(jié)構(gòu)都在不同的表中,因此除了需要進(jìn)行表連接以外,還需要知道每個分層結(jié)構(gòu)所屬的表名。圖3-48是產(chǎn)品維度分別保存產(chǎn)品大類、產(chǎn)品子類和產(chǎn)品3部分?jǐn)?shù)據(jù)形成的雪花分層結(jié) 構(gòu)。圖3-48產(chǎn)品維在數(shù)據(jù)倉庫中的儲存形式3.6.5維度的緩慢變化特性及其處理維度可以根據(jù)變化劇烈程度主要分為無變化維度、緩慢變化維度和劇烈變化維度。例如一個人的相關(guān)信息,身份證號、姓名和性別等信息數(shù)據(jù)屬于不變

43、的部分,政治面貌和婚姻狀態(tài)屬于緩慢變化部分,而工作經(jīng)歷、工作單位和培訓(xùn)經(jīng)歷等在某種程度上屬于急劇變化字段。對于劇烈變化維度,通常情況下都是一分為二進(jìn)行處理的,把其中不常變動的部分單獨抽出來作為一個維表,按照緩慢變化維方式進(jìn)行處理;另外一部分也單獨抽取出來,通常作 為維度的屬性進(jìn)行處理。大多數(shù)維度表隨時間的遷移是緩慢變化的。比如增加了新的產(chǎn)品,或者產(chǎn)品的ID號碼修改了,或者產(chǎn)品增加了一個新的屬性,此時,維度表就會被修改或者增加新的記錄行。這樣,在設(shè)計維度和使用維度的過程中,就要考慮到緩慢變化維度的處理。維度的緩慢變化有 3種不同情況,其對應(yīng)的處理方法也有所不同。1歷史數(shù)據(jù)需要修改這種情況主要是發(fā)生在業(yè)務(wù)數(shù)據(jù)庫中的數(shù)據(jù)出現(xiàn)錯誤,在分析過程中需要修改。處理辦法是用直接覆蓋法,即使用 UPDATE方法來修改維度表中的數(shù)據(jù)。例如商店維 度中商店經(jīng)理是張三,后來錯了,需要改寫成李四,那么,我們就在ETL處理時,直接修改維度表中原來的商店經(jīng)理為李四,如圖3-49所示。錯誤!100no

溫馨提示

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

評論

0/150

提交評論