阿里大數(shù)據(jù)之路筆記

第二章筆記數(shù)據(jù)模型篇

第八章建模綜述

為什么需要數(shù)據(jù)建模:
  • 性能:快速查詢所需要的數(shù)據(jù),減少數(shù)據(jù)IO吞吐率
  • 成本:降低存儲(chǔ)和計(jì)算成本
  • 效率:提高數(shù)據(jù)使用效率
  • 質(zhì)量:改善數(shù)據(jù)統(tǒng)計(jì)口徑的不一致性
維度模型

設(shè)計(jì)步驟:

  • 選擇要分析決策的業(yè)務(wù)過程:
    單業(yè)務(wù)過程,例:交易的支付,退款;
    事件狀態(tài),例:當(dāng)前賬戶余額;
    業(yè)務(wù)事件組成的業(yè)務(wù)流程
  • 選擇粒度:細(xì)分的程度,粒度是維度的組合.
  • 識(shí)別維表:設(shè)計(jì)維表,維度屬性
  • 選擇事實(shí):確定分析需要衡量的指標(biāo)
    數(shù)據(jù)公共層建設(shè)的目的是著力解決數(shù)據(jù)存儲(chǔ)和計(jì)算的共享問題

第九章數(shù)據(jù)整合及管理體系

建設(shè)方法論核心:從業(yè)務(wù)架構(gòu)設(shè)計(jì)到模型設(shè)計(jì),從數(shù)據(jù)研發(fā)到數(shù)據(jù)服務(wù),做到數(shù)據(jù)可管理,可追溯,可規(guī)避重復(fù)建設(shè)
數(shù)據(jù)接入層:ods;數(shù)據(jù)中間層:dwd和dws層


阿里體系架構(gòu)圖.jpg

名詞解釋:

  • 業(yè)務(wù)板塊:根據(jù)業(yè)務(wù)屬性劃分獨(dú)立的業(yè)務(wù)板塊,板塊之間的指標(biāo)和業(yè)務(wù)重疊性小.
  • 規(guī)范定義:維度建模為基礎(chǔ)構(gòu)建總線矩陣
    阿里規(guī)范定義.jpg
  • 數(shù)據(jù)域:面向業(yè)務(wù)分析,將業(yè)務(wù)過程或者維度進(jìn)行抽象的集合.
    維度:指度量的環(huán)境,例:買家下單事件,買家是維度.
    不輕易變動(dòng),無影響被包含已有數(shù)據(jù)域和擴(kuò)展新數(shù)據(jù)域
  • 業(yè)務(wù)過程:業(yè)務(wù)事件,例:下單,支付,退款;不可拆分的行為事件,業(yè)務(wù)過程下定義指標(biāo).
  • 時(shí)間周期:統(tǒng)計(jì)的時(shí)間范圍或時(shí)間點(diǎn),例:最近30天,自然周,截至當(dāng)日
  • 修飾類型:從屬于某個(gè)業(yè)務(wù)域,例:日志域的訪問終端類型,涵蓋pc端,無線端等修飾詞.
  • 修飾詞:除了統(tǒng)計(jì)維度以外指標(biāo)的業(yè)務(wù)場(chǎng)景限定抽象;屬于修飾類型.
  • 度量/原子指標(biāo):業(yè)務(wù)事件下的度量,不可再拆分指標(biāo),明確業(yè)務(wù)含義的名詞,例:支付金額,有確定的英文字段名,數(shù)據(jù)類型和算法說明.
  • 維度:業(yè)務(wù)的一類屬性,例:地理維度(國(guó)家,地區(qū)等),事件維度(年,季,月,周,日).
  • 維度屬性:屬于一個(gè)維度,例:地理維度里的國(guó)家
  • 派生指標(biāo):等于一個(gè)原子指標(biāo)+多個(gè)修飾詞(可選,或,且的關(guān)系由業(yè)務(wù)決定)+時(shí)間周期;例:派生指標(biāo),最近1天海外買家支付金額(原子指標(biāo):支付金額,最近1天為時(shí)間周期,海外為修飾詞,買家作為維度,不作為修飾詞),歸屬原子指標(biāo),與修飾詞數(shù)據(jù)域無關(guān).
    如果遇到同時(shí)有兩個(gè)行為發(fā)生,需要多個(gè)修飾詞,生成一個(gè)派生指標(biāo)的情況,選擇時(shí)間靠后的行為創(chuàng)建原子指標(biāo),選擇時(shí)間靠前的行為創(chuàng)建修飾詞.

