離線數(shù)倉基礎(chǔ)理論 V1.0

一颖榜、概述

1.1 概念定義:

本質(zhì)上是一個(gè)數(shù)據(jù)管理系統(tǒng)炬转,
主要功能:
1)整合多源數(shù)據(jù)
2)提供分析接口

1.2 架構(gòu)

數(shù)倉架構(gòu)

涉及框架:
傳輸:DataX笙瑟,MaxWell,F(xiàn)lume,Kafka
存儲(chǔ):Hadoop
分析:Hive
調(diào)度:DolphinScheduler
報(bào)表展示:Superset

二谅将、 建模概述

2.1 意義

1)高性能:快速查詢
2)低成本:減少重復(fù)計(jì)算
3)高效率:提高用戶使用數(shù)據(jù)的效率
4)高質(zhì)量:減少計(jì)算錯(cuò)誤可能性

2.2 建模方法論

  • ER模型
    實(shí)體關(guān)系(Entity Relationship, ER)漾狼,符合3NF


    ER模型舉例
  • 1)實(shí)體關(guān)系模型
    實(shí)體:對(duì)象
    關(guān)系:兩個(gè)實(shí)體之間的關(guān)系
    出發(fā)點(diǎn):整合數(shù)據(jù),減少冗余

  • 2)數(shù)據(jù)庫規(guī)范化
    目的:減少數(shù)據(jù)冗余饥臂,增強(qiáng)數(shù)據(jù)一致性
    六范式:1NF逊躁,2NF,3NF隅熙,BCNF稽煤,4NF,5NF

  • 3)三范式
    ①函數(shù)依賴
    完全函數(shù)依賴 (X ==> Y) && (X' !==> Y)
    部分函數(shù)依賴 (X ==> Y) && (X' ==> Y)
    傳遞函數(shù)依賴 (X ==> Y) && (Y !==> X) && (Y ==> Z)
    ②第一范式 1NF
    原則:屬性不可切割(原子屬性)
    解釋:每一個(gè)元素必須拆解至不能再拆解
    ③第二范式 2NF
    原則:不能存在 部分函數(shù)依賴
    解釋:元素必須只能與主鍵一一對(duì)應(yīng)囚戚,
    ④第三范式 3NF
    原則:不能存在 傳遞函數(shù)依賴
    解釋:

  • 維度模型
    事實(shí):業(yè)務(wù)過程(不可拆分的行為事件)
    維度:業(yè)務(wù)過程發(fā)生時(shí)所處的環(huán)境
    優(yōu)點(diǎn):簡(jiǎn)潔酵熙,清晰
    出發(fā)點(diǎn):數(shù)據(jù)分析


    維度模型舉例

三、維度建模理論--事實(shí)表

3.1 事實(shí)表概述

  • 數(shù)倉維度建模核心
  • 圍繞業(yè)務(wù)過程設(shè)計(jì)
  • 包含:與業(yè)務(wù)過程有關(guān)的維度引用(維度表外鍵)以及業(yè)務(wù)過程的度量(數(shù)字類型字段)
  • 事實(shí)表特點(diǎn)
    列少驰坊,行多匾二,行增長(zhǎng)快速
  • 事實(shí)表分類
    事務(wù)事實(shí)表、周期快照事實(shí)表拳芙、累積快照事實(shí)表

3.2 事務(wù)型事實(shí)表

  • 概述:保存各業(yè)務(wù)過程的原子操作事件察藐,最細(xì)力度的操作事件
  • 設(shè)計(jì)步驟:
    1、選擇業(yè)務(wù)過程:一個(gè)業(yè)務(wù)過程對(duì)應(yīng)一個(gè)事務(wù)型事實(shí)表
    2舟扎、聲明粒度:為每個(gè)業(yè)務(wù)聲明粒度(定義每行數(shù)據(jù)的具體含義分飞,應(yīng)盡可能最細(xì))
    3、確認(rèn)維度:確認(rèn)與本表相關(guān)的維度(環(huán)境信息睹限,盡量豐富)
    4譬猫、確認(rèn)事實(shí):確定業(yè)務(wù)的度量值
  • 不足:存量型指標(biāo)、多事務(wù)關(guān)聯(lián)統(tǒng)計(jì)

3.3 周期性快照事務(wù)表

  • 概述:以規(guī)律羡疗、可預(yù)見的時(shí)間間隔記錄事實(shí)染服,用于分析存量型、狀態(tài)型指標(biāo)
  • 設(shè)計(jì)步驟:
    1叨恨、確定粒度:周期(通常選每日)肌索、維度
    2、確認(rèn)事實(shí):業(yè)務(wù)過程特碳、指標(biāo)
  • 事實(shí)(度量值)類型
    1、可加事實(shí):可按照所有相關(guān)維度進(jìn)行累加
    2晕换、半可加事實(shí):只能按照一部分相關(guān)維度進(jìn)行累加
    3午乓、不可加事實(shí):沒有可加性

3.4 累積型快照事實(shí)表

  • 概述:一個(gè)業(yè)務(wù)流程中多個(gè)關(guān)鍵業(yè)務(wù)過程聯(lián)合處理,一般具有多個(gè)日期字段闸准,主要用于分析業(yè)務(wù)過程之間的時(shí)間間隔等需求
  • 設(shè)計(jì)流程
    1益愈、選擇業(yè)務(wù)過程:一個(gè)業(yè)務(wù)流程中的多個(gè)關(guān)鍵業(yè)務(wù)過程(里程碑),多個(gè)關(guān)鍵業(yè)務(wù)過程對(duì)應(yīng)一個(gè)累計(jì)型快照事實(shí)表
    2、聲明粒度:定義每行數(shù)據(jù)的具體含義蒸其,應(yīng)盡可能最細(xì)
    3敏释、確認(rèn)維度:選擇與每個(gè)業(yè)務(wù)過程相關(guān)的維度,至少需要一個(gè)日期維度
    4摸袁、確認(rèn)事實(shí):各業(yè)務(wù)過程的度量值

四钥顽、維度建模理論--維度表

4.1 維度表概述

  • 維度建模基礎(chǔ)
  • 圍繞業(yè)務(wù)過程所處的環(huán)境設(shè)計(jì)
  • 包含:一個(gè)主鍵靠汁,各種維度字段(維度屬性)

4.2 維度表設(shè)計(jì)步驟

  • 確定維度(表)
    維度唯一性:若多個(gè)事實(shí)表與同一維度相關(guān)蜂大,應(yīng)保證維度唯一性(只創(chuàng)建一張維度表)
    維度退化:某維度表屬性很少,此表可省略不創(chuàng)建蝶怔,將該表的屬性直接增加到相關(guān)的事實(shí)表中
  • 確定主維表和相關(guān)維表
    指業(yè)務(wù)系統(tǒng)中與某維度相關(guān)的表奶浦,分主次(一大類表中的“主鍵”===>主表)
  • 確定維度屬性
    1)盡量豐富:表內(nèi)高維
    2)盡量不編碼:文字說明+編碼
    3)盡量沉淀出通用的維度屬性:將獲取復(fù)雜的維度屬性沉淀到維度表中

