詳解事實表文檔_第1頁
詳解事實表文檔_第2頁
詳解事實表文檔_第3頁
詳解事實表文檔_第4頁
詳解事實表文檔_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

詳解事實表每個數(shù)據(jù)倉庫都包含一個或者多個事實數(shù)據(jù)表。其中可能包含業(yè)務(wù)銷售數(shù)據(jù),如現(xiàn)金登記事務(wù)所產(chǎn)生的數(shù)據(jù),通常包含大量的行。事實數(shù)據(jù)表的主要特點是包含數(shù)字?jǐn)?shù)據(jù)(事實),并且這些數(shù)字信息可以匯總,以提供有關(guān)單位作為歷史的數(shù)據(jù),每個事實數(shù)據(jù)表包含一個由多個部分組成的索引,該索引包含作為外鍵的相關(guān)性維度表的主鍵,而維度表包含事實記錄的特性。

01事實表基礎(chǔ)事實表特征事實表作為數(shù)倉維度建模的核心,緊緊圍繞著業(yè)務(wù)過程來設(shè)計,通過獲取描述業(yè)務(wù)過程的度量來表達(dá)業(yè)務(wù)過程,包含了引用的維度和業(yè)務(wù)過程有關(guān)的度量。事實表中一條記錄所表達(dá)的業(yè)務(wù)細(xì)節(jié)程度被稱為粒度(業(yè)務(wù)中的細(xì)節(jié)程度)。通常粒度可以通過兩種方式來表達(dá):一種是維度屬性組合所表示的細(xì)節(jié)程度,另一種是所表示的具體業(yè)務(wù)含義。作為度量業(yè)務(wù)過程的事實(事實表屬性),一般為整型或浮點型的十進(jìn)制數(shù)值,有可加性、半可加性和不可加性三種類型:可加性事實

是指可以按照與事實表關(guān)聯(lián)的任意維度進(jìn)行匯總。半可加性事實

只能按照特定維度匯總,不能對所有維度匯總,比如庫存可以按照地點和商品進(jìn)行匯總,而按時第門章事實表設(shè)計丁一間維度把一年中每個月的庫存累加起來則毫無意義。不可加事實

不具備可加性,比如比率型事實。對于不可加性事實可分解為可加的組件來實現(xiàn)聚集。有事實的事實表有事實表分為三種類型:

事務(wù)事實表、周期快照事實表和累積快照事實表。無事實的事實表無事實的事實表可以用來跟蹤事件的發(fā)生。例如,在給定的某一天中發(fā)生的學(xué)生參加課程的事件,可能沒有可記錄的數(shù)字化事實,但該事實行帶有一個包含日期、學(xué)生、教師、地點、課程等定義良好的外鍵。利用無事實的事實表可以按各種維度計數(shù)上課這個事件。

02事實表設(shè)計規(guī)則盡可能包含所有與業(yè)務(wù)過程相關(guān)的事實;只選擇與業(yè)務(wù)過程相關(guān)的事實;分解不可加性事實為可加的組件;比如訂單的優(yōu)惠率,應(yīng)該分解為訂單原價金額與訂單優(yōu)惠金額在選擇維度和事實之前必須先聲明粒度;在同一個事實表中不能有多種不同粒度的事實;粒度的聲明是事實表設(shè)計中不可忽視的重要一步,粒度用于確定事實表中一行所表示業(yè)務(wù)的細(xì)節(jié)層次,決定了維度模型的擴(kuò)展性,在選擇維度和事實之前必須先聲明粒度,且每個維度和事實必須與所定義的粒度保持一致在同一個事實表中不能有多種不同粒度的事實;事實的單位要保持一致;對事實的null值要處理;在數(shù)據(jù)庫中null值對常用的大于或小于等SQL不生效,建議使用零值填充使用退化維度提高事實表的易用性;目的主要是為了減少下游用戶使用時關(guān)聯(lián)多個表的操作。直接通過退化維度實現(xiàn)對事實表的過濾查詢、控制聚合層次、排序數(shù)據(jù)以及定義主從關(guān)系等