模型設(shè)計(jì)

  • 操作數(shù)據(jù)層(ODS):同步,結(jié)構(gòu)化,累積歷史,清洗數(shù)據(jù)
    數(shù)據(jù)準(zhǔn)備區(qū),離線數(shù)據(jù)和準(zhǔn)實(shí)時(shí)數(shù)據(jù)
  • 公共維度模型層(CDM)
    明細(xì)寬表數(shù)據(jù)層(DWD):事實(shí)數(shù)據(jù),維度數(shù)據(jù),將維度退化到事實(shí)表中,提高明細(xì)表的易用性.
    面向業(yè)務(wù)過程建模:事務(wù)型事實(shí)寬表,周期性快照事實(shí)寬表,累積快照事實(shí)寬表.
    匯總寬表數(shù)據(jù)層(DWS):明細(xì)寬表,提高復(fù)用性;邏輯匯總寬表,公共指標(biāo)統(tǒng)一加工;數(shù)據(jù)分析維表,一致性維度.
    面向分析主題建模:買家,賣家,買賣家,商品,全站,行業(yè),會(huì)員,地區(qū).
  • 應(yīng)用數(shù)據(jù)層(ADS):個(gè)性化指標(biāo):不公用,復(fù)雜性(指數(shù)型,比值型,排名型指標(biāo));應(yīng)用組裝:大寬表集市,橫標(biāo)轉(zhuǎn)縱表,趨勢(shì)指標(biāo)串.存放的是結(jié)果數(shù)據(jù).
    數(shù)據(jù)調(diào)用優(yōu)先使用公共維度層數(shù)據(jù),沒有數(shù)據(jù)進(jìn)行評(píng)估是否需要建設(shè)公共層數(shù)據(jù),不需要時(shí)去使用操作數(shù)據(jù)層數(shù)據(jù),ADS層數(shù)據(jù)不對(duì)外提供數(shù)據(jù)服務(wù).

基本原則

1.高內(nèi)聚,低耦合:將業(yè)務(wù)相近或者相關(guān),粒度相同的數(shù)據(jù)設(shè)計(jì)為一個(gè)邏輯或者物理模型;將高概率同時(shí)訪問的數(shù)據(jù)放一起,低概率訪問數(shù)據(jù)分開存放.
2.核心模型與擴(kuò)展模型分離:不能讓擴(kuò)展模型的字段過度侵入核心模型,以免破壞核心模型的架構(gòu)簡(jiǎn)潔性和可維護(hù)性.
3.公共處理邏輯下沉及單一: 不要讓公用的處理邏輯暴露給應(yīng)用層實(shí)現(xiàn),不要讓公共邏輯多處同時(shí)存在.
4.成本與性能平衡:不宜過度冗余和數(shù)據(jù)重復(fù)
5.數(shù)據(jù)可回滾:處理邏輯不變,在不同時(shí)間多次運(yùn)行數(shù)據(jù)結(jié)果確定不變
6.一致性:具有相同含義的字段在不同表中的命名必須相同.
7.命名清洗,可理解

模型實(shí)施

1.業(yè)務(wù)調(diào)研:業(yè)務(wù)領(lǐng)域,業(yè)務(wù)線的業(yè)務(wù)有什么共同點(diǎn)和不同點(diǎn),以及各個(gè)業(yè)務(wù)線可以細(xì)分為哪幾個(gè)業(yè)務(wù)模塊,每個(gè)業(yè)務(wù)模塊的業(yè)務(wù)流程.


實(shí)施工作流程.jpg

2.架構(gòu)設(shè)計(jì)

數(shù)據(jù)域劃分:
數(shù)據(jù)域劃分.jpg

構(gòu)建總線矩陣:明確每個(gè)數(shù)據(jù)域下有哪些業(yè)務(wù)過程;業(yè)務(wù)過程與哪些維度相關(guān),定義每個(gè)數(shù)據(jù)域下的業(yè)務(wù)過程和維度.
業(yè)務(wù)過程.jpg

3.規(guī)范定義:定義指標(biāo)體系,原子指標(biāo),修飾詞,時(shí)間周期,派生指標(biāo)
4.模型設(shè)計(jì):維度和屬性的定義,維度,明細(xì)事實(shí)表和匯總事實(shí)表的模型設(shè)計(jì).

