1. 程式人生 > >理論篇~第三章 資料模型設計

理論篇~第三章 資料模型設計

常見資料模型介紹 

1 ER模型

    資料倉庫之父Bill Inmon提出的建模方法,是從全企業的高度設計一個3NF模型,用實體關係(Entity Relationship,ER)模型描述企業業務。其具有以下幾個特點:

  •    需要全面瞭解企業業務和資料
  •    實施週期非常長
  •    對建模型人員要求非常高

      採用ER模型建設資料倉庫的出發點是基於整合資料,將各個系統的資料以企業角度按主題進行組合和合並,並進行一致性處理,為資料分析決策服務,但是並不能直接用於分析決策。其建模步驟分為三個階段:

  •    高層模型:一個高度抽象的模型,描述主題與主題之間的關係,用於描述企業的業務總體概況。
  •    中層模型:在高層模型的基礎上,細化主題的資料項。
  •    物理模型:在中層模型的基礎上,考慮物理儲存,同時基於效能和平臺特點進行物理屬性的設計,也可能做一些表的合併、分割槽表的設計等。

2 維度模型

    維度模型是資料倉庫的Ralph Kimball大師所倡導的,也是資料倉庫工程領域最流行 模型。維度建模是從分析決策的需求出發構建模型,為分析需求服務,因此它重點關注使用者如何更快速地完成分析,同時具有較好的大規模複雜查詢的響應效能。其典型的代表是星形模型和雪花模型。其設計步驟分為以下幾個步驟:

  •    選擇需求進行決策的業務過程。業務過程可以是單個業務事件,比如交易的支付、退款等;也可以是某個事件的狀態,比如當前的賬戶餘額等;還可以是一系列相關業務事件組成的業務流程,具體需要看我們分析的是某些事件發生情況,還是當前狀態,或是事件流轉效率。
  •    選擇粒度。預判所分析的資料需要細分到什麼程度,從而決定選擇哪個粒度。
  •    識別維度。選擇好粒度,則圍繞粒度設計維度表,配置維度屬性用於分析資料時進行分組和篩選。
  •    選擇事實。確定分析需要衡量的指標。

3 Data Vault模型

    Data Vault是Dan Linstedt發起建立的一種模型,它是ER模型的衍生。它強調建立一個可審計的基礎資料層,也就是強調資料的歷史性、可追溯性和原子性,而不要求對資料進行過度的一致性處理和整合;同時他基於主題概念將企業資料進行結構化組織,並引入了更進一步的發生處理來優化模型,以應對預案系統變更的擴充套件性。Data Vault模型由以下幾部分組成:

  •     Hub:是企業的核心業務實體,由實體key、資料倉庫序列代理鍵、裝載時間、資料來源組成。
  •     Link:代表Hub之間的關係。它可以描述1:1、1:n和n:n的關係。它由Hub的代理鍵、裝載時間、資料來源組成。
  •     Satellite: 是Hub的詳細描述內容,一個Hub可以有多個Satellite。它由Hub的代理鍵、裝載時間、來源型別、詳細的Hub描述資訊組成。
    Data Vault模型比ER模型更容易設計和產出,它的ETL加工可實現配置化。Data Vault模型例項如下圖:

         

4 Anchor模型

    Anchor模型是對Data Vault模型做了進一步規範化處理,其核心思想是所有擴充套件只是新增而不是修改,因此將模型規範到6NF。但是這樣大大增加了查詢join操作,不太適合有比較多的join操作的資料倉庫。

5 阿里巴巴資料模型

    阿里巴巴為了滿足日益增長的資料,選擇了維度建模為核心理念的模型方法論,同時對其進行了一定的升級和擴充套件,構建了阿里巴巴集團的公共層模型資料架構體系。

    資料公共層建設的目的是著力解決資料儲存和計算的共享問題,其指導方法是一套統一化的集團資料整合及管理的方法體系(OneData),其包括一致性的指標定義體系、模型設計方法體系及配套工具。

阿里資料整合及管理體系