03事實表設(shè)計方法Kimball的四步維度建模方法:選擇業(yè)務(wù)過程、聲明粒度、確定維度、確定事實。Step1:選擇業(yè)務(wù)過程及確定事實表類型。在明確了業(yè)務(wù)需求以后,接下來需要進(jìn)行詳細(xì)的需求分析,對業(yè)務(wù)的整個生命周期進(jìn)行分析,明確關(guān)鍵的業(yè)務(wù)步驟,從而選擇與需求有關(guān)的業(yè)務(wù)過程。(業(yè)務(wù)過程通常使用行為動詞表示業(yè)務(wù)執(zhí)行的活動)Step2:聲明粒度。粒度的聲明是事實表建模非常重要的一步,意味著精確定義事實表的每一行所表示的業(yè)務(wù)含義,粒度傳遞的是與事實表度量有關(guān)的細(xì)節(jié)層次。明確的粒度能確保對事實表中行的意思的理解不會產(chǎn)生混淆,保證所有的事實按照同樣的細(xì)節(jié)層次記錄。Step3:確定維度。完成粒度聲明以后,也就意味著確定了主鍵,對應(yīng)的維度組合以及相關(guān)的維度字段就可以確定了,應(yīng)該選擇能夠描述清楚業(yè)務(wù)過程所處的環(huán)境的維度信息。Step4:確定事實。事實可以通過回答“過程的度量是什么”來確定。應(yīng)該選擇與業(yè)務(wù)過程有關(guān)的所有事實,且事實的粒度要與所聲明的事實表的粒度一致。事實有可加性、半可加性、非可加性三種類型,需要將不可加性事實分解為可加的組件。Step5:冗余維度。冗余維度是在kimball維度建模方法基礎(chǔ)上新增的步驟。主要是因為在大數(shù)據(jù)的事實表模型設(shè)計中,需要考慮更多的是提高下游用戶的使用效率,降低數(shù)據(jù)獲取的復(fù)雜性,減少關(guān)聯(lián)的表數(shù)量。所以通常事實表中會冗余方便下游用戶使用的常用維度,以實現(xiàn)對事實表的過濾查詢、控制聚合層次、排序數(shù)據(jù)以及定義主從關(guān)系等操作。

04有事實的事實表有事實表分為三種類型:

事務(wù)事實表、周期快照事實表和累積快照事實表。事務(wù)事實表單事務(wù)事實表,針對于每個業(yè)務(wù)過程設(shè)計一個事實表,方便每個業(yè)務(wù)過程進(jìn)行獨立分析研究。優(yōu)點:更方便跟蹤業(yè)務(wù)流程細(xì)節(jié)數(shù)據(jù),針對特殊的業(yè)務(wù)分析場景比較方便和靈活,數(shù)據(jù)處理上也更加靈活;弊端:數(shù)倉中需要管理太多的事實表,同時跟蹤業(yè)務(wù)流轉(zhuǎn)不夠直觀多事務(wù)事實表,將不同的事實放到同一個事實表中,即同一個事實表包含不同的業(yè)務(wù)過程。多事務(wù)事實表在設(shè)計時有兩種方法進(jìn)行事實的處理:一是不同業(yè)務(wù)過程的事實使用不同的事實字段進(jìn)行存放:二是不同業(yè)務(wù)過程的事實使用同一個事實字段進(jìn)行存放,但增加一個業(yè)務(wù)過程標(biāo)簽。優(yōu)點:能夠更直觀的跟蹤業(yè)務(wù)流轉(zhuǎn)和當(dāng)前狀態(tài),流程事實集中,方便大部分的通用分析應(yīng)用場景,由于和業(yè)務(wù)側(cè)的數(shù)據(jù)模型設(shè)計思路一致,也是目前最常用的事實表設(shè)計;弊端:細(xì)節(jié)數(shù)據(jù)跟蹤不到位,特殊場景的分析不夠靈活;兩種表的設(shè)計區(qū)別在于對業(yè)務(wù)流程的拆分思路不同,具體選擇事實表的構(gòu)建思路,需要根據(jù)實際的業(yè)務(wù)確定,一般建議兩者結(jié)合。父子事實的處理方式,通過分?jǐn)偢赣唵蔚慕痤~將所有業(yè)務(wù)過程的度量全部帶進(jìn)淘寶交易事務(wù)事實表中,包括下單數(shù)量、商品價格、子訂單折扣、下單分?jǐn)偙壤?、父訂單支付金額、父訂單支付郵費、父訂單折扣、子訂單下單金額、子訂單下單有效金額、支付分?jǐn)偙壤?、子訂單支付金額等,將父子事實同時冗余到事務(wù)表中。設(shè)計準(zhǔn)則事實完整性事實表包含與其描述的過程有關(guān)的所有事實,即盡可能多地獲取所有的度量。事實一致性在確定事務(wù)事實表的事實時,明確存儲每一個事實以確保度量的一致性。事實可加性事實表確定事實時,往往會遇到非可加性度量,比如分?jǐn)偙壤?、利潤率等,雖然它們也是下游分析的關(guān)鍵點,但往往在事務(wù)事實表中關(guān)注更多的是可加性事實,下游用戶在聚合統(tǒng)計時更加方便。周期快照事實表快照事實表在確定的問隔內(nèi)對實體的度量進(jìn)行抽樣,這樣可以很容易地研究實體的度量值,而不需要聚集長期的事務(wù)歷史。特征用快照采樣狀態(tài)快照事實表以預(yù)定的間隔采樣狀態(tài)度量。這種間隔聯(lián)合一個或多個維度,將被用來定義快照事實表的粒度,每行都將包含記錄所涉及狀態(tài)的事實。快照粒度事務(wù)事實表的粒度可以通過業(yè)務(wù)過程中所涉及的細(xì)節(jié)程度來描述,但快照事實表的粒度通??偸潜欢嗑S聲明,可以簡單地理解為快照需要采樣的周期以及什么將被采樣。密度與稀疏性快照事實表和事務(wù)事實表的一個關(guān)鍵區(qū)別在密度上。事務(wù)事實表是稀疏的,只有當(dāng)天發(fā)生的業(yè)務(wù)過程,事實表才會記錄該業(yè)務(wù)過程的事實,如下單、支付等;而快照事實表是稠密的,無論當(dāng)天是否有業(yè)務(wù)過程發(fā)生,都會記錄一行,比如針對賣家的歷史至今的下單和支付金額,無論當(dāng)天賣家是否有下單支付事實,都會給該賣家記錄一行。半可加性在快照事實表中收集到的狀態(tài)度量都是半可加的。與事務(wù)事實表的可加性事實不同,半可加性事實不能根據(jù)時間維度獲得有意義的匯總結(jié)果。設(shè)計實例單維度的每天快照事實表確定粒度、確定維度混合維度的每天快照事實表確定粒度、確定維度、確定狀態(tài)度量全量快照事實表相比單維度的快照事實表,多了一些冗余維度。例如,商品評價表,多了子訂單維度、商品維度、評論者維度。累計快照事實表對于類似于研究事件之間時間間隔的需求,采用累計快照事實表可以很好地解決。如在統(tǒng)計買家下單到支付的時長、買家支付到賣家發(fā)貨的時長等,事務(wù)事實表很難滿足,需要用到累計快照事實表。特征數(shù)據(jù)不斷更新針對于實體中的某一實例定期更新。多業(yè)務(wù)過程日期累積快照事實表適用于具有較明確起止時間的短生命周期的實體,比如交易訂單、物流訂單等,對于實體的每一個實例,都會經(jīng)歷從誕生到消亡等一系列步驟。對于商品、用戶等具有長生命周期的實體,一般采用周期快照事實表更合適。累積快照事實表的典型特征是多業(yè)務(wù)過程日期,用于計算業(yè)務(wù)過程之間的時間間隔。但結(jié)合阿里巴巴數(shù)據(jù)倉庫模型建設(shè)的經(jīng)驗,對于累積快照事實表,還有一個重要作用是保存全量數(shù)據(jù)。特殊處理非線性過程淘寶一般流程是:下單、支付、發(fā)貨、確認(rèn)收貨。但并不是所有的交易都會走此流程,比如買家下單之后不支付或關(guān)閉訂單。針對這種非線性過程,處理情況主要有以下幾種:(1)業(yè)務(wù)過程的統(tǒng)一我們以流程結(jié)束標(biāo)志為依據(jù),關(guān)閉訂單也是結(jié)束標(biāo)志,統(tǒng)一起來。(2)針對業(yè)務(wù)關(guān)鍵里程碑構(gòu)建全面的流程對于沒有支付或沒有發(fā)貨的交易訂單也將其納入流程來,相關(guān)的業(yè)務(wù)字段置孔。(3)循環(huán)流程的處理主要解決問題是一個業(yè)務(wù)過程有多個日期。使用業(yè)務(wù)過程的第一次發(fā)生日期還是最近發(fā)生日期,根據(jù)用戶決定。多源過程

針對多源業(yè)務(wù)建模,主要考慮事實表的粒度問題。業(yè)務(wù)過程取舍

當(dāng)擁有大量的業(yè)務(wù)過程時,模型的實現(xiàn)復(fù)雜度會增加,特別是對于多源業(yè)務(wù)過程,模型的精合度過高,此時需要根據(jù)商業(yè)用戶需求,選取關(guān)鍵的里程碑。物理實現(xiàn)邏輯模型和物理模型密不可分,針對累積快照事實表模型設(shè)計,其有不同的實現(xiàn)方式。第一種:增量存儲

以業(yè)務(wù)實體的結(jié)束時間分區(qū)。即每周期僅處理增量部分的數(shù)據(jù),針對狀態(tài)無變化的數(shù)據(jù)比較適合;第二種:全量快照