第十章維度設(shè)計(jì)

  1. 設(shè)計(jì)基礎(chǔ)
    度量稱為事實(shí),環(huán)境描述為維度,維度所包含的表示維度的列,稱為維度屬性,維度的作用一般是查詢約束,分類匯總以及排序等.
    維度和維度屬性的獲取:一方面在報(bào)表中獲取;一方面和業(yè)務(wù)人員交流獲取.常出現(xiàn)在"按照"語句內(nèi),例:
    用戶要"按照"月份和產(chǎn)品來查看銷售情況,
    維度使用主鍵標(biāo)識(shí)唯一性:代理鍵:處理緩慢變化維和自然鍵,業(yè)務(wù)含義的鍵.
    對(duì)于前臺(tái)應(yīng)用系統(tǒng)來說,商品ID是代理鍵;對(duì)數(shù)據(jù)倉(cāng)庫(kù)來說,商品id屬于自然鍵.

維度設(shè)計(jì)就是確定維度屬性的過程

  • 選擇維度或新建維度:保證維度的唯一性.
  • 確定主維表
  • 確定相關(guān)維表
  • 確定維度屬性
    1.盡可能生成豐富的維度屬性
    2.盡可能多地給出包括一些富有意義的文字性描述
    3.區(qū)分?jǐn)?shù)值型屬性和事實(shí)
    4.盡量沉淀出通用的維度屬性

維度的層次結(jié)構(gòu)
層次方式或一對(duì)多的方式互相關(guān)聯(lián)
鉆取:一層一層擴(kuò)展,向下鉆取更詳細(xì),向上鉆取更匯總

  • 最高層次
  • 鉆取至行業(yè)層次
  • 鉆取至一級(jí)類目層次

規(guī)范化和反規(guī)范化
聯(lián)機(jī)事務(wù)處理系統(tǒng)(OLTP):采用雪花模型:屬性被實(shí)例化為一系列維度,非單一維度(mysql中的)
聯(lián)機(jī)分析處理系統(tǒng)(OLAP)(數(shù)倉(cāng)采用)
反規(guī)范化:將維度的屬性和層次合并到單一維度中的操作(數(shù)倉(cāng)采用),方便易用性能好
雪花模型:事實(shí)表維度表分支維度表
星型模型:事實(shí)表_維度表

一致性維度和交叉探查
交叉探查:將不同數(shù)據(jù)域的商品的事實(shí)合并在一起進(jìn)行數(shù)據(jù)探查,如計(jì)算轉(zhuǎn)化率等.
維度格式和內(nèi)容要保持一致,否則查探結(jié)果錯(cuò)誤
維度一致性的表現(xiàn)形式

  • 共享維度
  • 一致性上卷,一個(gè)維度屬性是另一個(gè)維度屬性的子集,公共維度屬性結(jié)構(gòu)和內(nèi)容相同.
  • 交叉屬性,兩個(gè)維度具有部分相同的維度屬性.
  1. 維度設(shè)計(jì)高級(jí)主題
    維度整合
    數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的,集成的,非易失的且隨時(shí)間變化的數(shù)據(jù)集合,用來支持管理人員的決策.
    應(yīng)用之間的差異:
  • 應(yīng)用在編碼,命名習(xí)慣,度量單位等方面
  • 應(yīng)用處于性能和可擴(kuò)展性的考慮,采用不同的物理實(shí)現(xiàn).

進(jìn)行數(shù)據(jù)集成:

  • 命名規(guī)范統(tǒng)一
  • 字段類型統(tǒng)一
  • 公共代碼及代碼移植統(tǒng)一
  • 業(yè)務(wù)含義相同的表統(tǒng)一;集成方式:主從表設(shè)計(jì)方式,直接合并,不合并.

表級(jí)別的整合:

  • 垂直整合:不同來源表包含相同的數(shù)據(jù)集,只是存儲(chǔ)的信息不同
  • 水平整合:不同來源表包含不同數(shù)據(jù)集,不同子集之間無法交叉,可以存在部分交叉.
    采用將來源表各個(gè)子集的自然鍵作為聯(lián)合主鍵的方式,并且在物理實(shí)現(xiàn)時(shí)將來源字段作為分區(qū)字段.