4.3 維度設(shè)計(jì)

  • 規(guī)范化、反規(guī)范化
    規(guī)范化:范式設(shè)計(jì)踢星,減少冗余澳叉,但表數(shù)量增加。(雪花模型?)
    反規(guī)范化:多表整合沐悦,減少join成洗,提高查詢性能(星型模型?)
    兩種模型的對(duì)比
  • 維度變化
    目的:反映歷史變化
    問題點(diǎn):如何保存維度的歷史狀態(tài)
    1)全量快照表:每天保存一次全量的維度數(shù)據(jù)。
    優(yōu)點(diǎn):簡(jiǎn)單所踊,有效泌枪。
    缺點(diǎn):浪費(fèi)存儲(chǔ)空間(FNNDP,硬盤能值幾個(gè)錢秕岛?碌燕?)
    2)拉鏈表:記錄每條信息的生命周期
    適用場(chǎng)景:數(shù)據(jù)會(huì)變化,但頻率不高的維度(緩慢變化維)
    使用方式:start<=某日期 && end >=某日期继薛,即可獲得某日期的具體數(shù)據(jù)全量切片
  • 多值屬性
    某屬性同時(shí)有多個(gè)值
    1)多值屬性放入同一字段:(key1,value1),(key2,value2)……
    2)多值屬性放入多個(gè)字段:只適用于個(gè)數(shù)固定的情況

五修壕、數(shù)據(jù)倉庫設(shè)計(jì)