狀態(tài)有變化,每天的分區(qū)存儲昨天的全量數(shù)據(jù)和當(dāng)天的增量數(shù)據(jù)合并的結(jié)果,對于數(shù)據(jù)量在可控范圍內(nèi)的情況可以采用如下保存策略:如果存儲空間和成本可接受,完整存儲,確保能夠追溯到歷史每天數(shù)據(jù)狀態(tài)存儲空間有限,考慮移動歷史快照數(shù)據(jù)到冷盤,需要使用的時候可恢復(fù)數(shù)據(jù)歷史狀態(tài)數(shù)據(jù)無太大價值,可以考慮部分刪除,比如近保留每月最后一天的快照數(shù)據(jù);第三種:拉鏈

針對于全量表的變化形式,數(shù)據(jù)量大、但緩慢變化、需要跟蹤歷史狀態(tài),和緩慢漸變維類似。設(shè)計準(zhǔn)則同事務(wù)事實表設(shè)計一樣。

05無事實的事實表在維度模型中,事實表用事實來度量業(yè)務(wù)過程,不包含事實或度量的事實表稱為無事實的事實表。雖然沒有明確的事實,但可以用來支持業(yè)務(wù)過程的度量。常見的無事實的事實表主要有如下兩種:

第一種是事件類的,記錄事件的發(fā)生。如阿里巴巴數(shù)據(jù)倉庫中,最常見的是日志類事實表。第二種是條件、范圍或資格類的,記錄維度與維度多對多之間的關(guān)系。如客戶和銷售人員的分配情況、產(chǎn)品的促銷范圍等。

06聚集型事實表數(shù)據(jù)倉庫的性能是數(shù)據(jù)倉庫建設(shè)是否成功的重要標(biāo)準(zhǔn)之一。聚集主要是通過匯總明細(xì)粒度數(shù)據(jù)來獲得改進(jìn)查詢性能的效果。通過訪問聚集數(shù)據(jù),可以減少數(shù)據(jù)庫在響應(yīng)查詢時必須執(zhí)行的工作量,能夠快速響應(yīng)用戶的查詢,同時有利于減少不同用戶訪問明細(xì)數(shù)據(jù)帶來的結(jié)果不一致問題。如阿里巴巴將使用頻繁的公用數(shù)據(jù),通過聚集進(jìn)行沉淀,比如賣家最近l天的交易匯總表、賣家最近N天的交易匯總表、賣家自然年交易匯總表等。這類聚集匯總數(shù)據(jù),被叫作公共匯總層。相對于明細(xì)事實表,聚合事實表通常是在明細(xì)事實表的基礎(chǔ)上,按照一定的粒度粗細(xì)進(jìn)行的匯總、聚合操作,它的粒度較明細(xì)數(shù)據(jù)粒度粗,同時伴隨著細(xì)節(jié)信息的丟失;在數(shù)倉層次結(jié)構(gòu)中,通常位于dws層,一般作為通用匯總數(shù)據(jù)存在,也可以是更高粒度的指標(biāo)數(shù)據(jù)。基本原則一致性

聚集表必須提供與查詢明細(xì)粒度數(shù)據(jù)一致的查詢結(jié)果。避免單一表設(shè)計

不要在同一個表中存儲不同層次的聚集數(shù)據(jù);否則將會導(dǎo)致雙重計算或出現(xiàn)更糟糕的事情。聚集粒度可不同

聚集并不需要保持與原始明細(xì)粒度數(shù)據(jù)一樣的粒度,聚集只關(guān)心所需要查詢的維度?;静襟EStep1:確定聚集維度。Step2:確定一致性上鉆。Step3:確定聚集事實。常見聚集型事實表數(shù)據(jù)倉庫中,按照日期范圍的不同,通常包括以下類別的聚集事實表公共維度層-通用匯總應(yīng)對大部分可預(yù)期的、常規(guī)的數(shù)據(jù)需求,通常針對模式相對穩(wěn)定的分析、BI指標(biāo)計算、特征提取等場景,封裝部分業(yè)務(wù)處理、計算邏輯,盡量避免用戶直接使用底層明細(xì)數(shù)據(jù),該層用到的數(shù)據(jù)范圍比較廣泛。日粒度主要應(yīng)對模式穩(wěn)定的分析、BI日報、特征提取場景,同時日粒度也為后續(xù)累積計算提供粗粒度的底層,數(shù)據(jù)范圍一般為上一日的數(shù)據(jù)。周期性累積主要應(yīng)對明確的周期性分析、BI周期性報表,數(shù)據(jù)范圍一般在某周期內(nèi)的。歷史累積顧名思義,歷史以來某一特定數(shù)據(jù)的累積,通常在用戶畫像、經(jīng)營分析、特征提取方面場景較多,設(shè)計數(shù)據(jù)范

溫馨提示

  • 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

提交評論