水平拆分
維度通??梢园凑疹悇e或類型進(jìn)行細(xì)分.
如何設(shè)計(jì)維度:

  • 方案一將維度的不通分類實(shí)例化為不同維度,同時(shí)在主維度中保存公共屬性.
  • 方案二維護(hù)單一維度,包含所有可能的屬性.
    方案選擇:擴(kuò)展性,效能,易用性
    當(dāng)維度屬性隨類型變化較大時(shí)采用方案一;核心維度穩(wěn)定采用方案二;相關(guān)性較低的業(yè)務(wù)采用方案一.

垂直拆分
維度設(shè)計(jì)時(shí),依據(jù)維度設(shè)計(jì)的原則,盡可能豐富維度屬性,同時(shí)進(jìn)行反規(guī)范化處理.
按照擴(kuò)展性,產(chǎn)出時(shí)間,易用性
主維表存放穩(wěn)定,產(chǎn)出時(shí)間早,熱度高的屬性,從維表存放變化較快,產(chǎn)出時(shí)間晚,熱度低的屬性.

歷史歸檔
面對(duì)龐大的數(shù)據(jù)量,如何設(shè)計(jì)模型,如何降低存儲(chǔ),如何讓下游方便獲取數(shù)據(jù).

  • 策略一同前臺(tái)歸檔策略,在數(shù)倉(cāng)實(shí)現(xiàn)前臺(tái)的歸檔算法,定期歸檔.適用于邏輯簡(jiǎn)單且變更不頻繁的情況.
  • 策略二同前臺(tái)歸檔策略,采用數(shù)據(jù)庫(kù)變更日志的方式.(推薦采用)
  • 策略三數(shù)據(jù)倉(cāng)庫(kù)自定義歸檔策略.
  1. 維度變化
    緩慢變化維
    處理維度的變化的方式
  • 重寫維度值.不保留歷史數(shù)據(jù),始終取最新數(shù)據(jù).
  • 插入新的維度行.
  • 添加維度列.(推薦采用)

快照維表(不推薦不采用)
為什么不使用代理鍵?
原因一數(shù)據(jù)量大,分布式系統(tǒng)不存在事務(wù)概念,某條記錄每次生成相同的代理鍵難度大.
原因二代理鍵會(huì)增加ETL的復(fù)雜性,開發(fā)和維護(hù)成本更高.
如何處理緩慢變化維?
每天保留一份全量快照數(shù)據(jù).
弊端:無變化也會(huì)進(jìn)行存儲(chǔ),存儲(chǔ)資源浪費(fèi).

極限存儲(chǔ)
歷史拉鏈存儲(chǔ):利用維度模型中緩慢變化維的第二種處理方式
增加兩個(gè)時(shí)間戳字段,將所有以天為粒度的變更數(shù)據(jù)都記錄下來.
會(huì)導(dǎo)致分區(qū)過多:

  • 透明化:把對(duì)極限存儲(chǔ)前的表的查詢轉(zhuǎn)換成對(duì)極限存儲(chǔ)表的查詢.
  • 分月做歷史拉鏈表
    不適用于產(chǎn)出量低,變化頻率高的數(shù)據(jù)
    優(yōu)化:
    在做極限存儲(chǔ)前有一個(gè)全量存儲(chǔ)表,全量存儲(chǔ)表僅保留最近一段時(shí)間的全量分區(qū)數(shù)據(jù),歷史數(shù)據(jù)通過映射的方式關(guān)聯(lián)到極限存儲(chǔ)表.即用戶只訪問全量存儲(chǔ)表,對(duì)用戶來說極限存儲(chǔ)表是不可見的
    對(duì)于部分變化頻率頻繁的字段需要過濾,單獨(dú)作為一個(gè)子表.

微型維度(不推薦未使用)
避免維度過度增長(zhǎng).
通過將一部分不穩(wěn)定的屬性從主維度表中移出,并將它們放置到擁有自己代理鍵的新表中來實(shí)現(xiàn).
屬性相互之間沒有直接聯(lián)系,不存在自然鍵.
通過為每個(gè)組合創(chuàng)建新行的一次性過程來加載數(shù)據(jù).

  • 微型維度的極限性
  • ETL邏輯復(fù)雜
  • 破壞了維度的可瀏覽性
  1. 特殊維度
    遞歸層次
    某維度實(shí)例值的層次關(guān)系,均衡層次結(jié)構(gòu)和非均衡層次結(jié)構(gòu)
    層次結(jié)構(gòu)扁平化(推薦使用)
    出現(xiàn)類目為空的情況,由上級(jí)類目進(jìn)行回填.
    層次橋接表(就是mysql的多對(duì)多表關(guān)聯(lián),不推薦)
    適合解決更寬泛的分析問題,靈活性好;但復(fù)雜性高,使用成本高.