1 模型設計     目前,資料公共層設計最流行是維度建模。它分三層:操作資料層(ODS)、公共維度模型層(CDM)和應用資料層(ADS)。其中,CDM又分明細資料層(DWD)和彙總資料層(DWS)。     操作資料層:基於無差別同步資料來源表到資料倉庫,根據資料業務需求及稽核和審計要求保留歷史資料、清洗資料。     公共維度模型層:存放明細事實資料、維表資料及公共指標彙總資料,採用一些維度退化手段,將維度退化至事實表中,減少事實表和維表的關聯,提高明細資料表的易用性;同時在彙總資料層,加強指標的維度退化,採取更多的寬表化手段構建公共指標資料層,提升公共指標的複用性,減少重複加工。其主要功能如下:
  •      組合相關和相似資料:採用明細寬表,複用關聯計算,減少資料掃描。
  •      公共指標統一加工:構建命名規範、口徑一致和演算法統一的統計指標,為上層資料產品、應用服務提供公共指標;建立邏輯彙總寬表。
  •      建立一致性維度:建立一致的資料分析維表,降低資料計算口徑、演算法不統一的風險。
    應用資料層:存放資料產品個性化的統計指標資料,根據CDM層和ODS層加工生成。
  •    個性化指標加工:不公共性、複雜性(指標型、比值型、排名型指標)。
  •    基於應用的資料組裝:大寬表集市、橫錶轉縱表、趨勢指標串。
2 基本原則     2.1 高內聚低耦合         主要從資料業務特性和訪問特性兩個角度來考慮:將業務相近或相關、粒度相同的資料設計為一個邏輯或物理模型;將高概率同時訪問的資料放在一起,降低概率同時訪問的資料分開儲存。     2.2 核心模型與擴充套件模型分離         避免破壞核心模型的架構簡潔性和可維護性。     2.3 公共處理邏輯下沉及單一        越是底層共用的處理邏輯越應該在資料排程依賴的底層進行封裝與實現,不要讓公用的處理邏輯暴露給應用實現,不要讓公用邏輯多處同時存在。     2.4 成本與效能平衡         適當的資料冗餘可換取查詢和重新整理效能,不宜過度冗餘和資料重複。     2.5 資料可回滾         處理邏輯不變,在不同時間多次執行資料結果確定不變。     2.6 一致性         具有相同含義的欄位在不同表的命名必須相同,必須使用規範定義中的名稱。     2.7 命名清晰、可理解 3 模型實施    3.1 指導方針         首先,進行充分的業務調研和需求分析。         其次,進行資料總體架構設計,主要是根據資料域對資料進行劃分;安裝維度建模理論,構建匯流排矩陣、抽象出業務過程和維度。         再次,對報表需求進行抽象整理出相關指標體系。        最後,程式碼研發和運維。    3.2 實施工作流

相關推薦

理論~ 資料模型設計

常見資料模型介紹  1 ER模型     資料倉庫之父Bill Inmon提出的建模方法,是從全企業的高度設計一個3NF模型,用實體關係(Entity Relationship,ER)模型描述企業業務。其具有以下幾個特點:    需要全面瞭解企業業務和資料   實施週期非

【軟件構造】第二節 設計規約

between 標準 throws 規約 iter 數據類型 需求 否則 line 第三章第二節 軟件規約   這一節我們轉向關註“方法/函數/操作”是如何定義的,即討論編程中的動詞,規約。 Outline 一個完整的方法 什麽是設計規約,我們為什麽需要他 行為等價性 規

《機器學習》 周志華學習筆記 線性模型(課後習題)python 實現

線性模型 一、內容 1.基本形式 2.線性迴歸:均方誤差是迴歸任務中最常用的效能度量 3.對數機率迴歸:對數機率函式(logistic function)對率函式是任意階可導的凸函式,這是非常重要的性質。 4.線性判別分析(LDA 是一種降維的方法) 5.多分類學習:

讀大型網站技術架構---第一------架構要素

大型網站的架構要素分為5個大類,有5個大類的一些標準。 1.效能 網站的效能優化手段有很多,主要分為下面幾種: 1.1 瀏覽器端: 瀏覽器快取,使用頁面壓縮,合理佈局頁面,減少Cookie傳輸手段,CDN; 1.2 應用伺服器端: 伺服器本地快取和分散式快取,加速請求處理

資料庫設計、物理設計

Mysql常用儲存引擎 表及欄位命名原則 1.可讀性原則 2.表意性原則 3.長名原則 欄位型別的選擇原則 1.int 2.Datatime 3.char 4.varchar char和varchar如何選擇