5.1 數(shù)倉分層規(guī)劃

  • ODS(Operation Data Store)原始數(shù)據(jù)層:同步(全量、增量)遏考、結(jié)構(gòu)化(非結(jié)構(gòu)化轉(zhuǎn)為結(jié)構(gòu)化)慈鸠、保存歷史數(shù)據(jù)、清洗數(shù)據(jù)

  • CDM(Common Data Model)公共數(shù)據(jù)層:
    數(shù)據(jù)加工與整合灌具、建立一致性維度青团、匯總公共粒度的指標(biāo)、構(gòu)建明細(xì)事實(shí)表
    包含以下三個(gè)層次
    -1. DWD(Data Warehouse Detail)明細(xì)數(shù)據(jù)層:存放事實(shí)表咖楣,保存最小粒度的業(yè)務(wù)過程
    -2. DIM(Dimension)公共維度層:存放維度表督笆,建立一致性維度
    -3. DWS(Data Warehouse Summary)匯總數(shù)據(jù)層:構(gòu)建命名規(guī)范、口徑一致的統(tǒng)計(jì)指標(biāo)诱贿,建立匯總寬表

  • ADS(Application Data Service)數(shù)據(jù)應(yīng)用層:存放指標(biāo)統(tǒng)計(jì)結(jié)果
    分層規(guī)劃
  • 數(shù)據(jù)流向:

    如下圖所示娃肿。ODS層和DWD層會(huì)放在數(shù)據(jù)中間件中咕缎,供下游訂閱使用。而DWS層和ADS層的數(shù)據(jù)通常會(huì)落地到在線存儲(chǔ)系統(tǒng)中料扰,下游通過接口調(diào)用的形式使用凭豪。
    數(shù)據(jù)流向
  • 層次調(diào)用規(guī)范
    ADS應(yīng)用層優(yōu)先調(diào)用數(shù)據(jù)倉庫公共層數(shù)據(jù)。如果已經(jīng)存在CDM層數(shù)據(jù)晒杈,不允許ADS應(yīng)用層跨過CDM中間層從ODS層重復(fù)加工數(shù)據(jù)嫂伞。CDM中間層應(yīng)該積極了解應(yīng)用層數(shù)據(jù)的建設(shè)需求,將公用的數(shù)據(jù)沉淀到公共層桐智,為其他數(shù)據(jù)層次提供數(shù)據(jù)服務(wù)末早。同時(shí),ADS應(yīng)用層也需積極配合CDM中間層進(jìn)行持續(xù)的數(shù)據(jù)公共建設(shè)的改造说庭。避免出現(xiàn)過度的ODS層引用然磷、不合理的數(shù)據(jù)復(fù)制和子集合冗余】浚總體遵循的層次調(diào)用原則如下:
    1姿搜、ODS層數(shù)據(jù)不能直接被應(yīng)用層任務(wù)引用。如果中間層沒有沉淀的ODS層數(shù)據(jù)捆憎,則通過CDM層的視圖訪問舅柜。CDM層視圖必須使用調(diào)度程序進(jìn)行封裝,保持視圖的可維護(hù)性與可管理性躲惰。
    CDM層任務(wù)的深度不宜過大(建議不超過10層)致份。
    2、一個(gè)計(jì)算刷新任務(wù)只允許一個(gè)輸出表础拨,特殊情況除外氮块。
    3、如果多個(gè)任務(wù)刷新輸出一個(gè)表(不同任務(wù)插入不同的分區(qū))诡宗,DataWorks上需要建立一個(gè)虛擬任務(wù)滔蝉,依賴多個(gè)任務(wù)的刷新和輸出。通常塔沃,下游應(yīng)該依賴此虛擬任務(wù)蝠引。
    4、CDM匯總層優(yōu)先調(diào)用CDM明細(xì)層蛀柴,可累加指標(biāo)計(jì)算螃概。CDM匯總層盡量?jī)?yōu)先調(diào)用已經(jīng)產(chǎn)出的粗粒度匯總層,避免大量匯總層數(shù)據(jù)直接從海量的明細(xì)數(shù)據(jù)層中計(jì)算得出鸽疾。
    5谅年、CDM明細(xì)層累計(jì)快照事實(shí)表優(yōu)先調(diào)用CDM事務(wù)型事實(shí)表,保持?jǐn)?shù)據(jù)的一致性產(chǎn)出肮韧。
    6、有針對(duì)性地建設(shè)CDM公共匯總層,避免應(yīng)用層過度引用和依賴CDM層明細(xì)數(shù)據(jù)弄企。

5.2 數(shù)倉構(gòu)建流程