行為維度
類似的維度,都和事實(shí)相關(guān),如交易,物流等
行為維度劃分種類:

  • 另一個(gè)維度的過去行為
  • 快照事實(shí)行為維度
  • 分組事實(shí)行為維度,將數(shù)值型事實(shí)轉(zhuǎn)化為枚舉型
  • 復(fù)雜邏輯事實(shí)行為維度,通過復(fù)雜算法加工或多個(gè)事實(shí)綜合加工得到
    兩種處理方式:
  • 將其冗余至現(xiàn)有的維表中
  • 加工成單獨(dú)的行為表
    采用哪種方式:避免維度過快增長(zhǎng),避免耦合度過高.

多值維度
事實(shí)表的一條記錄在某維表中 有多條記錄與之對(duì)應(yīng).
處理方式:

  • 降低事實(shí)表粒度(很多時(shí)候不能降低)
  • 采用多字段
  • 橋接表(不推薦)

雜項(xiàng)維度
由操作型系統(tǒng)中的指示符或者標(biāo)志字段組合而成的,不在一致性維度之列
一個(gè)事實(shí)表中可能會(huì)存在多個(gè)類似的字段,解決方案就是建立雜項(xiàng)維度,將這些字段建立到一個(gè)維表中,在事實(shí)表中只需要保存一個(gè)外鍵即可.

第11章事實(shí)表設(shè)計(jì)

  1. 事實(shí)表基礎(chǔ)
    事實(shí)表特性
    引用的維度和與業(yè)務(wù)過程有關(guān)的度量.
    粒度通過兩種方式表述:一種是維度屬性組合所表示的細(xì)節(jié)程度;一種是所表示的具體業(yè)務(wù)含義.
    度量業(yè)務(wù)的事實(shí)分為:
  • 可加性.可以按照與事實(shí)表關(guān)聯(lián)的任意維度進(jìn)行匯總.
  • 半可加性,事實(shí)只能按照特定維度匯總,不能對(duì)所有維度匯總.
  • 不可加性.比率型事實(shí)
    退化維度:存儲(chǔ)到事實(shí)表中的維度列.

事實(shí)表三種類型:

  • 事務(wù)事實(shí)表.用來描述業(yè)務(wù)過程,跟蹤空間或時(shí)間上某點(diǎn)的度量事件,保存的是最原子的數(shù)據(jù),也稱為原子事實(shí)表
  • 周期快照事實(shí)表.以具有規(guī)律性的,可預(yù)見的時(shí)間間隔記錄事實(shí),時(shí)間間隔如,每天,每月,每年等.
  • 累積快照事實(shí)表.用來表述過程開始和結(jié)束之間的關(guān)鍵步驟事件,覆蓋過程的整個(gè)生命周期,通常具有多個(gè)日期字段來記錄關(guān)鍵時(shí)間點(diǎn),當(dāng)過程隨著生命周期不斷變化時(shí),記錄也會(huì)隨著過程的變化而被修改.

事實(shí)表設(shè)計(jì)原則:

  • 盡可能包含所有與業(yè)務(wù)過程相關(guān)的事實(shí)
  • 只選擇與業(yè)務(wù)過程相關(guān)的事實(shí)
  • 分解不可加事實(shí)為可加性的組件
  • 在選擇維度和事實(shí)之前必須先聲明粒度
  • 在同一個(gè)事實(shí)表中不能有多種不同粒度的事實(shí)
  • 事實(shí)的單位保持一致
  • 對(duì)事實(shí)的null值處理,數(shù)值型建議填充0
  • 使用退化維度提高事實(shí)表的易用性

