資料倉儲建設 資料建模

2021-09-02 11:07:00 字數 3584 閱讀 6798

首先我們先檢視三個問題:①什麼是資料模型;②為什麼需要資料模型;③如何建立資料模型;

一、什麼是資料模型

資料模型是抽象描述現實世界的一種工具和方法,是通過抽象的實體及實體之間聯絡的形式,來表示現實世界中事務的相互關係的一種對映。在這裡,資料模型表現的抽象的實體和實體之間的關係,通過對實體和實體之間關係的定義和描述,來表達實際的業務中具體的業務關係。    資料倉儲模型是資料模型中針對特定的資料倉儲應用系統的一種特定的資料模型,一般的來說,我們資料倉儲模型分為以下幾個層次:業務模型、領域模型、邏輯模型、物理模型。因此整個資料倉儲建模過程中,一般需要經歷四個過程:

因此在整個資料倉儲的模型的設計和架構中,即涉及到業務知識,也涉及到具體的技術,我們既需要了解豐富的行業經驗,同時也需要一定的資訊科技來幫助我們實現我們的資料模型,最重要的是,我們還需要乙個非常適用的方**,來指導我們自己針對我們的業務進行抽象、處理、生成各個階段的模型。

二、為什麼需要資料模型

在資料倉儲的建設中,我們一再強調需要資料模型,那麼資料模型究竟為什麼這麼重要呢?首先我們需要了解整個資料倉儲的建設的發展史。資料倉儲的發展大致經歷了這樣的三個過程:

通過對資料倉儲建設的發展階段,我們能夠看出,資料倉儲的建設和資料集市的建設的重要區別就在於資料模型的支援。因此,資料模型的建設,對於我們資料倉儲的建設,有著決定性的意義。    一般來說,資料模型的建設主要能夠幫助我們解決以下的一些問題:

三、如何建設資料模型

1、資料倉儲模型架構

資料倉儲的模型架構和資料倉儲的整體架構是緊密關聯在一起的,我們首先來了解一下整個資料倉儲的資料模型應該包含幾個部門。如下圖,這個資料模型的架構分成5大部分,每個部分其實都有獨特的功能。

從上圖我們可以看出,整個資料倉儲的資料模型可以分為大概5大部分: 

通過對整個資料倉儲模型的資料區域的劃分,我們可以了解到,乙個好的資料模型,不僅僅是對業務進行抽象劃分,而且對實現技術也進行具體的指導,它應該涵蓋了從業務到實現技術的各個部分。

2、資料倉儲模型階段劃分

下面是資料倉儲模型階段劃分:

從上圖可以看出,資料倉儲的資料建模大致分為四個階段:

①業務建模,這部分主要包含以下幾個部分:

②領域概念建模,這部分主要包含以下幾個部分:

③領域概念建模,這部分主要包含以下幾個部分:

④物理建模,主要包含以下幾個部分:

四、資料倉儲建模方法

1、正規化建模

正規化建模法其實是我們在構建資料模型常用的乙個方法,該方法的主要由inmon所提倡,主要解決關係型資料庫中資料儲存,利用的一種技術層面上的方法。目前,在關係型資料庫中的建模方法,大部分採用的是三正規化建模法。

正規化是資料庫邏輯模型設計的基本理論,乙個關係模型可以從第一正規化到第三正規化進行無損分解,這個過程也可以稱為規範化。在資料倉儲的模型設計中目前一般採用第三正規化,他有著嚴格的數學定義。從其表達的含義來看,乙個符合第三正規化的關係必須具有以下三個條件:

根據inmon的觀點,資料倉儲模型的建設方法和業務系統的企業資料模型類似。在業務系統中,企業資料模型決定了資料的**,而企業資料模型也分為兩個層次,即主題域模型和邏輯模型。同樣,主題域模型可以看成業務模型的概念模型,而邏輯模型則是域模型在關係型資料庫上的例項化。

從業務資料模型轉向資料倉儲模型時,同樣也需要有資料倉儲的域模型,即概念模型,同時也存在域模型的邏輯模型。這裡,業務模型中的資料模型和資料倉儲的模型稍稍有一些不同,主要區別在於:

正規化建模法的最大優點就是從關係型資料庫的角度出發,結合了業務系統的資料模型,能夠比較方便的實現資料倉儲的建模。但其缺點也很明顯,由於建模方法限定在關係型資料庫之上,在某些時候反而限制了整個資料倉儲模型的靈活性,效能等,特別是考慮資料倉儲的底層資料向資料集市的資料進行彙總時,需要進行一定的變通才能滿足響應的需求。