整體構(gòu)建流程
  • 數(shù)據(jù)調(diào)研
    -1. 業(yè)務(wù)調(diào)研:
    ①熟悉業(yè)務(wù)流程:明確每個(gè)現(xiàn)實(shí)業(yè)務(wù)的具體流程超燃,拆分為抽象的業(yè)務(wù)過程(不可拆分的行為事件)
    ②熟悉業(yè)務(wù)數(shù)據(jù):將數(shù)據(jù)與業(yè)務(wù)過程對(duì)應(yīng)起來,明確每個(gè)業(yè)務(wù)過程對(duì)哪些表的數(shù)據(jù)產(chǎn)生哪些影響(具體到對(duì)表拘领、數(shù)據(jù)條目的操作邏輯)
    -2. 需求分析:
    明確需求所需的業(yè)務(wù)過程及維度
    考慮三個(gè)問題意乓,幫助分析
    -業(yè)務(wù)數(shù)據(jù)是根據(jù)什么(維度、粒度)匯總的约素,衡量標(biāo)準(zhǔn)是什么届良?例如,成交量是維度圣猎,訂單數(shù)是成交量的度量士葫。
    -明細(xì)數(shù)據(jù)層和匯總數(shù)據(jù)層應(yīng)該如何設(shè)計(jì)?公共維度層該如何設(shè)計(jì)送悔?是否有公共的指標(biāo)慢显?
    -數(shù)據(jù)是否需要冗余或沉淀到匯總數(shù)據(jù)層中?

  • 劃分?jǐn)?shù)據(jù)域
    數(shù)據(jù)域是指面向業(yè)務(wù)分析欠啤,將業(yè)務(wù)過程或者維度進(jìn)行抽象的集合荚藻。
    目的:便于數(shù)據(jù)的管理和應(yīng)用
    劃分依據(jù):業(yè)務(wù)過程(一個(gè)業(yè)務(wù)過程只能屬于一個(gè)數(shù)據(jù)域)、部門

  • 構(gòu)建業(yè)務(wù)總線矩陣
    包含所有事實(shí)(業(yè)務(wù)過程)及維度洁段,以及兩者之間的關(guān)系应狱。
    矩陣的行是業(yè)務(wù)過程,列是維度祠丝。
    一個(gè)業(yè)務(wù)過程對(duì)應(yīng)一張事務(wù)型事實(shí)表疾呻,一個(gè)維度則對(duì)應(yīng)一張維度表。

  • 明確統(tǒng)計(jì)指標(biāo)
    1纽疟、原子指標(biāo) = 業(yè)務(wù)過程 + 度量值 + 聚合邏輯
    2罐韩、派生指標(biāo) = 原子指標(biāo) + 統(tǒng)計(jì)周期 + 業(yè)務(wù)限定(修飾詞) + 統(tǒng)計(jì)粒度(groupBy)
    3、衍生指標(biāo) = 在一個(gè)或多個(gè)派生指標(biāo)的基礎(chǔ)上計(jì)算而來
    4污朽、 指標(biāo)體系意義:
    大多數(shù)需求都之間或間接對(duì)應(yīng)一個(gè)或多個(gè)派生指標(biāo)散吵,那么,當(dāng)需求足夠多時(shí)蟆肆,必然出現(xiàn)部分統(tǒng)計(jì)需求對(duì)應(yīng)的派生指標(biāo)相同的情況矾睦。這種情況下,考慮將公共的派生指標(biāo)保存下來炎功,減少重復(fù)計(jì)算枚冗,提高數(shù)據(jù)的復(fù)用性。
    公共的平派生指標(biāo)統(tǒng)一保存在數(shù)倉的DWS層

  • 維度模型設(shè)計(jì)
    構(gòu)建業(yè)務(wù)總線矩陣的過程就是設(shè)計(jì)維度模型的過程蛇损。但是需要注意的是赁温,總線矩陣中通常只包含事務(wù)型事實(shí)表坛怪,另外兩種類型的事實(shí)表需單獨(dú)設(shè)計(jì)。
    事實(shí)表存儲(chǔ)在DWD層
    維度表存在DIM層

  • 匯總模型設(shè)計(jì)
    匯總模型的設(shè)計(jì)參考上述整理出的指標(biāo)體系(主要是派生指標(biāo))即可股囊。
    匯總表與派生指標(biāo)的對(duì)應(yīng)關(guān)系是:一張匯總表通常包含業(yè)務(wù)過程相同袜匿、統(tǒng)計(jì)周期相同、統(tǒng)計(jì)粒度相同的多個(gè)派生指標(biāo)稚疹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末居灯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子内狗,更是在濱河造成了極大的恐慌怪嫌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柳沙,死亡現(xiàn)場(chǎng)離奇詭異岩灭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)偎行,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門川背,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛤袒,你說我怎么就攤上這事熄云。” “怎么了妙真?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵缴允,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我珍德,道長(zhǎng)练般,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任锈候,我火速辦了婚禮薄料,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泵琳。我一直安慰自己摄职,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布获列。 她就那樣靜靜地躺著谷市,像睡著了一般。 火紅的嫁衣襯著肌膚如雪击孩。 梳的紋絲不亂的頭發(fā)上迫悠,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音巩梢,去河邊找鬼创泄。 笑死艺玲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鞠抑。 我是一名探鬼主播板驳,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼碍拆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起慨蓝,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤感混,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后礼烈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弧满,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年此熬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了庭呜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡犀忱,死狀恐怖募谎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阴汇,我是刑警寧澤数冬,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站搀庶,受9級(jí)特大地震影響拐纱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哥倔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一秸架、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咆蒿,春花似錦东抹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芽突,卻和暖如春试浙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寞蚌。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工田巴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钠糊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓壹哺,卻偏偏與公主長(zhǎng)得像抄伍,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子管宵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容