事實(shí)表設(shè)計(jì)方法:選擇業(yè)務(wù)過程,聲明粒度,確定維度,確定事實(shí).
一步:選擇業(yè)務(wù)過程及確定事實(shí)表類型
明確業(yè)務(wù)需求以后,需要進(jìn)行詳細(xì)的需求分析,對(duì)業(yè)務(wù)的整個(gè)生命周期進(jìn)行分析,明確關(guān)鍵業(yè)務(wù)步驟,從而選擇與需求有關(guān)的業(yè)務(wù)過程.
訂單流轉(zhuǎn)案例:
買家下單-創(chuàng)建訂單-等待買家付款-買家付款-等待賣家發(fā)貨-賣家發(fā)貨-等待買家確認(rèn)收貨-買家確認(rèn)收貨-交易成功
業(yè)務(wù)過程通常使用行為動(dòng)詞表示業(yè)務(wù)的執(zhí)行活動(dòng),業(yè)務(wù)過程有四個(gè):創(chuàng)建訂單,買家付款,賣家發(fā)貨,買家確認(rèn)收貨
二步聲明粒度:事實(shí)表的粒度應(yīng)該選擇為子訂單級(jí)別.
三步確定維度
四步確定事實(shí)
五步冗余維度

  1. 事務(wù)事實(shí)表
    設(shè)計(jì)過程
    任何類型的事件都可以被理解為一種事務(wù),針對(duì)事務(wù)過程構(gòu)建的事實(shí)表,用以跟蹤定義業(yè)務(wù)過程的個(gè)體行為,提供豐富的分析能力,作為數(shù)據(jù)倉(cāng)庫(kù)原子的明細(xì)數(shù)據(jù).
    看具體案例

單事務(wù)事實(shí)表
對(duì)每個(gè)業(yè)務(wù)過程設(shè)計(jì)一個(gè)事實(shí)表

多事務(wù)事實(shí)表
同一個(gè)事實(shí)表包含不同的業(yè)務(wù)過程.
兩種方式:

  • 不同的業(yè)務(wù)過程事實(shí)采用不同的事實(shí)字段進(jìn)行存放:淘寶交易事務(wù)事實(shí)表
  • 不同的業(yè)務(wù)過程事實(shí)使用同一事實(shí)字段進(jìn)行存放,增加業(yè)務(wù)過程標(biāo)簽字段:淘寶收藏商品事務(wù)事實(shí)表
    淘寶交易事務(wù)事實(shí)表:
    如何處理多個(gè)事實(shí):不是當(dāng)前業(yè)務(wù)過程的度量,采取零值處理方式.
    不同業(yè)務(wù)過程如何標(biāo)記:針對(duì)每一個(gè)業(yè)務(wù)過程打一個(gè)標(biāo)簽維度表,標(biāo)記當(dāng)天是否是這個(gè)業(yè)務(wù)過程.

多事務(wù)事實(shí)表選擇:

  • 采用第二種情況:當(dāng)不同業(yè)務(wù)過程的度量比較相似,差異不大時(shí).
  • 采用第一種情況:當(dāng)不同的業(yè)務(wù)過程差異較大時(shí).

對(duì)比:
單事務(wù)與多事務(wù)事實(shí)表對(duì)比.jpg

父子事實(shí)的處理方式:冗余到事務(wù)表中.

事實(shí)的設(shè)計(jì)準(zhǔn)則

  • 事實(shí)完整性.盡可能獲取所有的度量
  • 事實(shí)一致性:確保度量一致性
  • 事實(shí)可加性:
  1. 周期快照事實(shí)表(就是時(shí)間段的數(shù)據(jù)表)
    在確定的間隔內(nèi)對(duì)實(shí)體的度量進(jìn)行抽樣.

特性
快照事實(shí)表的粒度通常以維度形式聲明.
事務(wù)事實(shí)表稀疏的,快照事實(shí)表是稠密的.
事務(wù)事實(shí)表的事實(shí)是完全可加的,快照模型將至少包含一個(gè)用來展示半可加性質(zhì)的事實(shí).

  • 快照采樣狀態(tài)
  • 快照粒度
  • 密度與稀疏性
  • 半可加性

實(shí)例:
確定快照粒度.
確定采樣的狀態(tài)度量.

  • 單維度的每天快照事實(shí)表
  • 混合維度的每天快照事實(shí)表
  • 全量快照事實(shí)表

注意事項(xiàng)

  • 事務(wù)與快照成對(duì)設(shè)計(jì):事務(wù)事實(shí)表基礎(chǔ)上加快照事實(shí)表
  • 附加事實(shí):一般在設(shè)計(jì)周期快照事實(shí)表時(shí)會(huì)附加一些上一個(gè)采樣周期的狀態(tài)度量.
  • 周期到日期度量:
  1. 累積快照事實(shí)表
    研究事件之間時(shí)間間隔的需求.
    設(shè)計(jì)過程:四步
    特點(diǎn):
  • 數(shù)據(jù)不斷更新
  • 多業(yè)務(wù)過程日期:用于計(jì)算業(yè)務(wù)過程之間的時(shí)間間隔;保存全量數(shù)據(jù)
    在公共明細(xì)層需要保存一份全量數(shù)據(jù),存放加工后的事實(shí),并將各維度常用屬性和訂單雜項(xiàng)維度退化到此表中.
    用于數(shù)據(jù)探查,統(tǒng)計(jì)分析,數(shù)據(jù)挖掘.

