继夫的玩弄H辣文的小说|女人与拘性猛交视频|精品欧美高清不卡高清|一起做亏亏的事情的视频|啦啦啦在线视频观看|望月直播下载ios版本|国产日韩欧美一区二区三区

全 數據模型建設方法總結

粒度的聲明是事實表建模非常重要的一步 , 意味著精確定義事實表 的每一行所表示的業務含義,粒度傳遞的是與事實表度量有關的細節層次 。明確的粒度能確保對事實表中行的意思的理解不會產生混淆,保證所有的事實按照同樣的細節層次記錄 。
應該盡量選擇最細級別的原子粒度讀寫分離 oracle 應用層,以確保事實表的應用具有最大的靈活性 。同時對于訂單過程而言,粒度可以被定義為最細的訂單級別 。比如在淘寶訂單中有父子訂單的概念,即一個子訂單對應一種商品,如 果拍下了多種商品 , 則每種商品對應一個子訂單:這些子訂單一同結算 的話,則會生成一個父訂單 。那么在這個例子中,事實表的粒度應該選擇為子訂單級別 。
確定維度
完成粒度聲明以后,也就意味著確定了主鍵,對應的維度組合以及相關的維度字段就可以確定了,應該選擇能夠描述清楚業務過程所處的環境的維度信息 。比如在淘寶訂單付款事務事實表中,粒度為子訂單 , 相關的維度有買家、賣家、商品、收貨人信息 、業務類型、訂單時間等維度 。
確定事實
事實可以通過回答“過程的度量是什么”來確定 。應該選擇與業務 過程有關的所有事實,且事實的粒度要與所聲明的事實表的粒度一致 。事實有可加性、半可加性、非可加性三種類型 ,需要將不可加性事實分解為可加的組件 。
比如在淘寶訂單付款事務事實表中,同粒度的事實有子訂單分攤的支付金額、郵費、優惠金額等 。
冗余維度
在傳統的維度建模的星形模型中,對維度的處理是需要單獨存放在專門的維表中的,通過事實表的外鍵獲取維度 。這樣做的目的是為了減少事實表的維度冗余 , 從而減少存儲消耗 。而在大數據的事實表模型設計中,考慮更多的是提高下游用戶的使用效率,降低數據獲取的復雜性 , 減少關聯的表數量 。所以通常事實表中會冗余方便下游用戶使用的常用維度,以實現對事實表的過濾查詢、控制聚合層次、排序數據以及定義主從關系等操作 。
比如在淘寶訂單付款事務事實表中,通常會冗余大量的常用維度字段,以及商品類目、賣家店鋪等維度信息 。
4.2 事務事實表
訂單作為交易行為的核心載體,直觀反映了交易的狀況 。訂單的流轉會產生很多業務過程,而下單、支付和成功完結三個業務過程是整個 訂單的關鍵節點 。獲取這三個業務過程的筆數、金額以及轉化率是日常 數據統計分析的重點,事務事實表設計可以很好地滿足這個需求 。本節 將介紹三種不同事務事實表的設計方式,以及在淘寶交易訂單中關于郵 費和折扣分攤到子訂單的算法 。
4.2.1 設計過程
任何類型的事件都可以被理解為一種事務 。比如交易過程中的創建 訂單、買家付款,物流過程中的攬貨、發貨、簽收,退款中的申請退 款、 申請小二介入等,都可以被理解為一種事務 。事務事實表,即針對這些過程構建的一類事實表,用以跟蹤定義業務過程的個體行為,提供豐富的分析能力,作為數據倉庫原子的明細數據 。下面以淘寶交易事務事實表為例,闡述事務事實表的一般設計過程 。
選擇業務過程
圖 4.1 給出了淘寶交易訂單的流轉過程,其中介紹了四個重要過程:創建訂單、買家付款、 賣家發貨、買家 確認收貨,即下單、支付 、 發貨和成功完結四個業務過程 。這四個業務過程不僅是交易過程中的重要時間節點  , 而且也是下游統計分析的重點 , 因此淘寶交易事務事實表 設計著重從這四個業務過程進行展開。
維度建模理論認為 , 為了便于進行獨立的分析研究,應該為每個業務過程建立一個事實表 。對于是否將不同業務過程放到同一個事實表 中,將在下一節中詳細介紹 。
確定粒度
業務過程選定以后,就要針對每個業務過程確定一個粒度,即確定事務事實表每一行所表達的細節層次 。下面先介紹淘寶訂單的產生過程 。
對于每一種商品產生的訂單就稱為子訂單,子訂單記錄了父訂單的訂單號,并且有子訂單標志 。如果在同一個店鋪只購買了一種商品,則會將父子訂單進行合并,只保留一條訂單記錄 。如圖 4.2 和圖 4.3 所示示例 。
賣家發貨這個業務過程可以選擇子訂單粒度,即將每個子訂 單作為賣家發貨事實表的一個細節 。然而,在實際操作中發現,賣家發貨更多的是物流單粒度而非子訂單粒度,同 一個子訂單可以拆開成多個物流單進行發貨 。在事務事實表設 計過程中,秉承確定為最細粒度的原則,因此對于賣家發貨確定為物流單粒度,和其他三個業務過程不同 , 這樣可以更好地給下游統計分析帶來靈活性 。
確定維度
選定好業務過程并且確定粒度后,就可以確定維度信息了 。在淘寶交易事務事實表設計過程中,按照經常用于統計分析的場景,確定維度包含: 買家、賣家、商品、商品類目、發貨地區、收貨地區、父訂單維度以及雜 項維度 。由于訂單的屬性較多,比如訂單的業務類型、是否無線交易、訂單的屬性等 , 對于這些使用較多卻又無法歸屬到上述買賣家或商品維度中的屬性 , 則新建一個雜項維度進行存放,如圖 4.4所示 。
確定事實
作為過程度量的核心,事實表應該包含與其描述過程有關的所有事實 。以淘寶交易事務事實表為例,選定三個業務過程一一下單、支付和 成功完結,不同的業務過程擁有不同的事實 。比如在下單業務過程中,需要包含下單金額、下單數量、下單分攤金額;在支付業務過程中,包含支付金額、分攤郵費、折扣金額、紅包金額、積分金額;在完結業務過程中包含確認收貨金額等 。由于粒度是子訂單,所以對于一些父訂單上的金額需要分攤到子訂單上,比如父訂單郵費、父訂單折扣等 。
5.冗余維度
在確定維度時,包含了買賣家維度、商品維度、類目維度 、收發貨維度等 ,  維度建模理論建議在事實表中只保存這些維表的外鍵 ,  而淘寶交易事務事實表在維度建模基礎之上做了進 一 步的優 化,將買賣家星級、標簽、店鋪名稱、商品類型、商品特征、商品屬性、 類目層級等維度屬性都冗余到事實表中,提高對事實表進行過濾查詢、統計聚合的效率,如圖 4.5 所示。
4.2.2 單事務事實表
單事務事實表,顧名思義 , 即針對每個業務過程設計一個事實表 。這樣設計的優點不言而喻,可以方便地對每個業務過程進行獨立的分析研究 。1688 交易流程則采用這 種模式構建事務事實表 。
1688 交易和淘寶交易相 似,主要流程也是下單、支付、發貨和完結,而在這四個關鍵流程中 1688 交易選擇下單和支付兩個業務過程設 計事務事實表,分別是1688交易訂單下單事務事實表和1688交易訂單支付事務事實表 。
選定業務過程后 , 將對每個業務過程確定粒度、維度和事實 。對于 1688 交易訂單下單事務事實表,確定子訂單粒度,選擇買家、賣家、商品、父訂單、收貨地區維度,事實包含下單分攤金額和折扣金額 , 如 圖4.6 所示;而對于 1688 交易訂單支付事務事實表,粒度和維度與交易訂單下單事務事實表相同,所表達的事實則不 一樣讀寫分離 oracle 應用層,包含支付金額、支付調整金額和支付優惠等,如圖4.7 所示;
1688 交易針對下單和支付分別建立單事務事實表后 , 每天的下單記錄則進入當天的下單事務事實表中,每天的支付記錄進入當天的支付事務事實表中,由于事實表具有稀疏性質 ,因此只有當天數據才會進入當天的事實表中 。下面以具體交易訂單為例,展示單事務事實表的設計實例 。
4.2.3 多事務事實表
多事務事實表,將不同的事實放到同一個事實表中,即同一個事實表包含不同的業務過程 。多事務事實表在設計時有兩種方法進行事實的處理:
如何選擇:
4.2.4 兩種事實表對比
業務過程
對于單事務事實表,一個業務過程建立一個事實表,只反映一個業務過程的事實 ;對于多事務事實表,在同 一個事實表 中反映多個業務過程 。多個業務過程是否放到同一 個事實表中,首先需要分析不同業務過 程之間的相 似性和業務源系統 。比如淘寶交易的下單、支付和成功完結 這三個業務過程是存在相似性的 , 都屬于訂單處理中的 一環,并且都來自于交易系統 ,因此適合放到同 一個事務事實表中 。
粒度和維度
在考慮是采用單事務事實表還是多事務事實表時,另一個關鍵點就是粒度和維度,在確定好業務過程后,需要基于不同的業務過程確定粒度和維度,當不同業務過程的粒度相同,同時擁有相似的維度時,此時就可以考慮采用多事務事實表 。如果粒度不同,則必定是不同的事實表 。比如交易中支付和發貨有不同的粒度,則無法將發貨業務過程放到淘寶交易事務事實表中 。
事實
對于不同的業務過程,事實往往是不同的,單事務事實表在處理事實上比較方便和靈活,僅僅體現同一個業務過程的事實即可,而多事務事實表由于有多個業務過程,所以有更多的事實需要處理 。如果單一業務過程的事實較多,同時不同業務過程的事實又不相同,則可以考慮使 用單事務事實表,處理更加清晰 ; 若使用多事務事實表 ,  則會導致事實表零值或空值字段較多 。
下游業務使用
單事務事實表對于下游用戶而言更容易理解,哪個業務過程就使用相應的事務事實表;而多事務事實表包含多個業務過程,用戶使用時往往較為困惑 。1688 和淘寶交易分別采用了這兩種方式 , 從日常使用來看,對于淘寶交易事務事實表下游用戶確實有 一定的學習成本。
計算存儲成本
針對多個業務過程設計事務事實表 , 是采用單事務事實表還是多事務事實表,對于數據倉庫的計算存儲成本也是參考點之 一,當業務過程 數據來源于同 一個業務系統,具有相同的粒度和維度 , 且維度較多而事實相對不多時,此時可以考慮使用多事務事實表,不僅其加工計算成本 較低,同時在存儲上也相對節?。?是一種較優的處理方式 。
4.2.5 父子事實的處理方式
4.2.6 事實的設計準則
事實完整性:盡可能多地獲取所有的度量事實一致性:事實表中統一計算可以保證度量的一致性(比如金額由數量*單價先在事實表算出來)事實可加性:事務事實表中 更多的是可加性事實,下游用戶在聚合統計時更加方便4.3 周期快照事實表
4.3.1 特性
用快照采樣狀態
快照粒度密度與稀疏性半可加性
4.3.2 實例
4.3.3 注意事項
事務與快照成對設計附加事實周期到日期度量
4.4.1 設計過程
4.4.2 特點
數據不斷更新多業務過程日期
4.4.3 特殊處理
非線性過程多源過程業務過程取舍
4.4.4 物理實現
全量表的形式:此全量表一般為日期分區表,每天的 分區存儲昨天的全量數據和當天的增量數據合并的結果,保證每條記錄 的狀態最新 。此種方式適用于全量數據較少的情況 。全量表的變化形式:比如針對交易訂單,我們以 200 天作為訂單從產生到消亡的最大間隔 。設計最近 200 天的交易訂單累積快照事實表,每天的分 區存儲最近 200 天的交易訂單而 200 天之前的訂單則按照創 建分區存儲在歸檔表中 。業務實體的結束時間分區:每天的分區存放當天結 束的數據,設計一個時間非常大的分區,比如 3000-12-31 ,存放截至當前未結束的數據 。由于每天將當天結束的數據歸檔至當天分區中,時間 非常大的分區數據量不會很大, ETL 性能較好;并且無存儲的浪費,對于業務實體的某具體實例,在該表的全量數據中唯一 。但接口等原因 , 存在結束標志的確認問題,有以下兩個方案:4.5 三種事實表的比較
4.6 無事實的事實表
4.7 聚集型事實表DWS
4.7.1 聚集的基本原則
4.7.2 聚集的基本步驟
確定聚集維度
在原始明細模型中會存在多個描述事實的維度,如日期、商品類別、 賣家等,這時候需要確定根據什么維度聚集,如果只關心商品的交易額 情況,那么就可以根據商品維度聚集數據 。
確定一致性上鉆確定聚集事實
4.7.3 阿里公共匯總層
基本原則交易匯總表設計
4.7.4 聚集補充說明
【全 數據模型建設方法總結】本文到此結束,希望對大家有所幫助 。