文章的內容來自於大資料之路以及**
資料倉儲之父bill inmon提出的建模方法是從全企業的高度設計乙個3nf的模型,用實體關係(entity relationship,er)模型描述企業業務,在正規化理論上 符合3nf。資料倉儲中的3nf與oltp系統中的3nf的區別在於,它是站在企業角度面向主題的抽象,而不是針對某個業務流程的實體物件關係的抽象。其具體的特點如下:
1.需求全面了解企業業務的資料。
2.實施週期非常長。
3.對建模人員的能力要求非常高。
採用er模型建設資料倉儲模型的出發點是整合資料,將各個系統中的資料以整個企業角度按主題進行相似性組合和合併,並進行一致性處理,為資料分析決策服務,但是並不能直接用於分析決策。
其建模的步驟分為三個階段:
1.高層模型:乙個高度抽象的模型,描述主要的主題以及主體間的關係,用於描述企業的業務總體概況。
2.中層模型:在高層模型的基礎上,細化主題的資料項。
3.物理模型(也叫底層模型):在中層模型的基礎上,考慮物理儲存,同事基於效能和平台特點進行物理屬性的設計,也可能做一些表的合併、分割槽的設計等。
er模型在實踐中最典型的代表是teradata公司基於金融業務發布的fs-ldm(financial services logical data model),它通過對金融業務的高度抽象和總結,將金融業務劃分為10大主題,並以設計面向金融倉庫模型的核心為基礎,企業基於此模型做適當的調整和擴充套件就能快速地實施。
fs-ldm的相關知識看:
維度模型是資料倉儲領域的ralph kimball 大師所倡導的,他的the date warehouse toolkit-the complete guide todimensional modeling 是資料倉儲工程領域最流行的資料倉儲建模的經典。
維度建模從分析決策的需求出發構建模型,為分析需求服務,因此它重點關注使用者如何更快速地完成需求分析,同事具有較好的大規模複雜查詢的相應效能。其典型的代表是星形模型,以及在一些特殊下使用的雪花模型。其設計分為以下幾個步驟。
1.選擇需要進行分析決策的業務過程。業務過程可以是單個業務事件,比如交易的支付、退款等。也可以是某個事件的狀態,比如當前賬號的餘額等。還可以是一系列相關業務事件組成的業務流程,具體需求看我們分析的是某些事件發生的情況,還是當前狀態或是事件流轉效率。
2.選擇粒度。在事件分析中,我們要預判所有分析需要細分的程度,從而決定選擇的粒度。粒度是維度的乙個組合。
3.識別維表。選擇好粒度之後,就需要基於此粒度設計維表,包括維度屬性,用於分析時進行分組和篩選。
4.選擇事實。確定分析需要衡量的指標。
從業務角度出發來考慮
er模型是用實體加關係描述的資料模型描述企業業務架構,在正規化理論上符合3nf,是以業務功能為出發構建資料模型,而不是針對某個具體業務流程的,面向功能性模組開發。
維度建模以分析決策的需求為出發點構建模型,一般有較好的大規模複雜查詢的響應效能,更直接面向業務,典型的代表是我們比較熟知的星形模型,常用就是事實表關聯很多維度表、退化維度形成寬表、根據某主題下的業務過程進行建模,往往是維度建模友好度更高,面向分析式模型開發。
從易用性和交付效率方面來考慮
er模型是規範性好、冗餘少、但缺點是需要全面了解企業業務、資料和關係,對於建模人員要求很高,實施週期非常長,人力成本昂貴,對於乙個新人來說不可能在短時間上手的,對於運營人員來說,如果他們想要自己進行查資料的話,難度會有些高。
維度建模相對能快速上手,快速交付,運營人員只需要根據我們的資料字典,查詢自己所屬的業務模組對應的業務過程,乙個簡單的select語句就可以搞定所有事情,但缺點是冗餘會較多,不過在當今時代,儲存儲存可以忽略不計。
從儲存和計算層面來考慮
er模型是完全遵守3nf,當查詢資料時,需要進行多表關聯查詢,這時候隨著資料量幾百億幾千億的情況下,會大大的降低執行效率並且算力越來越多,最終導致計算成本都要不斷的累加,在儲存方法由於規範性好,資料冗餘比較小。
維度模型是面向業務過程,由於所有主題資料和業務過程資料都已經提前處理好了,在進行查詢資料的時候,相對er模型來講,就不需要那麼多的關聯查詢,大大提高了執行效率和減低算力、人力成本,但是資料冗餘可能會較多,但是將多個源的資料以文字的形式儲存在分布式系統中,儲存成本(列式儲存)並不需要那麼多成本。但是從儲存、計算、成本、交付、易用性等多方面考慮取平衡值,還是維度模型更實用。
從應用系統出發來考慮
er模型更適應於oltp系統,維度模型更適用於olap系統。
資料倉儲建模方法初步
一 前言 資料倉儲得建模方法同樣也有很多種,每一種建模方法其實代表了哲學上的乙個觀點,代表了一種歸 納,概括世界的一種方法。目前業界較為流行的資料倉儲的建模方法非常多,這裡主要介紹正規化建模法,維度建模法,實體建模法等幾種方法,每種方法其實從本質 上講就是從不同的角度看我們業務中的問題,不管從技術層...
資料倉儲 建模
粒度概述 粒度問題時設計資料倉儲的乙個最重要方面。粒度時指資料倉儲的資料單位中儲存資料的細化或綜合成都的級別。細化程度越高,粒度就越小 相反,細化程度越低,粒度級就越大。資料的粒度一直時乙個設計問題。資料倉儲環境中粒度之所以時主要的設計問題,是因為它深深地影響存放在資料倉儲中的資料量的大小。同時影響...
資料倉儲建模
一 資料倉儲建模的意義 如果把資料看作圖書館裡的書,我們希望看到它們在書架上分門別類地放置 如果把資料看作城市的建築,我們希望城市規劃布局合理 如果把資料看作電腦檔案和資料夾,我們希望按照自己的習慣有很好的資料夾組織方式,而不是糟糕混亂的桌面,經常為找乙個檔案而不知所措。資料模型就是資料組織和儲存方...