特殊處理

  • 非線性過程:處理情況主要有:業(yè)務(wù)過程的統(tǒng)一,針對(duì)業(yè)務(wù)關(guān)鍵里程碑構(gòu)建全面的流程,循環(huán)流程的處理.
  • 多源過程
  • 業(yè)務(wù)過程取舍

物理實(shí)現(xiàn)
累積快照事實(shí)表模型設(shè)計(jì)

  • 全量表形式:一般為日期分區(qū)表,每天的分區(qū)存儲(chǔ)昨天的全量數(shù)據(jù)和當(dāng)天的增量數(shù)據(jù)合并的結(jié)果,保證每條記錄的狀態(tài)最新.適用于全量數(shù)據(jù)較少的情況.
  • 全量表的變化形式:主要針對(duì)事實(shí)表數(shù)據(jù)量很大的情況.較短生命周期的業(yè)務(wù)實(shí)體一般從產(chǎn)生到消亡都有一定的時(shí)間間隔.
  • 以業(yè)務(wù)實(shí)體的結(jié)束時(shí)間分區(qū).可能存在極特殊情況,業(yè)務(wù)系統(tǒng)無法標(biāo)識(shí)業(yè)務(wù)實(shí)體的結(jié)束時(shí)間.方式一:使用相關(guān)的業(yè)務(wù)系統(tǒng)的業(yè)務(wù)實(shí)體的結(jié)束標(biāo)志作為此業(yè)務(wù)系統(tǒng)的結(jié)束標(biāo)識(shí).方式二:和前端業(yè)務(wù)系統(tǒng)確定口徑或使用前端歸檔策略.
  1. 三種事實(shí)表比較


    三種事實(shí)表對(duì)比.jpg
  2. 無事實(shí)的事實(shí)表
    不包含事實(shí)或度量的事實(shí)表

  • 事件類,記錄事件的發(fā)生
  • 條件,范圍或資格類的,記錄維度與維度多對(duì)多之間的關(guān)系.
  1. 聚集型事實(shí)表
    聚集主要是通過匯總明細(xì)粒度數(shù)據(jù)來獲取改進(jìn)查詢性能的效果.
    使用頻繁的公用數(shù)據(jù),通過聚集進(jìn)行沉淀.
    聚集匯總數(shù)據(jù)在公共匯總層

基本原則:

  • 一致性.必須提供與查詢明細(xì)粒度數(shù)據(jù)一致的查詢結(jié)果.方法是確保聚集星型模型中的維度和度量與原始模型中的維度度量保持一致.
  • 避免單一表設(shè)計(jì).不在同一個(gè)表中存儲(chǔ)不同層次的聚集數(shù)據(jù).方法一:聚集時(shí)顯式地加入數(shù)據(jù)層級(jí)列以示區(qū)別.方法二:把按天按月匯總的交易額用兩列存放,注意在列名能分辨出來.
  • 聚集粒度可不同.

聚集的基本步驟

  • 確定聚集維度
  • 確定一致性上鉆.
  • 確定聚集事實(shí).

公共匯總層
基本原則

  • 數(shù)據(jù)公用性
  • 不跨數(shù)據(jù)域
  • 區(qū)分統(tǒng)計(jì)周期
    交易匯總表設(shè)計(jì)
    聚集是指針對(duì)原始明細(xì)粒度的數(shù)據(jù)進(jìn)行匯總
  • 按商品粒度匯總
  • 按賣家粒度匯總
  • 按買家,賣家,商品粒度匯總
  • 按二級(jí)類目匯總

聚集補(bǔ)充說明

  • 聚集是不跨越事實(shí)的:聚集是針對(duì)原始星型模型的匯總,聚集的維度和度量必須與原始模型保持一致,聚集不跨越事實(shí).融合事實(shí)表是一種導(dǎo)出形式而不是聚集.
  • 聚集帶來的問題.當(dāng)類目進(jìn)行變更時(shí),聚集表需要重新調(diào)整,方法:刪除重新聚集.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容