<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          系列 | 漫談數(shù)倉第二篇NO.2 數(shù)據(jù)模型(維度建模)

          共 3091字,需瀏覽 7分鐘

           ·

          2021-04-27 10:46

          本文導(dǎo)航

          前言
          model對于數(shù)倉是最核心的東西,數(shù)據(jù)模型是數(shù)據(jù)組織和存儲方法,模型的好壞,決定了數(shù)倉能支撐企業(yè)業(yè)務(wù)多久。
          為什么大多數(shù)企業(yè),數(shù)倉都要重建,這不僅僅是業(yè)務(wù)拓展、發(fā)展迅速,很大一部分是因為模型建的很爛。

          01. 基本概念
          維度建模,是數(shù)據(jù)倉庫大師Ralph Kimball提出的,是數(shù)據(jù)倉庫工程領(lǐng)域最流行的數(shù)倉建模經(jīng)典。
          維度建模以分析決策的需求出發(fā)構(gòu)建模型,構(gòu)建的數(shù)據(jù)模型為分析需求服務(wù),因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規(guī)模復(fù)雜查詢的響應(yīng)性能。
          它是面向分析的,為了提高查詢性能可以增加數(shù)據(jù)冗余,反規(guī)范化的設(shè)計技術(shù)。

          1.1 事實表
          事實表產(chǎn)生于業(yè)務(wù)過程,存儲了業(yè)務(wù)活動或事件提煉出來的性能度量。從最低的粒度級別來看,事實表行對應(yīng)一個度量事件。
          事實表根據(jù)粒度的角色劃分不同,可分為事務(wù)事實表、周期快照事實表、累積快照事實表。
          (1)事務(wù)事實表,用于承載事務(wù)數(shù)據(jù),通常粒度比較低,它是面向事務(wù)的,其粒度是每一行對應(yīng)一個事務(wù),它是最細粒度的事實表,例如產(chǎn)品交易事務(wù)事實、ATM交易事務(wù)事實。
          (2)周期快照事實表,按照一定的時間周期間隔(每天,每月)來捕捉業(yè)務(wù)活動的執(zhí)行情況,一旦裝入事實表就不會再去更新,它是事務(wù)事實表的補充。用來記錄有規(guī)律的、固定時間間隔的業(yè)務(wù)累計數(shù)據(jù),通常粒度比較高,例如賬戶月平均余額事實表。
          (3)累積快照事實表,用來記錄具有時間跨度的業(yè)務(wù)處理過程的整個過程的信息,每個生命周期一行,通常這類事實表比較少見。
          注意:這里需要值得注意的是,在事實表的設(shè)計時,一定要注意一個事實表只能有一個粒度,不能將不同粒度的事實建立在同一張事實表中。

          1.2 維度表   
          維度表,一致性維度,業(yè)務(wù)過程的發(fā)生或分析角度,我們主要關(guān)注下退化維度和緩慢變化維

          (1)退化維度(DegenerateDimension)
          在維度類型中,有一種重要的維度稱作為退化維度,亦維度退化一說。這種維度指的是直接把一些簡單的維度放在事實表中。退化維度是維度建模領(lǐng)域中的一個非常重要的概念,它對理解維度建模有著非常重要的作用,退化維度一般在分析中可以用來做分組使用。

          (2)緩慢變化維Slowly Changing Dimensions
          維度的屬性并不是始終不變的,它會隨著時間的流逝發(fā)生緩慢的變化,這種隨時間發(fā)生變化的維度我們一般稱之為緩慢變化維(SCD)。

          SCD常用的三種處理方式:

          TYPE1 直接覆蓋原值
          TYPE2 增加維度行
               在為維度成員增加新行時,需為其分配新的主代理鍵。并且,至少需要在維度行再增加三列:有效日期、截止日期、行標(biāo)識。這個地方可聯(lián)想拉鏈表設(shè)計。
          ③ TYPE3 增加屬性列 
          ④ 混合方式
          可根據(jù)實際業(yè)務(wù)場景,混合或選擇使用以上三種方式,以快速方便而又準(zhǔn)確的分析歷史變化情況。

          1.3 粒度
          用于確定某一事實表中的行表示什么,是業(yè)務(wù)最小活動單元或不同維度組合,即業(yè)務(wù)細節(jié)程度。

          1.4 維度建模流程
          維度建模步驟:選擇業(yè)務(wù)過程->聲明粒度->確定維度->確定事實。旨在重點解決數(shù)據(jù)粒度、維度設(shè)計和事實表設(shè)計問題。


          聲明粒度,為業(yè)務(wù)最小活動單元或不同維度組合。以共同粒度從多個組織業(yè)務(wù)過程合并度量的事實表稱為合并事實表,需要注意的是,來自多個業(yè)務(wù)過程的事實合并到合并事實表時,它們必須具有同樣等級的粒度。

          02.建模方法 -- 經(jīng)典數(shù)據(jù)倉庫模型

          數(shù)據(jù)倉庫建模方法論可分為:維度建模、范式建模、Data Vault模型、Anchor模型。


          2.1 維度模型
          企業(yè)中最流行、也是最經(jīng)典的數(shù)倉建模經(jīng)典,數(shù)據(jù)倉庫大師Ralph Kimball的經(jīng)典著作《數(shù)據(jù)倉庫工具箱 維度建模權(quán)威指南 第三版》一本書進行了論述。從事數(shù)據(jù)倉庫/ETL/BI的同學(xué),強烈建議買一本至少讀一遍。
          按數(shù)據(jù)組織類型劃分可分為星型模型、雪花模型、星座模型。

          (1)星型模型
          星型模型主要是維表和事實表,以事實表為中心,所有維度直接關(guān)聯(lián)在事實表上,呈星型分布。

          圖來源于Kimball《The Data Warehouse Toolkits -3rd Edition》

          (2)雪花模型
          雪花模型,在星型模型的基礎(chǔ)上,維度表上又關(guān)聯(lián)了其他維度表。這種模型維護成本高,性能方面也較差,所以一般不建議使用。尤其是基于hadoop體系構(gòu)建數(shù)倉,減少join就是減少shuffle,性能差距會很大。

          (3)星座模型
          星座模型,是對星型模型的擴展延伸,多張事實表共享維度表。數(shù)倉模型建設(shè)后期,大部分維度建模都是星座模型。

          2.2 范式模型
          即 實體關(guān)系(ER)模型,數(shù)據(jù)倉庫之父Immon提出的,從全企業(yè)的高度設(shè)計一個3NF模型,用實體加關(guān)系描述的數(shù)據(jù)模型描述企業(yè)業(yè)務(wù)架構(gòu),在范式理論上符合3NF。此建模方法,對建模人員的能力要求非常高。



          2.3 Data Vault模型
          DataVault由Hub(關(guān)鍵核心業(yè)務(wù)實體)、Link(關(guān)系)、Satellite(實體屬性) 三部分組成 ,是Dan Linstedt發(fā)起創(chuàng)建的一種模型方法論,它是在ER關(guān)系模型上的衍生,同時設(shè)計的出發(fā)點也是為了實現(xiàn)數(shù)據(jù)的整合,并非為數(shù)據(jù)決策分析直接使用。

          2.4 Anchor模型
          高度可擴展的模型,所有的擴展只是添加而不是修改,因此它將模型規(guī)范到6NF,基本變成了K-V結(jié)構(gòu)模型。企業(yè)很少使用,本文不多做介紹。

          03. 建模工具

          建模工具,一般企業(yè)以Erwin、powerdesigner、visio,甚至Excel等為主。也有些企業(yè)自行研發(fā)工具,或使用阿里等成熟套裝組件產(chǎn)品。

          3.1 PowerDesigner
          是Sybase的企業(yè)建模和設(shè)計解決方案,是能進行數(shù)據(jù)庫設(shè)計的強大的軟件,是一款開發(fā)人員常用的數(shù)據(jù)庫建模工具。使用它可以分別從概念數(shù)據(jù)模型(Conceptual Data Model)和物理數(shù)據(jù)模型(Physical Data Model)兩個層次對數(shù)據(jù)庫進行設(shè)計。


          3.2 ERWin 
          全稱是ERwin Data Modeler,是CA公司的數(shù)據(jù)建模工具。ERwin提供數(shù)據(jù)庫結(jié)構(gòu),管理界面的容易簡單,圖形顯示對視覺復(fù)雜。

          另附一張 www.erwinchina.com  中文官網(wǎng)首頁截圖,這幾句話很霸氣有木有~~


          3.3 Visio 
          Visio 是Office 軟件系列中的負責(zé)繪制流程圖和示意圖的軟件,是一款便于IT和商務(wù)人員就復(fù)雜信息、系統(tǒng)和流程進行可視化處理、分析和交流的軟件。同時它也可以用來數(shù)據(jù)庫建模。
          打開visio 2010,文件—>新建—>數(shù)據(jù)庫—>數(shù)據(jù)庫模型圖。建立數(shù)據(jù)庫模型圖之后,菜單欄多出一個菜單項"數(shù)據(jù)庫"。


          3.4  Excel Mapping
          通過我們最熟悉的Excel進行維護數(shù)據(jù)模型、血緣關(guān)系和元數(shù)據(jù)管理,話不多說,直接上圖:


          04. 結(jié)語
          對于數(shù)倉而言,模型就是命脈,好與壞直接決定企業(yè)數(shù)據(jù)存儲、處理和應(yīng)用。
          對于維度建模,真正理解了粒度和一致性維度,也就理解了維度建模的魂。
          對于建模工具,沒有最好只有更好,適合業(yè)務(wù)的就是最好的。

          瀏覽 27
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  啪啪啪网站 | 亚洲三高青在线观看免费 | 国产精品久久久久久久久久久久 | 夜色色综合 | 怡红院院大香蕉 |