機器學習筆記( 線性模型

3.1 基本形式 樣本x由d個屬性描述 x= (x1; x2;…; xd), 線性模型試圖學得一個通過屬性的線性組合來進行預測的函式: 向量形式: w和b學得之後,模型就得以確定. 3.2 線性迴歸 線性迴歸試圖學得 為確定w,b,學習到泛化效能最好的模型

資料庫視訊理論總結

1、日期和時間資料型別:包括datetime和smalldatetime兩種型別。datetime所儲存的日期範圍是從1753年1月1日開始到9999年12月31如結束,時間精度是3.33毫秒。使用smalldatetime資料型別時。使用smalldatati

資料和C (知識點彙總)

getchar()函式讀取下一個輸入字元,因此程式會等待使用者輸入,即出現所謂的“暫停”,使得程式執行結果可以停留在頁面上,便於觀察。 資料型別關鍵字,根據計算機儲存的方式不同,可分為兩大基本型別:整數(沒有小數部分的數)和浮點數(有小數部分的數,計算機把浮點數

程式設計珠璣: 資料決定程式結構 習題解答

一.題目描述:本書出版之時,美國的個人收入所得稅分為5種不同的稅率,其中最大的稅率大約為40%.以前的情況則更為複雜,稅率也更高。下面所示的程式文字採用25個if語句的合理方法來計算1978年的美國

周志華西瓜書《機器學習》線性模型

又好像很久更新了,但這幾天我都有在學習哦~。一位同學和我說感覺我的筆記很多是對書本原文的再現,缺少自己的思考和重點提煉。我反思了一下好像真的是這樣的呢,這樣子寫似乎的確是和原文沒有多大的區別(而且敲那麼多字非常的累)。 所以從這篇筆記開始我會挑選書中的重點來記錄啦,對於個別比較難理解

機器學習(周志華) 參考答案 線性模型 3.3

一:matlab實現 1.資料的Excel處理 西瓜資料集3.0 2.程式碼 # -*- coding: utf-8 -*- old_l = 0; n = 0; b = [0;0;1]; %對應書中(3.25)下的B=(w;b),因為x有兩個屬性:

《機器學習(周志華西瓜書)》學習筆記1:-線性模型

一、線性迴歸     線性迴歸的基本思想是採用對輸入樣例各個特徵進行線性加權的方式得到預測的輸出,並將預測的輸出和真實值的均方誤差最小化。1)如果輸入樣例只有一個特徵,那這個過程就是用一條直線去擬合平面直角座標系上的點; 2)如果有兩個特徵,表現在平面直角座標系上就是用一條

你不知道的JavasScript上··物件

1、Object.defineProperty()&&getter、setter Object.defineProperty(目標物件,屬性名(string型),{ get:function(){ //給新增屬性設定一個getter }, enumerable:true//設定為可列舉

S2jsp 資料互動(二)

1.什麼是cookie? cookie是由伺服器埠生成,傳送給客戶端的瀏覽器的,瀏覽器會將其儲存在某個目錄下的文字檔案中2.cookie作用? 通過cookie,可以實現瀏覽器與伺服器之間的資料傳遞3.session和cookie的異同? session與

資料處理和互動式輸入

3.1賦值 3.2隱式型別轉換 3.3顯示型別轉換 3.4複合賦值運算子 3.4.1複合賦值運算 3.4.2累加問題處理 3.5自增自減運算子 3.6互動式輸入 3.6.1互動式輸入的概念 3.6.2scanf()函式 3.6.幻影回車符 3.7常見錯誤

讀《數學之美》 統計語言模型

其它 bigram 利用 理解 googl track 推斷 art google 自然語言從產生開始。逐漸演變為一種基於上下文相關的信息表達和傳遞方式,在計算機處理自然語言時,一個最主要的問題就是為自然語言上下文相關的特性建立數學模型,叫做統計語言模型(Statist

XSS的原理分析與解剖:(技巧)**************未看*****************

第二章 != chrom 插入 是把 調用 bject innerhtml ats ??0×01 前言: 關於前兩節url: 第一章:http://www.freebuf.com/articles/web/40520.html 第二章:http://www.free

C++對象模型——對象成員的效率 (Object Member Efficiency)()

turn ember 坐標 span color set 應該 get fontsize 3.5 對象成員的效率 (Object Mem ber Efficiency) 以下某個測試,目的在測試聚合(aggregation).封裝(encapsulat

表達式 Lua程序設計筆記

nts polyline 第三章 字符串連接 兩個 point 設計 3.4 構造 --第三章 表達式--3.1 算數操作符--3.2 關系操作符其計算結果是true或false。如果兩個值的類型不同,則Lua認為他們不相等。nil只與自身相等。對於table、userda

《數據庫設計入門經典》讀書筆記——:工作場所中的數據庫建模

中間 特定 理論 大學 並且 外鍵 另一個 必須 所有 規範化用於粒度化和組織在數據庫中使用的數據。 在第4章中將詳細介紹規範化和應用範式的過程。在這個階段只需要知道規範化是用於將數據劃分到單獨表中的方法或公式——根據一組規則。 不信任將視圖用於除了安全性目標之外的任何事情