天天看點

資料倉庫專題(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)按變動頻度的不同分割表

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