2、維度建模

維度建模是kimball最先提出的。其最簡單的描述就是:按照事實表,維表來構建資料倉儲,資料集市。這種方法最被人廣泛知曉的名字就是星型建模。

上圖就是這個架構中最典型的星型架構。星型模式之所以被廣泛使用,在於針對各個維做了大量的預處理,如按照維進行預先的統計、分類、排序等。通過這些預處理,能夠極大的提公升資料倉儲的處理能力。特別是針對3nf的建模方法,星型模式在效能上佔據明顯的優勢。

同時,維度建模法的另外乙個優勢是:維度建模非常直觀,僅僅圍繞著業務模型,可以直觀的反應出業務問題。不需要經過特別的抽象處理,即可以完成維度建模。這一點也是維度建模的優勢。

但是維度建模的缺點也非常明顯,由於在構建星星模型之前需要進行大量的資料預處理,因此會導致大量的資料處理工作。而且,當業務發生變化,需要重新進行維度的定義時,往往需要重新進行維度資料的預處理。而在這些預處理的過程中,往往會導致大量的資料冗餘。

另外乙個惡維度建模的缺點是:如果只是單純的維度建模,不能保證資料**的一致性和準確性,而且在資料倉儲的底層,不是特別適用於維度建模的方法。

3、實體建模法

實體建模並不是資料倉儲建模中常見的乙個方法,它**於哲學的乙個流派。從哲學的意義上說,客觀世界應該是可以細分的,客觀世界應該可以分成由乙個個實體,以及實體與實體之間的關係組成。那麼在資料倉儲的建模過程中完全可以引入這個抽象的方法,將整個業務也可以劃分成乙個個的實體,而每個實體之間的關係,以及針對這些關係的說明就是我們資料建模需要做的工作。

雖然實體建模看起來好像有些抽象,其實理解起來很容易。即我們可以將任何乙個業務劃分成3個部分,實體,事件和說明。

上圖表述的是乙個抽象的含義,如果描述乙個簡單的事實:「小明開車去學校上學」。以這個業務事實為例,我們可以把「小明」,「學校」看成是乙個實體,「上學」描述成乙個業務過程,在這裡可以抽象為乙個具體「事件」,而「開車去」怎可以看成事件「上學」的乙個說明。

從上面列舉的例子可以了解,我們使用的抽象歸納方法其實很簡單,任何業務可以看成3個部分:

由於實體建模法,能夠很輕鬆的實現業務建模的劃分。因此,在業務建模階段和領域建模階段,實體建模方法有著廣泛的應用。一般在沒有現成的行業建模的情況下,可以採用實體建模的方法,和客戶一起清理整個業務的模型,進行領域概念的劃分,抽象出具體的業務概念,結合客戶的使用特點,完全可以建立出乙個符合自己需要的資料倉儲模型來。

但是,實體建模也有著自己先天的缺陷,由於實體說明法只是一種抽象客觀事件的方法,因此,注定了該建模方法只能侷限在業務建模和領域概念建模階段。因此,到了邏輯建模階段和物理建模階段,則是正規化建模和維度建模發揮長處的階段。

轉子:

資料倉儲 建模

粒度概述 粒度問題時設計資料倉儲的乙個最重要方面。粒度時指資料倉儲的資料單位中儲存資料的細化或綜合成都的級別。細化程度越高,粒度就越小 相反,細化程度越低,粒度級就越大。資料的粒度一直時乙個設計問題。資料倉儲環境中粒度之所以時主要的設計問題,是因為它深深地影響存放在資料倉儲中的資料量的大小。同時影響...

資料倉儲建模

一 資料倉儲建模的意義 如果把資料看作圖書館裡的書,我們希望看到它們在書架上分門別類地放置 如果把資料看作城市的建築,我們希望城市規劃布局合理 如果把資料看作電腦檔案和資料夾,我們希望按照自己的習慣有很好的資料夾組織方式,而不是糟糕混亂的桌面,經常為找乙個檔案而不知所措。資料模型就是資料組織和儲存方...

資料倉儲建模

是原始資料,儲存總hdfs上 lzo壓縮 解壓速度非常快 允許在壓縮部分以損失壓縮速度為代價提高壓縮率,解壓速度不會降低。演算法無損,執行緒安全 需構建維度模型,一般採用星型模型,呈現的狀態一般為星座模型 維度建模的過程 選擇業務 一條業務線對應一張事實表 宣告粒度 精確定義事實表中的一行資料表示什...