1. 程式人生 > >資料倉庫專題(9)-基本概念和定義(整理自網際網路)

資料倉庫專題(9)-基本概念和定義(整理自網際網路)

1、星型模型的組成

一個星型模型對應一個分析主題,它由一個事實表和一組維表組成。其中事實表是星型模型的核心,由分析變數和分析維度代理鍵組成,分析變數存放分析事實數 據,分析維度代理鍵用於連線維表。維表是星型模型的外圍,存放分析維度資料,由維的代理鍵、維的層次屬性、維的描述資訊組成。

2、星型維度模型設計的依據和步驟

星型維度模型設計的依據是《業務需求》、《資料來源分析報告》、《需求分析報告》、《功能設計》,星型維度模型設計的步驟是從邏輯模型到物理模型。

3、星型維度模型設計方法

(1)星型維度邏輯模型設計過程

 ①根據業務分析主題,確定模型主題(如根據貸款收息分析主題,確定貸款收息模型;根據貸款欠息分析主題,確定貸款欠息模型等)。

 ②列出每個模型主題的分析量和分類量。

 ③設計事實表。事實表可以由分析量+分析維度代理鍵得到。

 ④設計維表。維表可以由維SK+層次DK+其他屬性資訊得到,其中維SK、層次DK和其他屬性資訊可以從各個業務分析主題中總結得到。

 ⑤設計對照表。根據源系統中資料項的取值與資料倉庫中資料項的取值的對照關係得到,採用SAS的FORMAT技術可以方便地使用對照表。

 ⑥決定模型中每個欄位的來源和演算法。根據《資料來源分析報告》,決定模型中每個欄位來自哪個表哪個欄位、在何種條件下得到、通過何種計算得到。

 ⑦決定表的分割。表的分割是時間和空間的權衡折衷,星型維度模型採用下列分割方法:按彙總粒度的分割,逐筆表、日表、月表、年表等;

按當前和歷史分割,當前表、歷史表;

按訪問頻度分割,高訪問頻度表、低訪問頻度表;

按變化頻度分割,高變化頻度表、低變化頻度表。

(2)星型維度物理模型設計過程

 ①表定義:表名、設計者、資料量估計。

 ②欄位定義:名稱、型別、長度、主鍵、索引。

 ③表與表之間的關係定義。

4、星型維度模型設計考慮

星型維度模型設計應有時間效率考慮和空間效率考慮兩個方面。

1.時間效率考慮

星型維度模型中對時間效率考慮主要體現在中間表的設計和按訪問頻度的不同分割表兩方面。

 (1)中間表的設計

星型維度中間表的設計有利於並行處理、降低模組間的耦合性。中間表與事實表一一對應,用業務鍵而不是資料倉庫的代理鍵,儲存了對應事實表的新增事實資料; 使用SAS的DAT步掃描資料來源表一次,就能得到多張中間表;將每個中間表的業務鍵連線維表得到代理鍵,就能實現中間表到事實表的轉換。這樣,不僅不同數 據源表抽取到中間表的過程可以並行處理,而且各個中間表到事實表的轉換也可以並行處理。此外,每個模組間的耦合性降低了許多,模組的靈活性和可維護性得到 大大的提高。

 (2)按訪問頻度的不同分割表

星型維度模型中維表或事實表的各項資料的訪問頻度常常是不同的。如果該維表或事實表的資料量較大,那麼訪問速度就會受到影響。如果將訪問頻度高的資料分離出來,放在不同的表中,就可以加快該部分資料的訪問速度。                             

2.空間效率考慮

星型維度模型對空間效率的考慮主要體現在應用級資料壓縮設計和按變動頻度的不同分割表兩方面。

 (1)應用級資料壓縮設計

星型維度模型的事實表和維表都保留歷史資訊。為使資料量不至於過大,事實表和維表都採用時間軸壓縮設計,用有效開始日(EFFECTIVE_FROM)、有效截止日(EFFECTIVE_TO)來壓縮這段時間內未發生變化的資料。

在使用壓縮的歷史資料時,若進行解壓縮,必然既耗費時間又浪費空間。通過巧妙設計JOIN方法,就可以不經過解壓縮而得到準確的歷史資料。例如:事實表a 和維表b都經過了時間軸壓縮,現在事實表a需要JOIN維表b中相應時間點的資訊,那麼正確的結果應該是事實表a中的記錄能夠JOIN到維表b中所有在時 間段上與之相交的記錄,並出現表2所示的四種基本相交情況。

若將上述各種情況都寫入SQL語句的WHERE條件,勢必很複雜。經過對時間段交集的分析,可歸納出下列的WHERE條件:

a.effective_from <= b.effective_to and a.effective_to >= b.effective_from

就能夠保證事實表和維表JOIN結果的正確。

 (2)按變動頻度的不同分割表

星型維度模型中的各項資料變動頻度常常是不同的,例如客戶的開戶許可證、法人代表等資料往往變動頻度較小,而信用等級等資料可能變動頻度較大。由於要儲存 歷史資料的變動,變動頻度不同的資料放在同一張表中容易造成資料的冗餘。將變動頻度較小的資料分離出來,放在不同的表中,就可以降低資料的冗餘。